Index of /support/word2x

[ICO]NameLast modifiedSizeDescription

[DIR]Parent Directory  -  
[TXT]INTERNALS07-Oct-1998 18:12 7.1K 
[TXT]Makefile.in28-Dec-1998 21:17 3.0K 
[TXT]Makefile.linux07-Oct-1998 18:12 1.4K 
[TXT]alloca.c07-Oct-1998 18:12 13K 
[TXT]col-align.cc07-Oct-1998 18:12 2.0K 
[TXT]compat.c07-Oct-1998 18:12 1.1K 
[TXT]config.guess06-Aug-1999 00:07 27K 
[TXT]config.h.bot07-Oct-1998 18:12 122  
[TXT]config.h.in07-Oct-1998 18:12 2.2K 
[   ]config.h.top07-Oct-1998 18:12 44  
[TXT]config.sub06-Aug-1999 00:07 19K 
[TXT]configure06-Aug-1999 00:12 66K 
[   ]configure.in06-Aug-1999 00:12 2.1K 
[TXT]deHTMLdate.cc30-Nov-1998 11:41 915  
[TXT]deL1date.cc30-Nov-1998 11:41 793  
[TXT]dedate.cc30-Nov-1998 11:41 854  
[   ]fake_link07-Oct-1998 18:12 95  
[TXT]fifo.h06-Aug-1999 00:09 4.1K 
[TXT]fmt-html.h07-Oct-1998 18:12 1.0K 
[TXT]fmt-latex.h07-Oct-1998 18:12 920  
[TXT]getopt.c07-Oct-1998 18:12 21K 
[TXT]getopt.h07-Oct-1998 18:12 4.4K 
[TXT]getopt1.c07-Oct-1998 18:12 4.3K 
[TXT]html-embed.cc07-Oct-1998 18:12 7.2K 
[TXT]html-fmt.cc07-Oct-1998 18:12 11K 
[TXT]html-table.cc06-Aug-1999 00:12 5.8K 
[TXT]html-table.h07-Oct-1998 18:12 520  
[TXT]install-sh07-Oct-1998 18:12 4.7K 
[TXT]interface.h07-Oct-1998 18:12 1.4K 
[TXT]latex-embed.cc07-Oct-1998 18:12 10K 
[TXT]latex-fmt.cc07-Oct-1998 18:12 12K 
[TXT]latex-table.cc07-Oct-1998 18:12 6.0K 
[TXT]latex-table.h07-Oct-1998 18:12 527  
[TXT]lib.h30-Nov-1998 11:44 2.5K 
[   ]liboutfmt.a06-Aug-1999 01:06 151K 
[TXT]map_chars.cc07-Oct-1998 18:12 864  
[TXT]nullproc.cc07-Oct-1998 18:12 320  
[TXT]num_unit_probe.c07-Oct-1998 18:12 1.3K 
[TXT]part_num_probe.c07-Oct-1998 18:12 782  
[TXT]reader.cc07-Oct-1998 18:12 24K 
[TXT]reader.h07-Oct-1998 18:12 5.5K 
[   ]rtest206-Aug-1999 01:06 128K 
[TXT]rtest2.cc07-Oct-1998 18:12 1.8K 
[TXT]scan_num.cc07-Oct-1998 18:12 1.0K 
[TXT]shrink_width.cc07-Oct-1998 18:12 748  
[TXT]strip.cc09-May-1999 14:50 13K 
[TXT] 18:12 13K 
[TXT]strip.h06-Aug-1999 00:09 2.9K 
[TXT]tblock.cc07-Oct-1998 18:12 4.3K 
[TXT]tblock.h07-Oct-1998 18:12 791  
[TXT]tblock.h.orig07-Oct-1998 18:12 813  
[TXT]text-fmt.cc07-Oct-1998 18:12 6.3K 
[TXT]text-table.cc07-Oct-1998 18:12 6.7K 
[TXT]text-table.h07-Oct-1998 18:12 453  
[TXT]transcript06-Aug-1999 01:06 3.9K 
[TXT]tune.h07-Oct-1998 18:12 808  
[TXT]ukdate.cc07-Oct-1998 18:12 1.1K 
[TXT]usdate.cc07-Oct-1998 18:12 1.1K 
[TXT]use_getopt.h07-Oct-1998 18:12 210  
[   ]word2x06-Aug-1999 01:06 316K 
[TXT]word2x.107-Oct-1998 18:12 3.0K 
[TXT]word2x.cc06-Aug-1999 00:14 7.1K 
[TXT]word6.h07-Oct-1998 18:12 796  
[TXT]wordwrap.cc07-Oct-1998 18:12 1.3K 

$Id: README,v 1.7 1997/04/13 02:59:59 dps Exp $

What is new in version 0.005 of word2x

Update version to 0.005
Fix version number bug
Update config.guess an config.sub
Re-generate with newer autoconf
Fix various ANSI violations that g++ 2.95 disliked

What is new in version 0.004 of word2x

Stupid bug in word2x_junk_filter::filter_junk bug which ignored the last
character read squashed.

Added german support from word2x port EX2.

What it was new in version 0.003 of word2x

word2x-0.003 is version word2x-0.002 with a major bug in
eliminated. word2x-0.002 was 0.001 retro-fitted with some quite new
junk filtering code with lots of tunable parameters (i.e. all of
tune.h).  This code is extracted from the envolving, and currently
incomplete, source tree of the next major release. (When this happens I
will stop supporting or maintaing any 0.00x versions).

The major change is much better junk filtering, losing less text and
throwing out more junk; unicode documents should now
work. Increasing numbers of problem document which have OLE junk in
places that break the code are appearing. Splitting the document with
lls (from the LAOLA package) and attacking the WordDocument stream
works---sometime I will have a useable library that can do this
automagically. (In word2x-0.002 you have a very good chance of
tickling the bug and its (buggy) bug trap).

Documents that do cause problems after the suggested work-around to please. The immediate fix is to try one of
the other two programs. (Free software people are prepared to
co-operate with the "competition"). There are links to all the
"competition" I know of on the word2x home page at (hosted by the free of charge,
despite the fact charges normally apply).

Installing word2x

You need a C++ compiler and a version of make that does understands
how to make .o files from .cc files, for example GNU make. Ideally you
have getopt_long already in your C library but you might not. If this
applies set GETOPT to gopt.o in the Makefile. getopt_long is the
version supplied by the free software foundation in glibc-1.09

If your make does not know then add a rule. for GNU make the rule is

	$(CPP) $(CPPFLAGS) -c -o $@ $<

Please note that a warning about a contravariance violation is normal.

As this is program only recently escaped, YMMV. The main reason for
its escape was incessant irration that comp.os.linux.misc posters
manage about word .doc files (IMHO this is justified). I had wrote
this program for myself and my word problem; I let it run wild in the
hope that is it useful for others. [I now know is it is helping some

Further information on other converters is avialable in the list of
converters avialble via <>
(word2x seems to have a monopoly on converters from word to latex not
requiring word and avialable on non-MS platforms).

The program has been compiled on (the first two by me personally):

Linux 2.1.30 (Unix)
SunOS (Unix)
DEC Alpha AXP under OSF/1 (Unix) 
IBM SP/2 (RS6000) under AIX (Unix) [SP/2s are heavy computing power...]

It is known not compile with

Borland C++ 3.1 (PC version).

If any manages to compile on a PC version, please tell
Duncan Simpson <> and
W.Hennings <>

Limited flat (linear) memory might be lethal, esp. if your system
lacks alloca. If have not learned to steal what is free then you can
send money (prefably UK funds), postcards, etc to the author at

Frax House, Kingston Bagpuize, OXON OX13 5AW

or for the next couple of years

Flat 6, 93 Westridge Road, Southampton

I neither suggest that you do donate nor that you do not donate.


Can be problematic. Setting LD to ./sunos_link and defining add
produced a binary that worked for me with one warning about
strncasecmp. I guess SUN's ld is incompatible with g++ or something;
using ar and ranlib, aka the sunos_link shell script, works. The
configuration script hopefuk does this stuff for you.

Reported bugs

On some platforms it misses the first 3/4 of a page. If you are
afflicted get out your copy of hexdump and adjust the start offset in
word2x to the correct value. This should be fixed now.


This program is(c) D.P.Simson 1997. The program is licenced under the
GPL version 2, or any later version (at your option). This means DOS
people must distribute source as per the GPL.

The stuff I did not write is:

config.guess and config.sub come from GNU autoconf and are thus
(c) The Free Software Foundation.

getopt.c, getopt1.c and getopt.h are (c) The Free Software Foundation.
I am fairly sure the LGPL requires these files to be distributed as

alloca.c is almost certaintly also (c) The Free Sofwtware Foundation.

install-sh is probably (c) The X consortium

Introductory proganda

Despite the fact that open formats like rtf are good and widely
avialable far too many idiots seem to insist on using word .doc
format. This program is an attempt to limit the damage this causes
users of non-microsoft systems and text processing systems, for
example LaTeX.

It is designed to be retargetable and avoid some of the travesties of
proper typsetting comitted by word, which is hobbled by the lack of
litagures in TrueType fonts (and the lack of different design sizes to
some extent). There is quite a large amount of guesswork from context
to reduce the impact of my lack of understanding a document the way
word does. One even sees interesting things like
<Paragraph mode> 550* <eqn> \F(foo, bar) <end eqn> * 42 * (pixels per em)
<End paragraph>
which is not too good! There may be multiple bits of alternating roman
and equation, multiple items of text in brackets, etc.
etc. Fortunately the reader converts these, in two stages, to a single
maths insert. Maths inserts with embedded newlines get rendered as
eqnarray* in LaTeX mode. All maths is just deleted in text mode (would
someone like to add this support?).

LaTeX mode sees the equation example above as <eqn insert> 550
* \F(foo, bar * baz) * 42 * (pixels per em) <end eqn insert> and
renders it as
% Some comments omited for brevity
$$550 \times {\text{foo} \over \text{bar} \times \text{baz} } \times 42
\times \text{(pixels per em)}$$
which looks a lot better than word's own version, which uses awful
stars instead of proper times signs.

Text mode implements tables with real columns, unlike catdoc. Long
entries are folded automatically and there is some semi-intelligent
width reduction.  Hypenation is not supported so if someone instists
on using supercalifragilistic... then an overlong line might result
(anyone care to fix this? I thought it was just overkill to implement
the hypenation algorithm along with all the rest).

Apart from the pictures and a little trailing junk the code does a
good job on the TrueType documents. The readme generates some error
messages about extra ^Us amoung other things due to a lack of
understanding of some of the inserts used in some documents. Anyone
who can decode more types of insert, please tell me about it and
preferably send a patch so I can avoid extra programming (got too much
real work to be doing).

If someone wishes to contribute *roff output I would include it. Extra
understanding of equations also gratefully recieved as the examples in
the TrueType docs are rather limited. Bibliography and any other you
can tell me about also grateful listened to.

Duncan (-: