This file documents LaTeX2RTF, a converter that translates LaTeX to RTF.
Copyright 1998-2002 Georg Lehner, updates Copyright 1999-2018 by Wilfried Hennings and Scott Prahl, with contributions by Mikhail Polianski.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the sections entitled “Copying” and “GNU General Public License” are included exactly as in the original, and provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Free Software Foundation.
LaTeX2RTF is a translator program from LaTeX text into “rich text format” files. These files are commonly referred to as RTF files. RTF is a published standard format by Microsoft. This standard can be ambiguous in places and Microsoft ignores parts of the standard it finds inconvenient, but RTF is widely used by many WYSIWIG text editors and is supported by Microsoft Word and most text processors.
LaTeX2RTF translates the text and as much of the formatting information from LaTeX to RTF. Be forewarned that the typeset output is not nearly as good as what you would get from using LaTeX directly. So, why bother translating? Consider,
There are drawbacks to the conversion process. In fact, don’t expect any LaTeX file to be converted as you would like, don’t expect it to be converted without errors or warnings, and don’t be especially surprised when it doesn’t convert at all. LaTeX2RTF is known to have many bugs and many missing features. Paradoxically, this number seems to grow more and more with each day. However, we can categorically state that there are some special cases in which a LaTeX file will be translated to RTF satisfactorily by LaTeX2RTF—This was sort of disclaimer, ok? OK!
LaTeX is a system for typesetting text and therefore it focuses on the logical structure of a document, whilst RTF is meant to be a transport format for a family of Desktop Publishing Software, dealing mostly with the design of a text.
Although the commands and styles in LaTeX are much more flexible and standardized than in RTF, only a small subset of commands has been implemented to date (see Unimplemented Features).
Some of the capabilities of LaTeX2RTF are restricted in scope or buggy (see Known Bugs).
RTF is a moving target, because Microsoft does not stop inventing new extensions and features; consequently you cannot view newer RTF files with older word processors. The syntax and semantics of RTF are somewhat artistic, i.e., you can generate a syntactically correct RTF file that cannot be displayed by some/most word processors. For more details on RTF the specification consult the links at http://latex2rtf.sf.net/
The documentation of the program is found in the doc/ directory
in the file latex2rtf.texi in the GNU TeXInfo format.
For your convenience, you can find HTML and PDF
versions of the manual there as well.
Note: In this manual, the terms "directory" and "folder" are used interchangeably.
LaTeX2RTF is available for many Unix Platforms, for the Macintosh, and for MS-DOS, including all versions of MS Windows.
The latest version of LaTeX2RTF is available at SourceForge and — with some delay — on CTAN sites: e.g., http://www.dante.de or http://www.ctan.org.
The DOS package will also run under all MS Windows versions
up to Windows 7, except 64bit systems.
It requires an i386 processor or better.
It should only be used on older Microsoft systems.
For Win9x, ME, NT, or newer, you should use the win or win-NO-GUI package.
The win-NO-GUI package only runs under Win32 (Win9x, ME, NT, 2000, XP, 2003, Vista, Win7, probably Win8 and Win10). From LaTeX2RTF version 2.0.0 up it also runs on 64bit systems.
The win package is the win-NO-GUI package plus graphical user
interface (GUI) shell (l2rshell) and installer.
It only runs under Win NT, 2000, XP, 2003, Vista, Win7 and newer.
From LaTeX2RTF version 2.0.0 up it also runs on 64bit systems.
The win64 package (only LaTeX2RTF version 1.9.19) is the win package but with 32bit versions of the shell utilities so that it also runs on 64bit systems. From LaTeX2RTF version 2.0.0 up, there is no separate win64 package, as the win32 package also runs on 64bit systems.
There are a few people working on LaTeX2RTF, and some more make contributions, coordinated by Wilfried Hennings (texconvfaq “at” gmx.de). See the SourceForge project pages for the latest news.
To install,
DESTDIR
variable (MAKEFILE line 21). If you do not have root access
you might wish to set the makefile variable DESTDIR
to be your home directory.
On some machines the cc compiler will issue errors. Therefore the
default compiler command in the Makefile is CC=gcc
.
make
in the scripts/ directory.
make
If this is not your first time installation, you may want to preserve your old configuration (*.cfg) files. Copy them to a safe place before installing.
On IBM AIX, the IBM make utility does not support some of the commands
used in Makefile. In this case use gmake
(from GNU) instead.
Sun has decided to support the XPG4 standard on Solaris by an
alternative set of binaries. To allow bitmap conversion of equations, two
things are needed. First, change the first line of latex2png to #!/usr/xpg4/bin/sh
Second, define the XPG4_GREP environment variable accordingly,
for bash-like shells XPG4_GREP=/usr/xpg4/bin/grep; export XPG4_GREP
or
for tsch-like shells setenv XPG4_GREP /usr/xpg4/bin/grep
.
make install
Note that the Makefile does not contain a rule for make uninstall.
This is by design.
On modern Linux distributions, you would prefer to install LaTeX2RTF by the package manager
of your distribution, which also provides an easy means for update and uninstallation.
If your package manager does not provide the LaTeX2RTF package
or you need to install LaTeX2RTF from the sources for some other reason,
you should consider using checkinstall
which creates a package for your
package manager which then can be installed and uninstalled by the package manager.
If you nevertheless need to run make install
, note the following:
If your mkdir
doesn’t support the -p option, then create
the necessary directories by hand and remove the option from the
$MKDIR
variable. If you have other problems, just copy
latex2rtf and latex2png to a binary directory, and move
the contents of the cfg/ directory to the location specified by
$CFG_INSTALL
.
make check
[OPTIONAL] This tests LaTeX2RTF on a variety of LaTeX files. Expect
a whole lot of warnings, but no outright errors. (On IBM AIX, use gmake check
.)
Note that this will check the basic functionality of the latex2png
script, and then that of latex2rtf.
make install-info
[OPTIONAL] This installs .info files for use with the info
program.
You no longer need to define the environment variable RTFPATH
. This
is only necessary if you move the directory containing the .cfg files.
Just define RTFPATH
to be the path for the new location of the cfg
directory.
The UNIX and Mac packages do not contain an executable for DOS
or Windows. You may compile it yourself (with djgpp or MinGW)
or get the
DOS package as file latex2rtf-x.x.x_dos.zip
(where x.x.x is the version number)
or the win-NO-GUI package as file latex2rtf-x.x.x_win-NO-GUI.zip
(no installer, no graphical user interface (GUI))
from SourceForge
The DOS package contains a precompiled executable
which should run under plain DOS and also in the command prompt
(or “console”) of any MS Windows system including Vista and Windows 7
but not on 64bit systems.
To install the DOS or win-no-GUI package of LaTeX2RTF, extract all files
from the zip archive, preserving the folder structure
(winzip: check “use folder names”),
preferably to C:\l2r, or under Windows, to your "Program Files"
folder (which ever it is named in your system)
because then it will find its cfg files by default.
If you extracted them to another folder (e.g. C:\my_files\l2r),
either edit the file L2RPREP.BAT
and change the folder C:\l2r to where you put them, or specify the
path to the cfg folder in the command line.
Avoid blanks in folder and file names!
Make sure that the folder containing the file L2RPREP.BAT
is in your search path, or put this file into a folder
which is in your search path.
To display the current search path, enter PATH
from the command prompt (with no arguments).
Under plain DOS, conversion of equations or figures to bitmaps is not possible because Ghostscript and ImageMagick are not available for plain DOS.
To install LaTeX2RTF on a MS Windows system (WinNT, Win2000, WinXP, Vista, Win7), download the win package, execute the latex2rtf-x.x.x_win.exe (where x.x.x is the version number) and follow the instructions.
Note: The installer and GUI shell do not support Win9x and WinMe since LaTeX2RTF v.1.9.17. If you have one of these systems, you should use the win-NO-GUI package (1.9.19 and up) of LaTeX2RTF.
To start the program double-click the LaTeX2RTF icon, or drag and drop a .tex file onto the icon.
If your LaTeX document refers to external graphic files, e.g. eps, or you want to use the option to convert equations to bitmaps, you must have LaTeX, ImageMagick and Ghostscript installed. These programs are freely available for download at http://www.miktex.org/, http://www.imagemagick.org and http://www.ghostscript.com
The following versions were available at the time of writing
and tested with LaTeX2RTF version 2.3.11:
- MikTeX 2.9
- Ghostscript 9.19
- ImageMagick-7.0.1-8-Q16-x86-dll.exe
When installing ImageMagick, be sure to choose (check)
"Install legacy utilities (e.g. convert)"
If MikTeX, ImageMagick and Ghostscript are installed, the paths to their executables are detected automatically. If for any reason this doesn’t happen, these paths can be specified manually in the “Environment” tab of the LaTeX2RTF GUI shell window.
If you need to start LaTeX2RTF not from its own shell but from commandline
or another Windows application, you need to add the folder containing
the latex2png script and the helper programs to the search path.
Some applications (e.g. Lyx) allow to temporarily add the path by
specifying it in the options.
If this is not possible, you can add the latex2rtf folder to Windows’
default path like follows:
To add a folder – e.g. C:\Program Files\latex2rtf – to the search path:
If you do NOT use the GUI (l2rshell.exe),
either the folders where TeX, ImageMagick and Ghostscript are installed
must also be in your search path, or you must edit the file L2RPREP.BAT,
ensure that the pathes in this file point to the folders where
TeX, ImageMagick and Ghostscript are installed on your machine,
and call l2rprep before calling latex2rt.
Or you edit l2r.bat and call l2r instead of
calling latex2rt.
If you DO use the GUI (l2rshell.exe), the TeX, ImageMagick and Ghostscript folders are automatically added to the search path by the GUI.
When equations are to be converted to bitmaps, for each equation
LaTeX2RTF first writes a temporary l2r_nnnn.tex file to disk which consists
of only the equation to be converted. It then sends the call
for "bash latex2png l2r_nnnn.tex" to the operating system.
In previous versions of latex2rtf, some users got the message
“Out of environment space” (can occur only under Windows 95, Windows 98
or Windows ME); this should be solved now
by using bash.exe instead of command.com.
If you want a MacOS X version, make sure that you have installed the developer tools CD that is appropriate for your OS version, and then follow the directions above for a UNIX installation. Alternatively you can install using fink http://www.finkproject.org/ and http://sourceforge.net/projects/fink/.
As of 2006-01-30 there was a GUI shell for Macintosh at
http://www.inf.ethz.ch/personal/fischerk/LaTeX2rtf/index.html
but now (Nov. 2013) this is not available anymore.
There is a PPC port of an old version 1.9k for Classic MacOS LaTeX2RTF. To convert a LaTeX file using this version, drag the file onto the LaTeX2RTF icon. The translation is best if there are .aux and .bbl files in the same folder as the .tex file to be converted. These should be generated using LaTeX and bibtex.
The code for LaTeX2RTF is standard ANSI C. Some possible pitfalls are
gcc
.
make check
All the files in the test directory are converted (with varying degrees of success) using LaTeX2RTF and are tested before most CVS check-ins and with all released tarballs. There will be many warning messages, but there should be no actual error messages. If you do not have a working latex2png script, then some of the files will fail to be translated.
LaTeX2RTF assumes that the .tex file you want to convert is a valid
LaTeX document. The chances of a successful LaTeX2RTF conversion are slightly better than the
proverbial snowball’s if the .tex file doesn’t latex
properly. Use
LaTeX to find and correct errors before using LaTeX2RTF.
LaTeX2RTF also needs the .aux file and .bbl file
which are generated by running latex
on the .tex file
To correctly convert font names you must edit the fonts.cfg configuration file. This file is used to specify the needed font names and how the LaTeX default font names should be converted to RTF (see Font Configuration). LaTeX variables and user defined commands are not evaluated. They will be simply ignored. To let LaTeX2RTF know the names of variables you can add them in the ignore.cfg file (see Ignore Command).
The environment variable RTFPATH may contain a search path for the support files (all files ending in .cfg). If no file is found during the search in the search-path or if the environment variable is not set, the compiled-in default for the configuration-file directory is used. If the files are not found at all the program aborts.
In the DOS and Windows versions the search path is separated by ‘;’ in the Unix version by ‘:’. For the paths themselves apply ‘\’ and ‘/’. A separator may appear at the beginning or ending of RTFPATH.
Make sure that the configuration files are in the correct directory (or folder). LaTeX2RTF will need at least fonts.cfg, direct.cfg, ignore.cfg, english.cfg. You may have to change one ore more of them to suit your needs (see Configuration).
See Missing options, for actual implementations irregularities.
See Reporting Bugs, for information on how to reach the maintainer.
The LaTeX2RTF command converts a LaTeX file into RTF text format. The text and much of the formatting information is translated to RTF making the new file look similar to the original. The command line syntax is:
latex2rtf [-options] inputfile[.tex]
for the DOS and Windows versions:
latex2rt [-options] inputfile[.tex]
The options set in the Windows GUI (l2rshell.exe) are inserted as command line options when clicking RUN.
The -options
may consist of one or more of the following
-a auxfile
specify an .aux file (for table and figure references) that
differs from inputfile.aux. If this is omitted, the name of the
inputfile with the suffix replaced .aux'will be taken. You must
provide both files (.tex and the .aux) to be able to
convert cross-references in a LaTeX file. The .aux is created
by running the inputfile.tex through latex
.
-b bblfile
Unless an bblfile is specified with the -b
option, LaTeX2RTF uses a
inputfile.bbl. The bblfile file is used for citations and is typically
created by running inputfile.aux through bibtex.
-C codepage
used to specify the character set (code page) used in the LaTeX document. This is only
important when non-ansi characters are included in the LaTeX document. Typically this
is done in a LaTeX2e file by using \usepackage[codepage]{inputenc}
and in this case you need not specify the -C codepage option.
If NO \usepackage[codepage]{inputenc}
is in the LaTeX2e file, you must
inform the converter about the codepage by the -C codepage option. You may select any
of the following code pages: ansinew, applemac, cp437, cp437de, cp850, cp852, cp865,
decmulti, cp1250, cp1252, latin1, latin2, latin3, latin4, latin5, latin9, next. The
default behavior is to use ansinew (code page 1252). Cyrillic support includes
conversion of koi8-r, koi8-u, cp1251, cp855, cp866, maccyr, and macukr encodings.
-d debug_level
The -d option determines the amount of debugging information to send to
stderr while translating. debug_level=0 means only Errors, ‘1’ Warning Messages
(default) also. The debug_level can go as high as ‘7’ for insane amounts of
debugging fun. Warnings and error messages are output to stderr and by default
listed in the console window. They can be redirected to a file “latex2rtf.log”
by appending 2>latex2rtf.log
to the command line.
-D dots_per_inch
used to specify the number of dots per inch for equations converted to bitmaps. This value is also used when picture environments are converted to bitmaps as well as when EPS graphics are converted to png files. The default value is 300 dots per inch.
-E#
selects whether figures are included in the rtf (default) or created as external files with the filenames inserted in the rtf text.
The options -E4, -E8 and -E12 are experimental and may not work as expected.
-E0
Do not include any figures in RTF.
-E1
Include figures that need no conversion.
-E2
Include figures that need conversion.
-E3
Include all figures (default).
-E4
Insert filenames for figures that do not need conversion.
-E8
Insert filenames for figures that need conversion.
-E12
Insert filenames for all figures.
With options -E8 and -E12, pdf and ps graphics as well as tikz graphics are converted to eps and the eps filenames inserted in the document text. With -E4 and -E12, bitmap files are inserted in their original format. After opening the rtf in a textprocessing or dtp program, a macro can search for the inserted filenames and insert the files in their places. Further info is in the description of the -M option.
-f#
where # selects which fields to use during conversion:
-f0
do not use fields in RTF. This is handy when primitive RTF editors are being used to view the RTF output.
-f1
use fields for equations but not \ref
and \cite
.
-f2
use fields for \ref
and \cite
but not equations. This
will be useful for versions of OpenOffice that import cross-references
properly (as of Sept 2003 in a soon-to-be released version) but do not properly
handle fields in equations.
-f3
use fields when possible. This is the default and is most useful when the RTF file is being exported to be used in Word. This retains the most information from the original LaTeX file.
-F
use LaTeX to create bitmaps for all figures. This may help when figures are not translated properly with the default settings. This typically requires a functional version of ImageMagick on your machine to work properly.
-h
a short usage description
-i language
used to set the idiom or language used by the LaTeX document. Typically, this is
specified in a LaTeX2e document by including \usepackage[language]{babel}
where
language
is one of the languages supported by the babel
package. All
languages listed in the babel system are supported so far as translations for “Chapter,”
“References,” and the like. Furthermore, some commands found in the style files for
german, french, russian, and czech style
are supported (see Language Configuration).
-l
same as -i latin1 (Note that the default behavior is to use ansinew which is a superset of latin1). Included for backwards compatibility.
-M#
where # selects the type of equation conversion. Use
-M1
convert displayed equations to RTF
-M2
convert inline equations to RTF
-M4
convert displayed equations to bitmap
-M8
convert inline equations to bitmap
-M16
insert Word comment field that contains the raw LaTeX equation
-M32
insert the raw latex equation in the RTF text delimited by $ ... $
for
inline equations and by \[ ... \]
for displayed equations.
This is useful when using version 6 of the MathType equation
editor, which converts typed or pasted TeX code into a MathType equation.
Probably this could also be useful for use in OpenOffice, as OO has an
equation syntax which partially resembles TeX syntax.
-M64
convert displayed equations to EPS files and insert filenames in RTF text.
-M128
convert inline equations to EPS files and insert filenames in RTF text.
These switches can be combined to get different effects. Handy examples are
-M3
convert both inline and displayed equations to RTF (default)
-M6
convert inline equations to RTF and displayed equations to bitmaps
-M12
convert both inline and displayed equations to bitmaps
-M192
convert both inline and displayed equations to EPS and insert filenames in RTF text
Conversion to bitmaps or eps requires that you have installed a working latex2png script.
Producing bitmaps is slow.
When running the DOS version, conversion to bitmaps works for the first 26
equations but fails for the rest with the message
"latex2png: pipe error: Too many open files (EMFILE)".
This is probably a bug in the djgpp 2.04 compiler.
The Windows version, compiled with MinGW, successfully
converts at least 500 equations to bitmaps.
When -M64, -M128 or both are specified, equations are converted to
individual eps files, the filenames of which are literally inserted in
the rtf file, delimited by [###...###]. After loading the rtf file in a
text processing program, a macro can be run which searches for "[###"
and "###]", extracts the filename, and inserts the eps in that place.
The Windows installer package contains the code of such a macro for
Word2010 in the file "WordMacro_InsertEPSfromNames.txt" in subfolder
"scripts". (This macro may also run on other versions of Word but
it was only tested on Word2010.) In Word, the inserted eps graphics
display in bad quality on the screen and on non-postscript printers
but can be printed in high quality on postscript and pdf printers.
-o outputfile
Unless an outputfile is specified with the -o
option, the resulting RTF
filename is formed by removing .tex from the inputfile and appending
.rtf.
-p
Escape parentheses in mathematical formulas. This has no effect unless EQ fields are being generated. When this option is used, then a ‘(’ or ‘)’ that appears in an EQ field will be preceeded by a backslash. Despite documentation to the contrary (which says that all parentheses should be escaped), adding escapes usually produces a worse result than doing nothing. If Word displays some formulas with parentheses as “Error!”, you might try this option as a last resort. See also the -S option.
This is an option because it will break typesetting equations with non-matching parentheses (because an unmatched unquoted parenthesis would terminate the field).
-P /path/to/cfg
used to specify the folder (i.e. directory) that contains the .cfg
files
and/or the folder that contains the latex2png script.
Unix, Mac: The folder that contains the latex2png script must be prepended
by a ":".
DOS, Windows: The scripts folder is not used, the
scripts are always taken from the search path, therefore the folder
containing the scripts and the helper programs must be the first in the search path.
You can either add it to the search path permanently or add it temporarily by
calling l2rprep.bat before starting conversions.
If any of the folder names contains a blank, the folder string must be
enclosed in single (Unix, Mac) or double (DOS, Windows) quotes.
Examples:
(Unix:) latex2rtf -P ./cfg/:./scripts/ foo
(DOS/Windows:) latex2rt -P "C:\Program Files\latex2rtf\cfg" foo
Note that without specifying the -P option, LaTeX2RTF tries to find its cfg files
in the following locations:
1. the folder specified by the environment variable RTFPATH
, if this variable exists;
2. The folder %PROGRAMFILES%\latex2rtf\cfg
, if the variable
PROGRAMFILES
exists – this is the folder in which LaTeX2RTF is installed
by the Windows GUI installer with default settings;
3. the folder specified at compilation time by the variable
CFGDIR
. This is set in the Makefile. The DOS version is compiled
with CFGDIR=C:/l2r
, the Windows version with
CFGDIR=C:/PROGRA~1/latex2rtf
.
-se#
selects the scale for equation conversion, where # is the scale factor (default 1.00).
-sf#
selects the scale for figure conversion, where # is the scale factor (default 1.00).
-t#
where # selects the type of table conversion. Use
-t1
convert tables to RTF (default)
-t2
convert tables to bitmaps
-v or -V
prints version information on standard output and exits.
-S
used to specify that semicolons should be used to separate arguments in RTF fields (instead of commas). Typically this is needed when the machine that opens the RTF file has a version of Windows that uses ‘,’ for decimal points.
-T /path/to/tmp
used to specify the folder where to put temporary files.
The path can be absolute, e.g. /path/to/tmp
or relative
to the folder where the .tex input file is in, e.g. tmp
or ./tmp
.
If you call LaTeX2RTF from the commandline (e.g. under Linux or
when called as export filter by LyX), make sure that the tmp folder exists.
Only the LaTeX2RTF Windows shell tries to create the tmp folder,
the command line program doesn’t.
-W
includes warnings directly in the RTF file
-Z#
add the specified number of extra }
to the end of the RTF file. This
is useful for files that are not cleanly converted by LaTeX2RTF.
With no arguments other than switches starting with a “-”,
LaTeX2RTF acts as a filter, i.e., it reads from stdin
and writes
to stdout
.
In addition, diagnostic messages are sent to stderr
.
If these standard channels are not redirected using <
and >
, then the input is read from the command line,
and both output and error messages are printed on the screen.
To redirect warnings and error messages to a file
“latex2rtf.log”, append 2>latex2rtf.log
to the command line.
If a non-switch argument is present, LaTeX2RTF assumes it is the name of the input file. The file must have extension “.tex” but the extension is optional. The output file is constructed from the input file name by removing the extension “.tex” and adding “.rtf”.
With the -d option you can specify how much processing information
LaTeX2RTF reports.
If there is a logfile specified the output goes to this file. Nonetheless
Warnings and Errors are logged to stderr always. They can be redirected
to a file “latex2rtf.log” by appending 2>latex2rtf.log
to the command line.
Possible values of -d are
In this chapter you find what styles is LaTeX2RTF supposed to translate correctly to RTF.
LaTeX2RTF understands most of the commands introduced with LaTeX2e. It translates both
the old 2.09 version of \documentstyle[options]{format#}
and the newer
\documentclass[options]{format}
.
As of version 1.9.17 and up, LaTeX2RTF has limited unicode support. LaTeX files
that use unicode sequences are just emitted directly into the RTF file.
Symbols and odd characters in math sequences may also be converted to
a unicode sequence. Some of them need the STIXGeneral fonts
(see Math and Special Symbols) to be installed on the system
where the rtf file is to be displayed or printed.
Support for unicode encoded input
is activated by the LaTeX command
\usepackage[utf8]{inputenc}
or
\usepackage[utf8x]{inputenc}
.
It is not necesary to specify the -C option if you use \usepackage{isolatin1}
or \documentstyle[isolatin1]{...}
. LaTeX2RTF automagically detects these
packages/style options and switches to processing of ISO-Latin1 codes. The following
encodings are supported: ansinew, applemac, cp437, cp437de, cp850, cp852, cp865,
decmulti, cp1250, cp1252, latin1, latin2, latin3, latin4, latin5, latin9, next,
koi8-r, koi8-u, cp1251, cp855, cp866, maccyr, macukr, utf8, and utf8x. The encoding used in
RTF files is cp1252. If cyrillic fonts are present, then these are represented
in the RTF file using cp1251 (Windows Cyrillic).
The following languages from the Babel package are supported: afrikaans, german, nynorsk, spanish, bahasa, dutch, icelandic, polish, swedish, basque, english, portuges, turkish, brazil, esperanto, irish, romanian, usorbian, breton, estonian, italian, samin, welsh, catalan, finnish, latin, scottish, croatian, lsorbian, serbian, czech, french, magyar, slovak, danish, galician, norsk, slovene.
The only thing that these files do is to translate various words usually emitted by LaTeX during processing. For example, this ensures that the LaTeX2RTF will provide the correct translation of the word “Chapter” in the converted document.
You can select any of the above languages using the -l option. This
is not needed if your LaTeX file contains \usepackage[language]{babel}
.
Encountering the german package or babel option (by H. Partl of the
Vienna University) makes LaTeX2RTF behave like that: German Quotes, German
Umlauts by "a
, etc... This support is programmed directly
into LaTeX2RTF and supporting similar features for other languages will require
patching the source code.
There is similar support for french packages.
There is reasonable support for english, latin1, latin2, and cyrillic languages.
See Language Configuration, for details on how to write a language.cfg file for your language by yourself.
Cross references include everything that you might expect and then some: bibliographic citations, equation references, table references, figure references, and section references. Section, equation, table and figure references are implemented by placing RTF bookmarks around the equation number (or table number or figure number).
Page references work but are implemented as “warm” cross-references. This
means that Word does not automatically update the page references when the file
is opened. To update the page references you must select the entire document
(in Word) and press F9
.
Bibliographic references currently require that a valid .aux file be present. This is where LaTeX2RTF obtains the reference numbers. It would be nice if LaTeX2RTF just automatically numbered the references when there was no .aux file, but LaTeX2RTF does not do this yet.
LaTeX2RTF relies on BibTeX to convert and format bibliographic entries. Usually the style file for a particular BibTeX format does not use any special LaTeX commands and therefore the bibliography file file.bbl can be processed by LaTeX2RTF without difficulty. As a consequence, LaTeX2RTF can handle most bibliography styles without problem.
There are several latex style packages that add additional
latex commands to enhance bibliographic formatting.
LaTeX2RTF currently supports the following bibliographic packages:
apacite, apalike, authordate, harvard, natbib (also with apanat1b).
These packages have many, many options and you may encounter
problems with formatting in special cases.
As of LaTeX2RTF 1.9.17 and up, the natbib command bibpunct is supported.
Footnotes are implemented and appear at the bottom of each page.
Indexing is reasonably-well supported. The simple mark-up of makeindex
\index{topic!subtopic@\textit{subtopic}}
is supported. The rest of the fancy indexing stuff is not implemented.
The index is created at the location of the \printindex
command.
When a file with an index is first opened in Word, you must select the
entire file and update the page references and fields by pressing F9
.
Currently, there is no support for \labels
of \item
s in enumerate environments.
The conversion of cross-references is not perfect because of the different
mechanisms in the LaTeX and Word worlds. In particular, if there are
multiple \label
in a figure, table, or section environment then only the first
gets processed. It is also possible to confuse the LaTeX2RTF in eqnarray environments.
LaTeX2RTF will handle some basic page formatting options, including \doublespacing (as implemented in the setspace package), and the margin setting options provided by the geometry package including commands in the ratio, centering and margin families. Not all geometry options are implemented yet, in part because there are no corresponding rtf commands for many of them.
There are six separate levels of equation translation based on the -M switch, see LaTeX2RTF Options. Each equation is converted either to an EQ field or to a bitmap or inserted as raw TeX code in the document or converted to an eps file with the eps file name inserted in the document text delimited by [###...###].
This is an interim solution (for some definition of “interim”). Ideally the equations would become OLE equation objects in the RTF file, but this needs to be implemented.
Some functions in the EQ fields have two or more parameters with a separator between each two. Unfortunately, the interpretation of these separators depends on the country specific settings in the MS Windows system in which the rtf file is opened. e.g. in English versions of MS Windows, the default parameter separator is the comma, in German versions the default is the semicolon. If the parameter in the RTF file does not match the Windows setting, some EQ fields are not interpreted correctly. You can check and set the separator in [Windows control panel - country settings - numbers - list separator]. By default, LaTeX2RTF uses the comma as separator. If LaTeX2RTF is called with the command line parameter -S , the semicolon is inserted as parameter delimiter.
Theoretically, according to the Word help file, parentheses ‘(’ or ‘)’ in mathematical formulas should be escaped (by a preceding backslash). Despite this, adding escapes usually produces a worse result than doing nothing. If Word displays some formulas with parentheses as “Error!”, you might try the -p option as a last resort.
It is also possible to convert an EQ field generated by LaTeX2RTF to an Equation Editor object by opening the rtf file in Word and double-clicking on the equation. However there are bugs in the interface between Word and Equation Editor which prevent symbols in font Symbol or MTExtra to be converted correctly. The full commercial version of the Equation Editor, called MathType, handles this conversion correctly.
If you have MathType version 6 or later, an even better way to convert LaTeX equations to MathType is letting LaTeX2RTF write the LaTeX code of the equations verbatim in the rtf file (option -M32), then open the rtf file in Word, select the LaTeX code of an equation, cut it to the clipboard, open MathType, and paste the code. MathType will convert the code into an equation. Wilfried tried to automate this in a Word macro, but this fails because the macro does not wait until MathType is started and ready to receive the pasted code. Maybe the MathType authors will give us a hint or provide such a macro.
MathType can be downloaded from http://www.dessci.com/ (30 day test version).
The way that symbols are converted in the RTF is based on the following observations. If the symbol is found in the latin 1 character set, then the current font is used, else the unicode code is inserted in the rtf code. (Implemented since version 2.1.0)
The means that on the system where the .rtf file is opened, a unicode font should be available or these glyphs will not be displayed correctly. As only the STIX fonts contain all needed characters, these fonts should be installed on the system where the rtf file is to be displayed or printed.
Many mathematical and special symbols are directly supported by LaTeX2RTF. Less common symbols (not found in the standard font) are supported by the conversion table in the file direct.cfg, see Direct Conversion.
Required fonts are:
Note that while Office 2003 on Vista works correctly with the Open Type version, it does not on Windows XP (Word 2003 assigns no character spacing, and Publisher doesn’t display the character at all). On Windows XP, Office 2003 only displays the symbols correctly with the TrueType (ttf) version of the fonts. But stixfonts.org only supplies the Open Type (otf) version. TrueType versions of the fonts can be downloaded from http://sites.google.com/site/olegueret/stixfonts-ttf.
Conversion of tabular and tabbing environments is somewhat lame. The main difficulty is that LaTeX (and html) will size the columns of a table automatically. There is no such feature in RTF. Consequently, the conversion defaults to making all the columns have equal size. This is suboptimal and should be revised.
Another way is to use the option -t2 to make latex render them as bitmaps and insert the bitmaps into the RTF file. This feature was added in version 1.9.19.
There is now rudimentary support for \includegraphics
.
Three file types will be inserted into the RTF file without needing
conversion: .pict, .jpeg, and .png files.
EPS and PDF files are converted to PNG using convert
from the
ImageMagick package. Some options are even handled properly.
If there is no \pagestyle
command, the RTF output is generated as with
plain pagestyle, i.e. each page has its page number centered at the bottom.
You must turn this off with the \pagestyle{empty} command in the LaTeX file if you don’t want pagenumbers. The headings and myheadings styles are silently ignored by now. The twosided option to the \documentstyle or \documentclass produces the corresponding RTF tokens. Note that these features require RTF Version 1.4.
Hyperlatex support is largely broken at the moment, but continues to improve.
Otfried Schwarzkopf has created the “Hyperlatex Markup Language” which is a “little package that allows you to use LaTeX to prepare documents in HTML.” It brings an Emacs lisp program with it to convert the Hyperlatex file to HTML. Hyperlatex can be obtained from the CTAN-sites, see Obtaining LaTeX2RTF. There are two convenient commands that avoid typing: \link and \xlink that generate an “internal” label which then is used in the following \Ref and \Pageref commands.
LaTeX makes it possible to write ‘\link{anchor}[ltx]{label}’, which typesets: ‘anchor ltx’. LaTeX2RTF does NOT support this aproach since the optional parameter is thrown away right now, see LaTeX2RTF under Development.
Note that you have to update your .cfg files if you are upgrading, since there are a lot of HTML oriented commands in Hyperlatex that we simply can ‘ignore’.
Some APA citation styles are supported, see Citation Commands
Support for APA text formatting is only rudimentary at the moment (headings without numbering). If you want to format a document according to APA, rename cfg/style.cfg to style_sav.cfg and rename cfg/styleAPA.cfg to style.cfg before starting LaTeX2RTF.
On processing input LaTeX2RTF first converts the LaTeX special characters. If it encounters one of the standard commands it is converted internally. If a command is not known to LaTeX2RTF it is first looked up in direct.cfg and the RTF code specified there is output. If not found there it is looked up in the section ignore.cfg. This file includes a lot of LaTeX commands that do not affect the output (cross reference information and the like), or that we are not able or willing to convert to RTF.
You can use ignore.cfg if you get tired of seeing
WARNING: command: `foo' not found - ignored
and you don’t need ‘foo’ in your RTF document. It would be nice to send your additions to the LaTeX2RTF mailing list for inclusion in later distributions.
LaTeX2RTF accepts Unix, MS-DOS, and Macintosh line ending codes (\n, \r\n and \r). The files it creates get the line ending for the platform on which LaTeX2RTF was compiled.
The LaTeX file may have been created with a wide variety of character
sets. If the LaTeX lacks the \package[codepage]{inputenc}
definition, then you may need to use the command line switch to manually
select the proper code page (see Input Encoding).
Starting with LaTeX2RTF 1.9.18, there is a handy method for controlling which content
should be processed by LaTeX or by LaTeX2RTF. Control is achieved using the
standard \if
facility of TeX. If you include the following line in
the preamble of your document (i.e., before \begin{document}
)
\newif\iflatextortf
Then you will create a new \iflatextortf
command in LaTeX.
TeX sets the value of this to false
by default. Now,
LaTeX2RTF internally sets \iflatextortf
to be true, and to ensure that
this is always the case, LaTeX2RTF ignores the command \latextortffalse
.
This means that you can control how different applications
process your document by
\iflatextortf This code is processed only by latex2rtf \else This code is processed only by latex \fi
Note that \iflatextortf
will only work within a section; you
cannot use this command to conditionally parse code that crosses section
boundaries. Also, it will only work on complete table or figure
environments. Due to the mechanism used by LaTeX2RTF in processing these
environments, at this time the only way to conditionally parse tables
and figures is to include two complete versions of the environment in
question, nested within an appropriate \iflatex2rtf
structure.
LaTeX2RTF versions 1.9.15 to 1.9.18 had the ability to hide contents from LaTeX
but expose them to LaTeX2RTF by starting a line with %latex2rtf:
. This
code was horribly broken, and it was removed. The same functionality is readily
achieved using the \iflatextortf
mechanism. For example, the old
method allowed
%latex2rtf: This line will only appear in the latex2rtf output,
To get the same behavior, define \iflatextortf
and use
\iflatextortf This code is processed only by latex2rtf \fi
On writing output, LaTeX2RTF generates the operating system specific line ending code
(\n
on Unix, \r\n
on DOS or Windows), depending on which system
LaTeX2RTF was compiled.
As both should be legal to any RTF Reader the resulting RTF rendering should
not be affected.
LaTeX2RTF does not offer a whole lot of flexibility in how files are translated, but it does offer some. This flexibility resides in four files direct.cfg, ignore.cfg, fonts.cfg, and language.cfg. These filese are documented in the next four sections.
The file direct.cfg is used for converting LaTeX commands by simple text
replacement. The format consists of lines with a LaTeX command with backslash
followed by comma. The rest of the line until a ‘.’ character will be written
to the RTF file when the command is found in the LaTeX file. Lines
starting with a ‘#’ character are ignored. After the ‘.’ everything is ignored
to end of line. To select a specific font use *fontname*
, where
fontname
be defined in fonts.cfg.
To write the ‘*’ character use ‘**’.
\bigstar,{\u8727**}. \copyright,\'a9.
In general, specific fonts should not be specified in this file. There is a mechanism to do this, but it turns out that this is not as useful as originally thought. The main reason that this fails is because the conversion of equations from Word fields to Equation Editor objects is buggy. The consequence is that to have symbols show up properly, they must be encoded differently when the Symbol and MT Extra fonts are used — depending on whether Word fields are active or not. It was all very tedious to figure out a mechanism that was “least broken.”
The file ignore.cfg is used for defining how to ignore specific commands. This file is used for recognition of LaTeX variables, user defined variables, and some simple commands. All variables are ignored but the converter must know the names to correctly ignore assignments to variables. Lines in this file consist of a variable name with backslash, followed by comma and the type of the variable followed by ‘.’. Possible types are
simple numeric value
numeric value with following unit of measure
ignores anything to the first character after ‘=’ and from there to next
space. e.g., \setbox\bak=\hbox
ignores anything to next ‘\’ and from there to the occurence of anything
but a letter e.g., \newbox\bak
ignores single command e.g., \noindent
ignores a command with one parameter e.g., \foo{bar}
does not produce a Warning message if PACKAGE is encountered, e.g.,
‘\kleenex,PACKAGE.
’ ignores ‘\usepackage{kleenex}
’
intended to process contents of unknown environment as if it were
plain LaTeX, e.g. ‘\environ,ENVCMD.
’
Therefore ‘\begin{environ} text
\end{environ}
’ would be converted to ‘text’.
Doesn’t work in LaTeX2RTF version 2.1.0 up to and including 2.3.4.
ignores contents of that environment, e.g., with ‘\ifhtml,ENVIRONMENT.
”,
‘\begin{ifhtml} text \end{ifhtml}
’ ignores ‘text’.
The types are in upper case exactly as above. Do not use spaces. Lines starting with a ‘#’ character are ignored. After the ‘.’ everything is ignored to end of line. Example:
\pagelength,MEASURE.
The file fonts.cfg contains the font name mapping. For example, this
file determines what font is used to represent \rm
characters in the RTF file.
A line consists of a font name in LaTeX followed by comma and a font name in RTF. The end is marked by a ‘.’. No spaces are allowed. The LaTeX font will be converted to the RTF font when it is found in the LaTeX file. If multiple translations for the same LaTeX font are specified, only the first is used. All fonts in a LaTeX file that are not in this file will be mapped to the default font. All RTF fonts listed in this file will be in every RTF file header whether used or not. Lines starting with a ‘#’ character are ignored. After the ‘.’ everything is ignored to end of line.
To add a RTF font not used as substitute for a LaTeX font — for example a Symbol font used in direct.cfg — use a dummy LaTeX name like in the following
Dummy3,MathematicalSymbols.
Make sure you use the correct font name. Take care of spaces in font names. The
default fonts are named Roman \rm
, Slanted \sl
, Sans Serif
\sf
, Typewriter \tt
, or Calligraphic \cal
.
The file(s) language.cfg control the translation of LaTeX’s “hardcoded” sectioning names. The standard LaTeX styles have some fixed Title names like ‘Part’, ‘Reference’ or ‘Bibliography’ that appeared in English or German in the output with the original versions of LaTeX2RTF.
It is unlikely that you will need to create a new language.cfg file. However, just look at one of the existing files and follow the pattern. The format is really simple.
As stated in the Debugging section, LaTeX2RTF provides a means to control
the amount of debugging information through the -d# switch.
By using a debugging level of 4, you can get a pretty good idea of what
LaTeX command caused the problem and what line that command might be
found on. Warnings and error messages are output to stderr and by default
listed in the console window. They can be redirected to a file
“latex2rtf.log” by appending 2>latex2rtf.log
to the command line.
indicate a bug in the source code. PLEASE report them, if they do not apear in the documentation (see Reporting Bugs).
always abort the program and are caused by conditions that prevent further conversion of the input file. Typically this is cause by LaTeX2RTF getting hopelessly confused by the number of braces in the LaTeX file.
inform you, that there is some conversion loss from LaTeX to RTF, or that the output file has some restrictions on some RTF Readers. Most of these warnings can be supressed by add the offending command to the ignore.cfg file.
Error and Warning messages should follow the GNU Coding standards, i.e. they have the format
inputfile':line: Error|Warning: message
You can also control the level of debugging output by inserting \verbositylevel{#}
in the LaTeX file. This is very handy if you have a large LaTeX file
that is failing in only a small section. For example,
problem free latex file .... \verbositylevel{5} problematic code \verbositylevel{0}
will cause a huge amount of debugging information to be emitted for the problematic code.
Error reporting and logging still has many inconsistencies, but it gets better with each release. Don’t try to make any sense in debugging levels above 4, these are for my own delight only and can change significantly between versions.
The inputfile may be incorrectly identified if it is incorporated
through \input
or \include
. The line may be also be wrong
at times. See Known Bugs.
In 1994 the first Version of LaTeX2RTF was written by Fernando Dorner and Andreas Granzer of the Viena University supervised by Ralf Schlatterbeck in a one-semester course. They created a simple LaTeX parser and added most of the infrastructure for the program. This was version 1.0 of LaTeX2RTF. In 1995, work on LaTeX2RTF was continued in another one-semester course by Friedrich Polzer and Gerhard Trisko. The result was LaTeX2RTF version 1.5. Ralf Schlatterbeck (ralf “at” zoo.priv.at) maintained and extended LaTeX2RTF until 1998.
In 1998 Georg Lehner (jorge_lehner “at” gmx.net) found the reference to LaTeX2RTF on the TeX Conversion Webpage of Wilfried Hennings and added some functionality and took over the maintainence of the program. The last version release by Georg is 1.8aa. The bulk of development post 1.8aa was done by Scott Prahl. Wilfried Hennings now coordinates the development of the program and maintains the project on SourceForge where there are also (low volume) mailing lists for users and developers. Mailing via one of these lists requires subscription to the list (to prevent spam). For subscription to these lists visit the page: users list or developers list
As of Januar 2017, version 2.3.12 of LaTeX2RTF is available.
The contents of this manual were composed by copying shamelessly what was available in the original sources and documentation.
\documentstyle
\markboth
and \markright
.
\tableofcontents
there would be two approaches:
Transfer sectioning information, title text and then produce page
numbers by the rtf- reader. Scan and label all of the sectioning
commands while reading and then construct the sectioning information
using these labels. Needs two passes on LaTeX input.
Missing or buggy command line options.
Information logging and Error reporting is not implemented consistently. Need to test and track problems with the linenumber and with the file name.
It would be useful to implement the GNU long option names, e.g.: ‘–debug’, ‘–output_file’, ‘–quiet’, etc. This could be done by switching to the GNU getopt package.
\input
).
Report bugs to to the bug tracking system at SourceForge. Only report bugs for the latest version of LaTeX2RTF that is available. Please provide the following information and observe the following guidelines when reporting a bug in the program:
Scott’s ToDo list
Georg’s todo list
Listed here are all the LaTeX commands currently parsed by LaTeX2RTF. Note: inclusion in this list does not mean that a command is fully and correctly handled by LaTeX2RTF. In some cases the commands here are place-holders only, and are not implemented at all. The list is provided to encourage developers to note any departures from the behaviour that LaTeX users will expect. The location of the commands is noted to assist anyone interested in hacking on the C source code. This list is a work in progress, and may not be immediately useful to general users, other than to indicate those commands that we have at least contemplated implementing.
These commands are found in the commands[]
array in commands.c.
They are arranged alphabetically within sections according to function.
All listed commands work as expected.
All listed commands work as expected.
All listed commands work as expected.
These commands all work as expected.
These commands need to be organized into new or existing sections.
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
There is no rtf code for dotfill; LaTeX2RTF inserts an ellipsis only.
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
These commands are found in PreambleCommands[]
in commands.c, and
are implemented in preamble.c.
Currently, the only command from the setspace package that is implemented, and the only way to modify line spacing.
Currently recognizes *ratio, *centering, *margin, left, right, inner, outer, top, bottom, right, left (including vmargin, hratio etc.)
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Ignored
Found in LetterCommands[]
in commands.c.
Found in GermanModeCommands[]
in commands.c.
Other Commands:
item
caption
center
Environments processed - found in params[]
in commands.c.
Ignored
Ignored
Ignored
Ignored
Jump to: | \
A B C D E F G H I J K L M N O P Q R S T U V W X Z |
---|
Jump to: | \
A B C D E F G H I J K L M N O P Q R S T U V W X Z |
---|
Jump to: | %
A B C D E F G H I L M N P R S T |
---|
Jump to: | %
A B C D E F G H I L M N P R S T |
---|