<< | Page list | >>
Create a list of symbols with LyX and the nomencl package
Create Nomenclature with LyX
In LyX 1.5.x+, you can generate a nomenclature with
Insert→List/ToC→Nomenclature.
Nomenclature entries can be added using Insert→Nomenclature Entry or using the appropriate button on the toolbar. This will bring up a dialogue box which wants the symbol as it is to appear, a description and a sort as key.
Often you will want the symbol to appear as it does in an equation in which case you should surround it by dollar signs ($Symbol$
). You should be able to copy and paste the symbol directly from a LyX equation, which could be useful if you are unsure of the LaTeX codes for Greek letters or subscripts.
For further documentation see Help→Additional Features (in 2.0.0, Help→User's Guide) and the documentation of the nomencl
package.
Adding Nomenclature to TOC without ERT
Use the following code in your LaTeX preamble (Documents>Settings>Latex Preamble).
\def\nompreamble{\addcontentsline{toc}{section}{\nomname}\markboth{\nomname}{\nomname}}
Changing the name of the nomenclature section
You may prefer using Notation or Symbols used, or anything you like. Use the following code in your LaTeX preamble (Documents>Settings>Latex Preamble) - change the name to your choice.
\AtBeginDocument{\def\nomname{New Name for Nomenclature}}
Creating Nomenclature with Sections
This assumes that you prefix all your sort as keys with appropriate letters (e.g. A for alphabetical i.e Roman; G for Greek etc). Personally I use an underscore too (a_
or G_
)because this makes the key clearer to me. If you do this be consistent and use underscores throughout otherwise your sort order may not be as expected. (See documentation on nomencl
for sort orders).
Use the following code in your LaTeX preamble (Documents>Settings>Latex Preamble).
Comment out lines as appropriate if those sections are not required along with line containing corresponding terminating '}'. Similarly add a new line in the same format if required not forgetting to add the terminating bracket.
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{A}}{\item[\textbf{Roman Symbols}]}{%
\ifthenelse{\equal{#1}{G}}{\item[\textbf{Greek Symbols}]}{%
\ifthenelse{\equal{#1}{C}}{\item[\textbf{Abbreviations}]}{%
\ifthenelse{\equal{#1}{S}}{\item[\textbf{Subscripts}]}{%
\ifthenelse{\equal{#1}{Z}}{\item[\textbf{Mathematical Symbols}]}
{}
}% matches mathematical symbols
}% matches Subscripts
}% matches Abbreviations
}% matches Greek Symbols
}% matches Roman Symbols
The groupings will appear in the order Roman Symbols, Abbreviations, Greek, Subscripts, Mathematical Symbols because that is the alphabetical sort order. Other people use the prefix
B for Greek to change the order - I prefer to use G so as not to confuse myself. Change the letters to taste and preferred sort order for grouping.
This section uses the package
ifthen
so if it is not loaded for any other reason you may need to preface the code with
\usepackage{ifthen}
I have used this code without explicitly labelling the Roman symbols section (so that code omitted), but I still preface all my sort keys with an a to list them in front of the Greek and subscript sections.
Adding Units and lining them up on the right
The code shown here defines a new command (\nomunit
) which can be used in the description box following the description. Usage is as \nomunit{unit}
, or my preferred \nomunit{[unit]}
to encapsulate the units in square brackets.
\newcommand{\nomunit}[1]{%
\renewcommand{\nomentryend}{\hspace*{\fill}#1}}
To separate the description and units with dots one could replace the second line with
\renewcommand{\nomentryend}{\dotfill#1}}
Although if units are not defined for a particular entry there will be a line with nothing after the description.
To improve this further one could use the package SIunits
and use those commands.
Nomenclature and ngerman
(German new spelling)
The problem and hints below apply to other German variants as austrian
or naustrian
(Austrian new spelling), too.
Including a Nomenclature in a document that shall use ngerman
as document language is tricky, because:
- The
nomencl
package (version 4.2) supports a set of language options,
including german
but not ngerman
.
- LyX calls the package without options, so that the
nomencl
options must be added to the global options.
- Options added with Document>Settings>Document Class Options are
appended to the language settings in Document>Settings>Language,
but
babel
considers the last recognized option to be the
document language.
Workarounds
Simple workaround:
In the LaTeX preamble add \renewcommand{\nomname}{Glossar}. You can change "Glossar" to everything you like. [But this does not change the name for page references etc.]
To get the complete German version of nocmencl add \PassOptionsToPackage{german}{nomencl} to the preamble. So you still can use you preferred German spelling (ngerman, naustrian) in the document settings.
Alternative workarounds:
- Set
german
with Document>Settings>Language German
and append ngerman
via
Document>Settings>Document Class Options.
- Mark at least one word (e.g. in a comment) with
Edit>Text Style>Customized>Language German, so LyX adds
german
to the global options (before ngerman
).
- Patch nomencl.sty so it recognizes
ngerman
as an alias to the
option german
:
@@ -71,6 +71,8 @@
\def\eqdeclaration#1{, siehe Gleichung\nobreakspace(#1)}%
\def\pagedeclaration#1{, Seite\nobreakspace#1}%
\def\nomname{Symbolverzeichnis}}
+\DeclareOption{ngerman}{% German (new spelling)
+ \ExecuteOptions{german}}
\DeclareOption{italian}{%
\def\eqdeclaration#1{, vedi equazione\nobreakspace(#1)}%
\def\pagedeclaration#1{, pagina\nobreakspace#1}%
Categories
Category: Tip Languages