#LyX 2.0.0svn created this file. For more info see http://www.lyx.org/
-\lyxformat 371
+\lyxformat 373
\begin_document
\begin_header
\textclass scrbook
\end_local_layout
\language english
\inputencoding auto
+\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
In this chapter, we describe the procedures for creating and installing
new LyX layout and template files, as well as offer a refresher on correctly
installing new LaTeX document classes.
- Some definitions: a document class is a LaTeX file (usually ending in
+
+\end_layout
+
+\begin_layout Standard
+First, let us a say a few words about how one ought to think about the relation
+ between LyX and LaTeX.
+ The thing to understand is that, in a certain sense, LyX doesn't know anything
+ about LaTeX.
+ Indeed, from LyX's point of view, LaTeX is just one of several
+\begin_inset Quotes eld
+\end_inset
+
+backend formats
+\begin_inset Quotes erd
+\end_inset
+
+ in which it is capable of producing output.
+ Other such formats are DocBook, plaintext, and XHTML.
+ LaTeX is, of course, a particularly important format, but very little of
+ the information LyX has about LaTeX is actually contained in the program
+ itself.
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Some commands are sufficiently complex that they are
+\begin_inset Quotes eld
+\end_inset
+
+hardcoded
+\begin_inset Quotes erd
+\end_inset
+
+ into LyX.
+ But the developers generally regard this as a Bad Thing.
+\end_layout
+
+\end_inset
+
+ Rather, that information, even for the standard classes like
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+article.cls
+\end_layout
+
+\end_inset
+
+, is contained in layout files.
+\end_layout
+
+\begin_layout Standard
+You can think of the layout file for a given document class as a translation
+ manual between LyX constructs---paragraphs with their corresponding styles,
+ certain sorts of insets, etc---and the corresponding LaTeX constructs.
+ Almost everything LyX knows about
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+article.cls
+\end_layout
+
+\end_inset
+
+, for example, is contained in the file
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+article.layout
+\end_layout
+
+\end_inset
+
+.
+ For this reason, anyone intending to write layout files should plan to
+ study the existing files.
+ A good place to start is with
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+stdsections.inc
+\end_layout
+
+\end_inset
+
+, which just gets `included' in
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+article.layout
+\end_layout
+
+\end_inset
+
+,
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+book.layout
+\end_layout
+
+\end_inset
+
+, and many of the other layout files for document classes.
+ This file is where sections and the like are defined:
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+stdsections.inc
+\end_layout
+
+\end_inset
+
+ tells LyX how paragraphs that are marked with the Section, Subsection,
+ etc, styles can be translated into corresponding LaTeX commands.
+ The
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+article.layout
+\end_layout
+
+\end_inset
+
+ file basically just includes several of these
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+std*.inc
+\end_layout
+
+\end_inset
+
+ files.
+\end_layout
+
+\begin_layout Standard
+Defining the LyX--LaTeX correspondence is not, however, the only thing layout
+ files do.
+ Their other job is to define how the LyX constructs themselves will appear
+ on-screen.
+ The fact that layout files have these two jobs is often a source of confusion,
+ because they are completely separate.
+ Telling LyX how to translate a certain paragraph style into LaTeX does
+ not tell LyX how to display it; conversely, telling LyX how to display
+ a certain paragraph style does not tell LyX how to translate it into LaTeX,
+ let alone tell LaTeX how to display it.
+ So, in general, when you define a new LyX construct, you must always do
+ two quite separate things: (i)
+\begin_inset space ~
+\end_inset
+
+tell LyX how to translate it into LaTeX, and (ii)
+\begin_inset space ~
+\end_inset
+
+tell LyX how to display it.
+\end_layout
+
+\begin_layout Standard
+Much the same is true, of course, as regards LyX's other backend formats,
+ though XHTML is in some ways different, because in that case LyX
+\emph on
+is
+\emph default
+ able, to some extent, anyway, to use information about how it should display
+ a paragraph on the screen to output information (in the form of CSS) about
+ how the paragrpah should be displayed in a browser.
+ Even in this case, however, the distinction between what LyX does internally
+ and how things are rendered externally remains in force, and the two can
+ be controlled separately.
+\end_layout
+
+\begin_layout Standard
+Some definitions: a document class is a LaTeX file (usually ending in
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Standard
Some installations may not include a LaTeX package that you would like to
use within LyX.
- For example, you might need FoilTeX, a package for preparing slides or
- viewgraphs for overhead projectors.
+ For example, you might need FoilTeX, a package for preparing slides for
+ overhead projectors.
Modern LaTeX distributions like TeXLive (2008 or newer) or MiKTeX provide
- a user interface for that.
- For example on MiKTeX you start its program
+ a user interface for installing such packages.
+ For example, with MiKTeX, you start the program
\begin_inset Quotes eld
\end_inset
\end_inset
to get a list of available packages.
- To install one, right click on it or use the installing toolbar button.
- When the package you want to install is not in the list, but you have it
- in form of a
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-.cls
-\end_layout
-
-\end_inset
-
- or
-\begin_inset Flex CharStyle:Code
-status collapsed
-
-\begin_layout Plain Layout
-.sty
-\end_layout
-
-\end_inset
-
--file, then copy these files to a subfolder of your LaTeX distribution,
- for example to the folder
-\family sans
-~
-\backslash
-tex
-\backslash
-latex
-\family default
-.
- Then update the file name database of your LaTeX-distribution.
- For example on MiKTeX this is done by pressing the button
-\family sans
-Refresh
-\begin_inset space ~
-\end_inset
-
-FNDB
-\family default
- that you find in MiKTeX's
-\begin_inset Quotes eld
-\end_inset
-
-Settings
-\begin_inset Quotes erd
-\end_inset
-
- program.
- In both cases you need afterwards to reconfigure LyX using the menu
-\begin_inset Flex CharStyle:MenuItem
-status collapsed
-
-\begin_layout Plain Layout
-Tools\SpecialChar \menuseparator
-Reconfigure
-\end_layout
-
-\end_inset
-
- and then to restart LyX.
+ To install one, right click on it or use the toolbar button to install
+ it.
+
\end_layout
\begin_layout Standard
-If your LaTeX distribution doesn't provide a user interface, then you can
- follow these steps by using a UNIX/Linux console.
+If your LaTeX distribution doesn't provide such a user interface, or if
+ the file is not available through the package browser, then you can follow
+ these steps.
\end_layout
\begin_layout Enumerate
\end_layout
\begin_layout Enumerate
-You can install this package in several different places.
+You can install the package in several different places.
If you want it to be available for all users on your system, then you should
install it in your `local' TeX tree; if you want (or need) it to be available
just for you, then you can install it in your own `user' TeX tree.
Where these should be created, if they do not already exist, depends upon
the details of your system.
- To find out, look in the file
+ To find out where they are, look in the file
\begin_inset Flex CharStyle:Code
status collapsed
\end_inset
- The location of the `local' TeX tree is defined by
+ The location of the `local' TeX tree is defined by the
\begin_inset Flex CharStyle:Code
status collapsed
\end_inset
-; this is usually somewhere like
+ variable; this is usually somewhere like
\begin_inset Flex CharStyle:Code
status collapsed
\end_layout
\begin_layout Enumerate
-Create your local
-\begin_inset Foot
+Your local and user trees must have the same sort of directory structure
+ as your main existing
+\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-We'll assume henceforth that you're defining `local' TeX tree.
- If you're defining a user tree, just adjust as necessary.
+texmf
\end_layout
\end_inset
- TeX tree.
- You must follow the directory structure of your existing
+ directory, which will be found at
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-texmf
+TEXMFMAIN
\end_layout
\end_inset
- directory, which will be found at
+ (commonly,
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-TEXMFMAIN
+/usr/share/texmf/
\end_layout
\end_inset
-.
- For example, latex packages should go under
+.) For example, latex packages should go under
\begin_inset Flex CharStyle:Code
status collapsed
$TEXMFLOCAL/tex/latex/
\end_layout
+\end_inset
+
+ or
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+$TEXMFHOME/tex/latex/
+\end_layout
+
\end_inset
.
\end_layout
\begin_layout Enumerate
-Install the package.
- For example, you would unpack the FoilTeX tarball and copy it to
+Once your tree is properly set up, you can install the package into an appropria
+te location.
+ For example, you might install the FoilTeX files into
\begin_inset Flex CharStyle:Code
status collapsed
\end_layout
\begin_layout Enumerate
-Run:
+Finally, you must update the database TeX uses to find files.
+ On MiKTeX, this is done by pressing the button
+\family sans
+Refresh
+\begin_inset space ~
+\end_inset
+
+FNDB
+\family default
+ that you find in MiKTeX's
+\begin_inset Quotes eld
+\end_inset
+
+Settings
+\begin_inset Quotes erd
+\end_inset
+
+ program.
+
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-texhash
+$TEXMFLOCAL/tex/latex/
\end_layout
\end_inset
.
- This should create
+ Under TeXLive and the like, you should run
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-$TEXMFLOCAL/ls-R
+texhash
\end_layout
\end_inset
- amongst others.
+ from a terminal, with root permissions if necessary.
+
\end_layout
\begin_layout Standard
Your package is now installed and available to LaTeX.
- To make it available to LyX, you need to create a Layout file, if one is
- not already available.
- (See the next section.) Once you have a layout file, you need only reconfigure
- (
-\begin_inset Flex CharStyle:MenuItem
+ You can verify this from a terminal by typing `
+\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-Tools\SpecialChar \menuseparator
-Reconfigure
+kpsewhich yourfile.ext
\end_layout
\end_inset
-) and then restart LyX.
- You should then see your new package—for example
+'.
+ To make LyX aware of it, however, you will need to reconfigure (
\begin_inset Flex CharStyle:MenuItem
status collapsed
\begin_layout Plain Layout
-slides (FoilTeX)
+Tools\SpecialChar \menuseparator
+Reconfigure
\end_layout
\end_inset
-—under
+) and then restart LyX.
+ If the new package was a document class, such as FoilTeX again, you will
+ now see it—
\begin_inset Flex CharStyle:MenuItem
status collapsed
\begin_layout Plain Layout
-Document\SpecialChar \menuseparator
-Settings
+slides (FoilTeX)
\end_layout
\end_inset
- in the
+—available under
\begin_inset Flex CharStyle:MenuItem
status collapsed
\begin_layout Plain Layout
+Document\SpecialChar \menuseparator
+Settings\SpecialChar \menuseparator
Document Class
\end_layout
\end_inset
- drop box.
+.
\end_layout
+\begin_layout Standard
+Unless, of course, no layout file is available for your new document class.
+ That is the topic of the next section.
+\end_layout
+
\begin_layout Section
Layouts
\end_layout
\end_inset
- text class format as an example.
+ text class as an example.
The
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-.layout
+*.layout
\end_layout
\end_inset
files describe what paragraph and character styles are available for a
- given document class and how LyX should display them.
- We try to provide a thorough description of the process here; however,
- there are so many different types of documents supported by LaTeX classes
- that we can't hope to cover every different possibility or problem you
- might encounter.
- (The LyX users' list is frequented by people with lots of experience with
- layout design who are willing to share what they've learned.)
+ given document class, how LyX should display them, and how they should
+ be translated into LaTeX, DocBook, or whatever output format is being used.
+
+\end_layout
+
+\begin_layout Standard
+We shall try to provide a thorough description of the process of writing
+ layout files here.
+ However, there are so many different types of documents supported by LaTeX,
+ DocBook, and so forth, that we can't hope to cover every different possibility
+ or problem you might encounter.
+ The LyX users' list is frequented by people with lots of experience with
+ layout design who are willing to share what they've learned, so please
+ feel free to ask questions there.
\end_layout
\begin_layout Standard
As you prepare to write a new layout, it is extremely helpful to look at
- the example layouts distributed with LyX.
- If you use a nice LaTeX document class that might be of interest for others,
- too, and have a nice corresponding LyX layout, feel free to contribute
- the stuff to us, so we may put it into the distribution.
- There is also a
+ the layouts distributed with LyX.
+ If you use a nice LaTeX document class that might also be of interest for
+ others and so write a corresponding LyX layout, you should consider posting
+ your layout to the
\begin_inset CommandInset href
LatexCommand href
name "section on the LyX wiki"
\end_inset
- for this kind of material.
+ or even to the LyX developers' list, so that it might be included in LyX
+ itself.
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+Note that LyX is licensed under the General Public License, so any material
+ that is contribued to LyX must be similarly licensed.
+\end_layout
+
+\end_inset
+
+
\end_layout
\begin_layout Standard
-All the tags described in this chapter are case-insensitive; this means
- that
+All the tags described here are case-insensitive; this means that
\begin_inset Flex CharStyle:Code
status collapsed
\end_layout
\begin_layout Standard
-Similar to layout files, and new with LyX 1.6, are layout
+We have spoken to this point about `layout files'.
+ But there are different sorts of files that contain layout information.
+ Layout files, strictly so called, have the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.layout
+\end_layout
+
+\end_inset
+
+ extension and provide LyX with information about document classes.
+ As of LyX 1.6, however, layout informtion can also be contained in layout
+
\emph on
modules
\emph default
-.
+, which have the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.module
+\end_layout
+
+\end_inset
+
+ extension.
Modules are to LaTeX packages much as layouts are to LaTeX classes, and
- some modules—such as the endnotes module—provide support for just such
- a package.
- In a sense, layout modules are similar to included files—files like
+ some modules—such as the endnotes module—specifcally provide support for
+ one such package.
+ In a sense, layout modules are similar to included
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+These can have any extension, but by convention have the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.inc
+\end_layout
+
+\end_inset
+
+ extension.
+\end_layout
+
+\end_inset
+
+ files—files like
\begin_inset Flex CharStyle:Code
status collapsed
\end_inset
-—in that modules are not specific to a given document layout but may be
- used with many different layouts.
- The difference is that using a layout module does not require editing the
- layout file.
- Rather, modules are selected in the
+—in that modules are not specific to a given document class but may be used
+ with many different classes.
+ The difference is that using an included file with
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+article.cls
+\end_layout
+
+\end_inset
+
+, say, requires editing that file.
+ Modules, by contrast, are selected in the
\begin_inset Flex CharStyle:MenuItem
status collapsed
\begin_layout Standard
Building modules is the easiest way to get started with layout editing,
- since it can be as simple as adding a single new paragraph or flex inset.
+ since it can be as simple as adding a single new paragraph style or flex
+ inset.
But modules may, in principle, contain anything a layout file can contain.
\end_layout
\end_inset
, which declares that the module can only be used when there exists a conversion
- chain between formats `from' and `to'.
+ chain between the formats `
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+from
+\end_layout
+
+\end_inset
+
+' and `
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+to
+\end_layout
+
+\end_inset
+
+'.
\end_layout
\begin_layout Standard
\emph on
filenames
\emph default
- without the .module extension.
+ without the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+.module
+\end_layout
+
+\end_inset
+
+ extension.
So
\begin_inset Flex CharStyle:Code
status collapsed
In fact,
\emph on
it is strongly recommended that you not attempt to edit modules while simultaneo
-usly working on documents
+usly working on actual documents
\emph default
.
Though of course the developers strive to keep LyX stable in such situations,
\end_layout
\begin_layout Standard
-If your new document class is provided as a style file that is used in conjuncti
-on with an existing, supported document class—for the sake of the example,
- we'll assume that the style file is called
+The easier case is the one in which your new document class is provided
+ as a style file that is to be used in conjunction with an already supported
+ document class.
+ Gor the sake of the example, we'll assume that the style file is called
+
\begin_inset Flex CharStyle:MenuItem
status collapsed
\end_inset
-, which is a standard class—start by copying the existing class's layout
- file into your local directory:
+, which is a standard class.
+
+\end_layout
+
+\begin_layout Standard
+Start by copying the existing class's layout file into your local directory:
\end_layout
\begin_layout LyX-Code
in this example—so you can fiddle around with the settings for the different
sections if you wish.
+ Your new package may also provide commands or environments not present
+ in the base class.
+ In this case, you will want to add these to the layout file.
+ See
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:TextClass"
+
+\end_inset
+
+ for information on how to do so.
+\end_layout
+
+\begin_layout Standard
+If
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+myclass.sty
+\end_layout
+
+\end_inset
+
+ can be used with several different document classes, and even if it cannot,
+ you might find it easiest just to user a module that you can load with
+ the base class.
+ The simplest possible such module would be:
+\end_layout
+
+\begin_layout LyX-Code
+#
+\backslash
+DeclareLyXModule{My Class}
+\end_layout
+
+\begin_layout LyX-Code
+#DescriptionBegin
+\end_layout
+
+\begin_layout LyX-Code
+#Support for myclass.sty.
+\end_layout
+
+\begin_layout LyX-Code
+#DescriptionEnd
+\begin_inset Newline newline
+\end_inset
+
+
+\end_layout
+
+\begin_layout LyX-Code
+Format 11
+\begin_inset Newline newline
+\end_inset
+
+
+\end_layout
+
+\begin_layout LyX-Code
+Preamble
+\begin_inset Newline newline
+\end_inset
+
+
+\backslash
+usepackage{myclass}
+\begin_inset Newline newline
+\end_inset
+
+EndPreamble
+\end_layout
+
+\begin_layout Standard
+A more complex module might modify the behavior of some existing constructs
+ or define some new ones.
+ Again, see
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sec:TextClass"
+
+\end_inset
+
+ for discussion.
\end_layout
\begin_layout Subsection
status collapsed
\begin_layout Plain Layout
-cls
+cls
+\end_layout
+
+\end_inset
+
+ file
+\end_layout
+
+\begin_layout Standard
+There are two possibilities here.
+ One is that the class file is itself based upon an existing document class.
+ For example, many thesis classes are based upon
+\begin_inset Flex CharStyle:MenuItem
+status collapsed
+
+\begin_layout Plain Layout
+book.cls
+\end_layout
+
+\end_inset
+
+.
+ To see whether yours is, look for a line like
+\end_layout
+
+\begin_layout LyX-Code
+
+\backslash
+LoadClass{book}
+\end_layout
+
+\begin_layout Standard
+in the file.
+ If so, then you may proceed largely as in the previous section, though
+ the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+DeclareLaTeXClass
+\end_layout
+
+\end_inset
+
+ line will be different.
+ If your new class is
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+thesis
\end_layout
\end_inset
- file
-\end_layout
-
-\begin_layout Standard
-There are two possibilities here.
- One is that the class file is itself based upon an existing document class.
- For example, many thesis classes are based upon
-\begin_inset Flex CharStyle:MenuItem
+, and it is based upon
+\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-book.cls
+book
\end_layout
\end_inset
-.
- To see whether yours is, look for a line like
-\end_layout
-
-\begin_layout LyX-Code
-
-\backslash
-LoadClass{book}
-\end_layout
-
-\begin_layout Standard
-in the file.
- If so, then you may proceed largely as in the previous section, though
- the DeclareLaTeXClass line will be different.
- If your new class is thesis, and it is based upon book, then the line should
- read:
+, then the line should read:
\begin_inset Foot
status collapsed
\end_layout
\begin_layout Section
+\begin_inset CommandInset label
+LatexCommand label
+name "sec:TextClass"
+
+\end_inset
+
Declaring a new text class
\end_layout
and enjoy one or two of your favorite adult beverages; more if you are
getting particularly stuck.
It's really not that hard, except that the multitude of options can become
- overwhelming if you try to do to much in one sitting.
+ overwhelming if you try to do too much in one sitting.
Go have another adult beverage, just for good measure.
\end_layout
\end_layout
\begin_layout Standard
-Lines in a layout file which begin with a
+Lines in a layout file which begin with
\begin_inset Flex CharStyle:Code
status collapsed
\end_inset
are comments.
- There is one exception to this rule: all layouts should begin with lines
- like:
+ There is one exception to this rule.
+ All
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+*.layout
+\end_layout
+
+\end_inset
+
+ files should begin with a line like:
\end_layout
\begin_layout LyX-Code
\end_layout
\begin_layout Standard
-This indicates that your text class uses the foo.sty package.
+This indicates that your text class uses the
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+foo.sty
+\end_layout
+
+\end_inset
+
+ package.
Finally, it is also possible to declare classes for DocBook code.
- Typical declarations will look like
+ Typical declarations will look like:
\end_layout
\begin_layout LyX-Code
\end_inset
-, exit LyX and restart it.
+, exit LyX and restart.
Then your new text class should be available along with the others.
\end_layout
\begin_layout Standard
-In versions of LyX prior to 1.6, you had to restart LyX to see any changes
- you made to your layout files.
- As a result, editing layout files could be very time consuming.
+Once the layout file is installed, you can edit it and see your changes
+ without having to reconfigure or to restart LyX.
+ In versions of LyX prior to 1.6, this was not true.
+ As a result, editing layout files was very time consuming.
Beginning with 1.6, however, you can force a reload of the layout currently
in use by using the LyX function
\begin_inset Flex CharStyle:MenuItem
.
There is no default binding for this function—though, of course, you can
bind it to a key yourself.
- If you want to use this function, then, you should simply enter it in the
- mini-buffer.
+ But you use this function simply by entering it in the mini-buffer.
+\end_layout
+
+\begin_layout Standard
+
\emph on
Warning
\emph default
\emph on
strongly
\emph default
- recommended that you not attempt to edit your layout while simultaneously
- working on a document that you care about.
+ recommended that you not attempt to edit layout information while simultaneousl
+y working on a document that you care about.
Use a test document.
Syntax errors and the like in your layout file could cause peculiar behavior.
In particular, such errors could cause LyX to regard the current layout
as invalid and to attempt to switch to some other layout.
The LyX team strives to keep LyX stable in such situations, but safe is
better than sorry.
+\begin_inset Foot
+status collapsed
+
+\begin_layout Plain Layout
+And while we're giving advice, make regular backups.
+ And be nice to your mother.
+\end_layout
+
+\end_inset
+
+
\end_layout
\begin_layout Subsection
\end_layout
\begin_layout Standard
-The first non-comment line must contain the file format number:
+The first non-comment line of any layout file, included file, or module
+
+\emph on
+must
+\emph default
+ contain the file format number:
\end_layout
\begin_layout Description
\end_inset
-] This tag was introduced with LyX 1.4.0 (layout files of LyX 1.3.x and earlier
- don't have an explicit file format).
- The file format that is documented here is format 14.
+] The format of the layout file.
+\end_layout
+
+\begin_layout Standard
+This tag was introduced with LyX 1.4.0.
+ Layout files from LyX 1.3.x and earlier don't have an explicit file format
+ and are considered to be of format 1.
+ The format for the present version of LyX is format
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+19
+\end_layout
+
+\end_inset
+
+.
+ But LyX is capable of reading earlier formats, too, just as it is capable
+ of reading files produced by earlier versions of LyX.
\end_layout
\begin_layout Subsection
\end_inset
-] Whether the class should default to having one or two columns.
+] Whether the class should
+\emph on
+default
+\emph default
+ to having one or two columns.
Can be changed in the
\begin_inset Flex CharStyle:MenuItem
status collapsed
\end_inset
- Specifies a module to be included by default with this document class,
- which should be specified by filename without the
+ Specifies a module to be included by default with this document class.
+ The module should be specified by filename without the
\begin_inset Flex CharStyle:Code
status collapsed
.
This will default to the first defined style if not given, but you are
- highly encouraged to use this directive.
+ encouraged to use this directive.
\end_layout
\begin_layout Description
\end_inset
-] Indicates that the module in question—which should be specified by filename
- without the
+] This tag indicates that the module in question—which should be specified
+ by filename without the
\begin_inset Flex CharStyle:Code
status collapsed
\end_inset
.
+\begin_inset Newline newline
+\end_inset
+
+See Section
+\begin_inset space ~
+\end_inset
+
+
+\begin_inset CommandInset ref
+LatexCommand ref
+reference "sub:Counters"
+
+\end_inset
+
+ for details on counters.
\end_layout
\begin_layout Description
\end_inset
This section (re-)defines the layout of an inset.
- It can be applied to an existing inset of to a new, user-defined inset,
- e.
-\begin_inset space \thinspace{}
+ It can be applied to an existing inset or to a new, user-defined inset,
+ e.g., a new character style.
+ Must end with
+\begin_inset Quotes eld
\end_inset
-g.
-\begin_inset space \space{}
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+End
+\end_layout
+
\end_inset
-a new character style.
- See Section
+
+\begin_inset Quotes erd
+\end_inset
+
+.
+\begin_inset Newline newline
+\end_inset
+
+See Section
\begin_inset space ~
\end_inset
\end_inset
for more information.
- Must end with
-\begin_inset Quotes eld
-\end_inset
-
+
+\end_layout
+\begin_layout Description
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-End
+LeftMargin
\end_layout
\end_inset
-
-\begin_inset Quotes erd
-\end_inset
-
-.
-\end_layout
-
-\begin_layout Description
+ [
\begin_inset Flex CharStyle:Code
status collapsed
\begin_layout Plain Layout
-LeftMargin
+string
\end_layout
\end_inset
- A string that indicates the width of the left margin on the screen, for
+] A string that indicates the width of the left margin on the screen, for
example,
\begin_inset Quotes eld
\end_inset
\end_inset
.
+ (Note that this is not a `length', like
+\begin_inset Quotes eld
+\end_inset
+
+2ex
+\begin_inset Quotes erd
+\end_inset
+
+.)
\end_layout
\begin_layout Description
This command deletes an existing float.
This is particularly useful when you want to suppress a float that has
- be defined in an input file.
+ been defined in an input file.
\end_layout
\begin_layout Description
\begin_layout Description
\begin_inset Flex CharStyle:Code
-status collapsed
+status open
\begin_layout Plain Layout
-
-\series medium
PageStyle
\end_layout
\end_inset
-] The class default pagestyle.
+] The default pagestyle.
Can be changed in the
\begin_inset Flex CharStyle:MenuItem
status collapsed
\begin_layout Description
\begin_inset Flex CharStyle:Code
-status collapsed
+status open
\begin_layout Plain Layout
Preamble
\end_inset
declarations.
- Must end with
+ (Use
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+AddToPreamble
+\end_layout
+
+\end_inset
+
+ if you just want to add material to the preamble.) Must end with
\begin_inset Quotes eld
\end_inset
\end_inset
tag to indicate that it ought to be used.
- It could be used in a module that provided an alternate implementation
+ It could also be used in a module that provided an alternate implementation
of the same functionality.
\end_layout
.
Multiple features must be separated by commas.
Note that you can only request supported features.
+ (Again, see
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+LaTeXFeatures.cpp
+\end_layout
+
+\end_inset
+
+ for a list of these.)
\end_layout
\begin_layout Description
This sequence defines a paragraph style.
If the style does not yet exist, it is created; if it does exist, its parameter
-s are redefined Must end with
+s are modified.
+ Must end with
\begin_inset Quotes eld
\end_inset
\begin_inset Flex CharStyle:Code
status collapsed
+\begin_layout Plain Layout
+InPreamble
+\end_layout
+
+\end_inset
+
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+[1, 0]
+\end_layout
+
+\end_inset
+
+ If 1, marks the layout as to be included in the document preamble rather
+ than in the document body.
+ This is useful for document classes that want such information as the title
+ and author to appear in the preamble.
+\end_layout
+
+\begin_layout Description
+\begin_inset Flex CharStyle:Code
+status collapsed
+
\begin_layout Plain Layout
InTitle
\end_layout
\begin_inset Flex CharStyle:Code
status collapsed
+\begin_layout Plain Layout
+ContentAsLabel
+\end_layout
+
+\end_inset
+
+ [
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+
+\emph on
+0
+\end_layout
+
+\end_inset
+
+,
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+1
+\end_layout
+
+\end_inset
+
+] Whether to use the content of the inset as the label, when the inset is
+ closed.
+ Default is false.
+\end_layout
+
+\begin_layout Description
+\begin_inset Flex CharStyle:Code
+status collapsed
+
\begin_layout Plain Layout
CopyStyle
\end_layout
] Indicates whether the PlainLayout should be used or, instead, the user
can change the paragraph style used in the inset.
+ Default is false.
\end_layout
\begin_layout Description
\end_inset
).
+ Default is false.
\end_layout
\begin_layout Description
\end_inset
).
+ Default is false.
\end_layout
\begin_layout Description
\end_inset
] Whether multiple paragraphs are permitted in this inset.
- This will also set CustomPars to the same value and ForcePlain to the opposite
- value.
+ This will also set
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+CustomPars
+\end_layout
+
+\end_inset
+
+ to the same value and
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+ForcePlain
+\end_layout
+
+\end_inset
+
+ to the opposite value.
These can be reset to other values, if they are used
\emph on
after
\emph default
- MultiPar.
+
+\begin_inset Flex CharStyle:Code
+status collapsed
+
+\begin_layout Plain Layout
+MultiPar
+\end_layout
+
+\end_inset
+
+.
+ Default is true.
\end_layout
\begin_layout Description
\emph on
not
\emph default
- whether the command should itself be protected.)
+ whether the command should itself be protected.) Default is false.
\end_layout
\begin_layout Description
] As with paragraph styles (see page
\begin_inset CommandInset ref
-LatexCommand ref
+LatexCommand pageref
reference "des:PathThru"
\end_inset
).
+ Default is false.
\end_layout
\begin_layout Description