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
   resulting  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
   module1[,module2...]]  [ -s sfile1[,sfile2...]]  [  -skipchildren  ]  [
   -roundtrip ] [ -copyfiles ] inputfile [ outputfile ]

OPTIONS

   -c     Class.  By  default,  when  tex2lyx  sees  a \documentclass{foo}
          command, it creates a file of textclass "foo" and reads the  LyX
          layout     file     for     that     class    (something    like
          /usr/local/share/lyx/layouts/foo.layout                       OR
          HOME/.lyx/layouts/foo.layout).   Use  -c  to declare a different
          textclass (and read a different layout file).

          This option is needed if the input file  is  a  LaTeX  fragment,
          with  no  preamble matter or 	egin{document} command. LyX files
          created by tex2lyx from partial files  can  be  included  in  an
          existing  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
          modules 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
          encodings file.   tex2lyx  will  ignore  any  encoding  changing
          commands 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
          \input.  This option  is  useful  if  the  child  documents  are
          generated  files  and/or contain many commands that tex2lyx does
          not understand 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
          details.

   -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
          directory if the output file is located in a different directory
          than the input file. This is useful if you want to  ensure  that
          no  included 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
   exist  and  does  not  have  one of these suffixes, tex2lyx will try to
   translate 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
       exactly 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
       particularly important after translating a LaTeX document.  tex2lyx
       is  better  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 improved, 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  
uthor,  \date,  \title,  \thanks  and  the
       abstract environment

   *   heading  commands  like   \section   including   starred   commands
       (\section*)

   *   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
       corresponding commands to change family, size, series, and shape

   *   \input{foo} (or  \input{foo.blah})  and  \include{foo}.  Plain  TeX
       \input 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
       inclusion commands \epsf, \epsffile, \epsfbox, \epsfxsize, \epsfig,
       \psfig, and \includegraphics.  Both the graphics and graphicx forms
       of \includegraphics are supported.

   *   thebibliography  environment  and  	ibitem  command,  as  well  as
       BibTeX's 	ibliography and 	ibliographystyle 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
   	egin{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  	egin{foo}  where  it  doesn't
   recognize  the  "foo"  environment, it will copy verbatim until it sees
   \end{foo} (unless you  use  the  -r  option).  Most  of  these  unknown
   commands 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
       output  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
       commands, 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
       commands, 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
       settings will be overwritten if you modify the text layout in LyX's
       document settings. Better remove these  special  options  from  the
       LaTeX  preamble  (Document->Settings->LaTeX  Preamble)  and use the
       corresponding 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 	egin{dinglist} incorrectly  (although  the  stuff  in  the
       environment 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
   mentioned                  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
       optional argument.  tex2lyx will automatically discard the optional
       arguments with a warning to stdout.  LyX  also  ignores  the  width
       argument 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,
       \textheight, \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
   necessary.  When it finds a 	egin{myenv}  ...  \end{myenv}  block,  it
   will translate the stuff within the block, but copy the 	egin and \end
   commands in TeX mode.

   tex2lyx -n -c "literate-article" foo.tex

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

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
   include 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
   complete file which causes the same problem as your original file.

   Layout Files
   tex2lyx  reads  a  LyX  layout  file  to  know  how  to  handle   LaTeX
   environments  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
   syntax file.  tex2lyx will read your personal syntax file if it exists;
   otherwise  it  will  read  the  system-wide  file.  tex2lyx  will  read
   additional syntax files if you specify them with the -s option.  (These
   extra  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
   required 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 	ibitem[]{} means that
   the  	ibitem command takes an optional argument followed by a required
   one, while the entry 	f means that the 	f 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
   verbatim.   So,   for   example,   the   default   syntax   file    has
   \raisebox{}[][]{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
   commands  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 	egin{foo} and
   \end{foo} commands will be copied in TeX  mode;  the  text  within  the
   environment  will  be  treated (i.e., translated) by tex2lyx as regular
   LaTeX, rather than being copied into TeX mode.  Don't  try  to  declare
   "tabbing"  and  "picture"  as  regular environments, as the text within
   those environments will confuse tex2lyx; use this  capability  for  new
   environments 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 understand  them.  The  names  of  regular  environments  appear,
   whitespace-separated,  between  	egin{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
   different  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_22x
         can be used to specify which system directory to use.

   The  system  directory  is  determined  by  searching  for   the   file
   "chkconfig.ltx". Directories are searched in this order:
   1) -sysdir command line parameter
   2) LYX_DIR_22x 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_22x
          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_22x 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
   personal 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-
   devel@lists.lyx.org)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.