dwww Home | Manual pages | Find package

TEX2LYX(1)                       tex2lyx 2.3.7                      TEX2LYX(1)

NAME
       tex2lyx - translate well-behaved LaTeX into LyX

SYNOPSIS
       The  simplest way to use tex2lyx is via the File->Import->LaTeX (plain)
       menu item in LyX. That runs tex2lyx on the given file and loads the re-
       sulting  file into LyX. You should try that first, and call it from the
       command line only if you need to use more complicated options.

       tex2lyx [ -userdir userdir ] [ -systemdir systemdir ] [ -f ] [ -n  ]  [
       -c  textclass  ]  [  -e  encoding  ]  [  -fixedenc encoding ] [ -m mod-
       ule1[,module2...]]   [ -s sfile1[,sfile2...]]  [  -skipchildren   ]   [
       -roundtrip ] [ -copyfiles ] inputfile [ outputfile ]

OPTIONS
       -c     Class.  By default, when tex2lyx sees a \documentclass{foo} com-
              mand, it creates a file of textclass “foo”  and  reads  the  LyX
              layout   file   for   that   class   (something   like  /usr/lo-
              cal/share/lyx/layouts/foo.layout  OR  HOME/.lyx/layouts/foo.lay-
              out).   Use -c to declare a different textclass (and read a dif-
              ferent layout file).

              This option is needed if the input file  is  a  LaTeX  fragment,
              with  no  preamble matter or \begin{document} command. LyX files
              created by tex2lyx from partial files can be included in an  ex-
              isting  LyX file using the “Include LyX File” command from LyX's
              Insert menu.

       -m     Module. Load the given modules. This is useful if  tex2lyx  does
              not  automatically  detect a given module, but you know the mod-
              ules that provide some commands or environments that are used in
              the imported file. The modules are loaded in the given order. If
              a module foo depends on a module bar, bar must be  given  before
              foo.

       -f     Force.  tex2lyx  will not run if the .lyx file it would generate
              already exists.  Use the -f option (carefully)  to  clobber  any
              existing files.

       -e     Specify  the default encoding using the LaTeX name as defined in
              the encodings file.  tex2lyx will use this encoding, but  switch
              if it finds any encoding changing commands in the input.

       -fixedenc
              Specify  the encoding using the LaTeX name as defined in the en-
              codings file.  tex2lyx will ignore any  encoding  changing  com-
              mands in the input.

       -n     Noweb.  Translate  a noweb (aka literate programming) file. This
              should be (almost?) equivalent  to  running  “noweb2lyx  foo.tex
              foo.lyx”. This option requires the -c option.

       -skipchildren
              Do  not translate child documents included via \include and \in-
              put.  This option is useful if the child documents are generated
              files  and/or contain many commands that tex2lyx does not under-
              stand yet.

       -s     Syntax files. Input (one or more quoted, comma-separated) syntax
              files  to  read  in addition to the default. (see the section on
              Syntax Files for details).

       -sysdir
              Specify a system directory. Normally, you shouldn't  need  this.
              Your  LyX  system directory is chosen. Cf. the section FILES for
              details.

       -userdir
              Specify a user directory. Normally,  you  shouldn't  need  this.
              Your LyX user directory is chosen. Cf. the section FILES for de-
              tails.

       -roundtrip
              Call LyX to re-export the created output file to LaTeX.  If  the
              output  file name is not given it is determined automatically to
              avoid over-writing the input file by accident: If the input file
              is  named foo.tex the output file will be named foo.lyx.lyx, and
              the re-exported file will be named foo.lyx.tex.

       -copyfiles
              Copy all included files tex2lyx is aware of to the output direc-
              tory if the output file is located in a different directory than
              the input file. This is useful if you want to ensure that no in-
              cluded  file  is  overwritten  (either in roundtrip mode or by a
              later export from LyX). Please note that the resulting  document
              may be uncompilable. This happens if it needs files that tex2lyx
              does not know about and therefore does not copy  to  the  output
              directory.

       -help  Help. Print out usage information and quit.

       -version
              Print out the version number and build information and quit.

DESCRIPTION
   Introduction
       tex2lyx  will create a LyX file with the specified name (or dir/foo.lyx
       if no name was given) from the LaTeX file dir/foo.tex.

       Suffixes .tex, .ltx and .latex are supported. If inputfile does not ex-
       ist and does not have one of these suffixes, tex2lyx will try to trans-
       late inputfile.tex. (This is similar to the behavior of LaTeX.)

       The purpose of tex2lyx is to translate well-behaved LaTeX2e  into  LyX.
       If  your  LaTeX  file doesn't compile---or if you do weird things, like
       redefining standard LaTeX commands---it may choke. LaTeX209 will  often
       be translated correctly, but it's not guaranteed.

       tex2lyx lacks a few features. However, its main goals are:

       •   Get through a well-behaved LaTeX2e file without crashing

       •   Translate a lot of that file.

       •   Localize  the  parts  that can't be translated and copy them in TeX
           mode

       It achieves these main goals pretty well on most files.

   Usage
       Here's a more lengthy description of what you should do to translate  a
       LaTeX document into LyX.

       •   Run tex2lyx.

           tex2lyx  will  inform  you of its progress and give any warnings to
           stderr, so if you don't want  any  output  at  all,  try  (in  csh)
           `tex2lyx  foo.tex  >& /dev/null'.  You should NOT redirect standard
           output to foo.lyx.

       •   Run LyX (version 2.1 or later) on the resulting .lyx file.

           In theory, most of the file will have been translated, and anything
           that's  untranslatable will be transferred to TeX code (ERT in LyX-
           speak). In theory, LyX will be able to read in  the  file,  and  to
           create printed documents from it, because all that untranslated ERT
           stuff will be passed directly back to LaTeX, which LyX  uses  as  a
           backend.  Unfortunately,  reality doesn't always reflect theory. If
           tex2lyx crashes, or LyX cannot read the generated LyX file, see the
           BUGS section below.

       •   Transform  things  have  been  inserted as TeX code manually to LyX
           features, if possible.

           As mentioned above, you should be able to print out  the  LyX  file
           even without doing this. However, changing a command in TeX code to
           the corresponding LyX object will allow you to  take  advantage  of
           LyX's WYSIWYM editing.

           tex2lyx  is not guaranteed to create a LyX file which generates ex-
           actly the same output as the LaTeX file, although its  goal  is  to
           achieve this. tex2lyx will generally err on the side of translating
           less to ensure that the resulting output files are  accurate,  even
           though this leads to more TeX code and less WYSIWYM.

       •   PROOFREAD THE DOCUMENT!!

           I'm  sure you were planning on doing this anyway, but it's particu-
           larly important after translating a LaTeX document. tex2lyx is bet-
           ter  at  “macro-translating”  (translating the whole document) than
           “micro-translating” (translating every little detail). For example,
           you  may see extra spaces or deleted spaces. Space handling has im-
           proved, but it's not perfect.

   What tex2lyx Can Handle
       tex2lyx understands many LaTeX commands. It will translate:

       •   regular text, including mini-commands like ~, `', \@, \TeX, as well
           as accented characters like \'{a}, and the special cases ?` and !`

       •   title  commands  like  \author,  \date, \title, \thanks and the ab-
           stract environment

       •   heading commands like \section including  starred  commands  (\sec-
           tion*)

       •   Environments:  quote, quotation, and verse; center, flushright, and
           flushleft

       •   itemize, enumerate, and description environments, and  their  \item
           commands.  Also, well-behaved nested lists

       •   cross-referencing commands: \ref, \pageref, \label, and \cite

       •   \footnote and \margin

       •   font-changing  commands  including  \em, \emph, \textit, and corre-
           sponding commands to change family, size, series, and shape

       •   \input{foo} (or \input{foo.blah}) and \include{foo}. Plain TeX \in-
           put command “\input foo.tex” is also supported.

       •   tabular  environment,  and  commands that go inside it like \hline,
           \cline, and \multicolumn (but see below)

       •   float environments table and table*, as well as  \caption  commands
           within them

       •   float  environments  figure and figure*, as well as graphics inclu-
           sion commands \epsf, \epsffile, \epsfbox, \epsfxsize, \epsfig, \ps-
           fig, and \includegraphics.  Both the graphics and graphicx forms of
           \includegraphics are supported.

       •   thebibliography environment and \bibitem command, as well  as  Bib-
           TeX's \bibliography and \bibliographystyle commands

       •   miscellaneous commands: \hfill, \\, \noindent, \ldots...

       •   documentclass-specific  environments  (and some commands) which can
           be translated to LyX layouts

       •   arguments to certain untranslatable commands (e.g. \mbox)

       Some of this support may not be 100% yet. See below for details

       tex2lyx copies math (almost) verbatim from your  LaTeX  file.  Luckily,
       LyX reads in LaTeX math, so (almost) any math which is supported by LyX
       should work just fine.

       tex2lyx will copy any preamble commands  (i.e.,  anything  before  \be-
       gin{document}) verbatim. Fancy stuff you've got in your preamble should
       thus be conserved in printed documents, although it will not of  course
       show  up in the LyX window. Check Document->Settings->LaTeX Preamble to
       see the result.

   What tex2lyx Can't Handle --- But it's OK
       •   some spacing commands (\hspace, \pagebreak and \linebreak)

       •   \centering, \raggedleft, \raggedright

       •   \verb and verbatim environment. tex2lyx is careful to copy  exactly
           in this case, including comments and whitespace.

       •   unknown (e.g., user-defined) environments and commands

       tex2lyx  copies  unknown commands, along with their arguments, verbatim
       into the LyX file. Also, if it sees a \begin{foo} where it doesn't rec-
       ognize  the  “foo”  environment,  it  will  copy verbatim until it sees
       \end{foo} (unless you use the -r option). Most of  these  unknown  com-
       mands  won't  cause  tex2lyx to break; they'll merely require you to do
       some editing once you've loaded the file up in  LyX.   That  should  be
       less painful than editing either the .tex or the .lyx file using a text
       editor.

   What tex2lyx Handles Badly --- aka BUGS
       Since tex2lyx is relatively new, it's got a number of problems.  As  it
       matures, these bugs will be squished.

       •   “Exact”  copying  of  unknown environments and commands isn't quite
           exact.  This will yield ugly LyX, but in almost all cases the  out-
           put  will  be  the  same.   However, most parts of the file will be
           copied perfectly, including whitespace and comments. This includes:
           the  LaTeX  preamble,  verbatim  environments as well as \verb com-
           mands, and skip blocks.

       •   tex2lyx translates only a subset of the document class  options  to
           native  features.   Other options are placed in the “options” field
           in the Document->Settings popup.

           More importantly, tex2lyx doesn't translate  \newcommands,  unknown
           \usepackage  commands  and  other  unknown code in the preamble. It
           simply copies that into the LaTeX preamble. If you use special com-
           mands,  e.g.  to  specify the text layout in a way that that is not
           understood by LyX, tex2lyx won't recognize it. Note that these set-
           tings  will  be  overwritten if you modify the text layout in LyX's
           document settings. Better remove these special options from the La-
           TeX  preamble (Document->Settings->LaTeX Preamble) and use the cor-
           responding LyX document settings, if possible.

       •   The foil document class has a couple of bugs. tex2lyx may do  weird
           things  with optional arguments to \foilhead commands. Also, it may
           handle \begin{dinglist} incorrectly (although the stuff in the  en-
           vironment should translate normally).

       All     known     bugs     of     tex2lyx     can     be    found    on
       http://www.lyx.org/trac/wiki/BugTrackerHome.

       tex2lyx is rather robust. As mentioned above, it may not translate your
       file perfectly, but the result should be usable and it shouldn't crash.
       If you encounter problems---and the problem is not one  of  those  men-
       tioned above or on http://www.lyx.org/trac/wiki/BugTrackerHome---please
       report the issue as described in the section on Bug Reports.

   What LyX Can't Handle
       LyX itself is missing a couple of features, such that even  if  tex2lyx
       translates  things perfectly, LyX may still have trouble reading it. If
       you really need these features, you can export your final  document  as
       LaTeX, and put them back in. See BUGS for more details on these bugs.

       •   For a number of commands (such as \\), LyX does not support the op-
           tional argument.  tex2lyx will automatically discard  the  optional
           arguments with a warning to stdout.  LyX also ignores the width ar-
           gument for the thebibliography environment.

       •   LyX support for tables isn't perfect. For complicated tables, use a
           “skip” block, so that they will be copied in TeX mode.

       •   LyX allows figures to have sizes in the units known to TeX, such as
           in, cm, etc. It also translates percentages of  \textwidth,  \text-
           height,  \columnwidth,  but no other lengths (e.g. if you wanted to
           scale a figure to size \topmargin for some  reason).  tex2lyx  will
           copy  figures  with  untranslatable  sizes  in TeX mode. Again, you
           might be able to fix that within LyX.

EXAMPLES
       tex2lyx -f -r “myenv” foo.tex

       The above will create a file foo.lyx from foo.tex, overwriting if  nec-
       essary.   When  it finds a \begin{myenv} ... \end{myenv} block, it will
       translate the stuff within the block, but copy the \begin and \end com-
       mands in TeX mode.

       tex2lyx -n -c “literate-article” foo.tex

       The above will change a noweb document into a LyX literate-article doc-
       ument. A user would do this if the noweb document had documentclass ar-
       ticle.

NOTES
   Bug Reports
       Bugs    should    be    reported    to   the   LyX   bug   tracker   at
       http://www.lyx.org/trac/wiki/BugTrackerHome. Additionally, you can post
       a message to the LyX developers' mailing list. Its address is currently
       lyx-devel@lists.lyx.org. If your message bounces, you can check the LyX
       home  page,  http://www.lyx.org/.  If you are running tex2lyx on a huge
       file, please do not send all of the output in your bug report. Just in-
       clude  the  last ten or twenty lines of output, along with the piece of
       the LaTeX file it crashed on.  Or, even better, attach a small but com-
       plete file which causes the same problem as your original file.

   Layout Files
       tex2lyx  reads  a  LyX layout file to know how to handle LaTeX environ-
       ments and commands which get translated to LyX layouts. This file  will
       include  all  “normal” non-math environments (i.e., including quote and
       itemize, but not tabular, minipage, and some other fancy environments),
       and  commands  like \section and \title. If you want to tex2lyx a class
       that doesn't have an existing layout file, then you'll have to create a
       layout  file. But you have to do this anyway, in order to LyX the file,
       since LyX depends on layout files to know how to  display  and  process
       its  files.  Check the LyX documentation for help with this task (which
       can be hard or easy, depending on the class you want to create a layout
       file  for.) If your class is quite similar to a class that has a layout
       file, then consider using the -c option.

   Syntax Files
       tex2lyx always reads at least one syntax file, called the default  syn-
       tax  file.   tex2lyx  will read your personal syntax file if it exists;
       otherwise it will read the system-wide file. tex2lyx  will  read  addi-
       tional  syntax files if you specify them with the -s option. (These ex-
       tra files should have the same format as the  default  file,  but  will
       tend  to be shorter, since they only have to specify extra commands not
       found in the default file.) A syntax file tells tex2lyx a few things.

       First, it describes the syntax of each command, that is, how  many  re-
       quired  arguments  and  how  many optional arguments the command takes.
       Knowing this makes it easier for tex2lyx to copy (in TeX mode) commands
       that  it  doesn't  know  how to translate. The syntax file simply has a
       command, followed by braces or brackets describing its arguments in the
       correct order. For example, a syntax file entry \bibitem[]{} means that
       the \bibitem command takes an optional argument followed by a  required
       one,  while the entry \bf means that the \bf command takes no arguments
       at all.  When tex2lyx encounters a token that it doesn't  know  how  to
       translate  into  LyX,  it  will copy the token---along with the correct
       number of arguments---exactly.  If the token is not in the syntax file,
       then  tex2lyx  just  copies  as many arguments as it finds.  This means
       that it may copy too much. But since the user  can  specify  additional
       syntax files, that shouldn't happen often.

       Some commands that cannot be translated to LyX, like \mbox, have as one
       of their arguments regular LaTeX text. If the string “translate” is put
       into  an  argument  of  an (untranslatable) command in the syntax file,
       then tex2lyx will translate that argument instead of copying it  verba-
       tim.   So,   for   example,   the   default  syntax  file  has  \raise-
       box{}[][]{translate}. This means that the  \raisebox  command  and  the
       first argument (and optional arguments if they exist) are copied in TeX
       mode, but the last argument (which may contain math, complicated LaTeX,
       other  untranslatable  commands, etc.) will be translated into LyX. You
       can't use “translate” on optional arguments.

       User-defined syntax files are allowed to define new commands and  their
       syntax,  or override the number of arguments for a command given in the
       default syntax file. (E.g., if you're using a style that gives an extra
       argument to some command...) However, this will only be useful for com-
       mands copied in TeX mode. Commands which  are  actually  translated  by
       tex2lyx  (like  \item) have their argument syntax hard-coded. The hard-
       coded commands are identified in the default syntax file.

       Second, the syntax file describes any “regular environments”.  Usually,
       an entire unknown environment will be copied in TeX mode. If you define
       a regular environment “foo”, though,  then  only  the  \begin{foo}  and
       \end{foo}  commands will be copied in TeX mode; the text within the en-
       vironment will be treated (i.e., translated) by tex2lyx as regular  La-
       TeX, rather than being copied into TeX mode. Don't try to declare “tab-
       bing” and “picture” as regular environments, as the text  within  those
       environments will confuse tex2lyx; use this capability for new environ-
       ments you create that have plain text or math  or  simple  commands  in
       them. You also can't declare unknown math environments (like equation*)
       as regular environments, either, since the LyX math editor won't under-
       stand  them. The names of regular environments appear, whitespace-sepa-
       rated, between \begin{tex2lyxre} and \end{tex2lyxre} statements in  the
       syntax  file.  (If  you  have a regular environment which you won't use
       very often, you can use the -r option  rather  than  writing  a  syntax
       file.)

WARNINGS
       Always  keep a copy of your original LaTeX files either under a differ-
       ent name or in a different directory. There are a couple ways in  which
       using LyX could lead to overwriting the original LaTeX file.

       If  you import foo.tex to create foo.lyx, then edit foo.lyx and want to
       re-export it, note that it will overwrite the  original  foo.tex.  (LyX
       will ask you if you want to overwrite it.)

ENVIRONMENT
       LYX_DIR_23x
             can be used to specify which system directory to use.

       The  system  directory is determined by searching for the file "chkcon-
       fig.ltx". Directories are searched in this order:
       1) -sysdir command line parameter
       2) LYX_DIR_23x environment variable
       3) Maybe <path of binary>/TOP_SRCDIR/lib
       4) <path of binary>/../share/<name of binary>/
       5) hardcoded lyx_dir (at build time: /usr/share/lyx)

       LYX_USERDIR_23x
              can be used to specify which user directory to use.

       The user directory is, in order of precedence:
       1) -userdir command line parameter
       2) LYX_USERDIR_23x environment variable
       3) $HOME/.<name of binary> if no explicit setting is made

FILES
       If LIBDIR is the system-wide LyX directory and MY_LYXDIR is  your  per-
       sonal LyX directory, then the following files are read by tex2lyx:

       MY_LYXDIR/layouts/*.layout
           User's personal layout files for document classes

       MY_LYXDIR/syntax.default
           User's personal syntax file

       MY_LYXDIR/encodings
           User's personal encoding definition file

       LIBDIR/layouts/*.layout
           System-wide layout files for document classes

       LIBDIR/lib/syntax.default
           System-wide LaTeX syntax file

       LIBDIR/lib/encodings
           System-wide encoding definition file

SEE ALSO
       lyx(1), latex(1)

AUTHORS
       tex2lyx   is   Copyright   (c)   2003ff.   by  the  LyX  Team  (lyx-de-
       vel@lists.lyx.org)

Version 2.3.7                     2023-01-01                        TEX2LYX(1)

Generated by dwww version 1.15 on Sat Jun 29 02:08:17 CEST 2024.