如何实现命名条目,如:符号、描述、尺寸和单位等?

如何实现命名条目,如:符号、描述、尺寸和单位等?

标题就是我想问的。更详细地说,命名条目应按以下组进行排序:

 Nomenclature

   Acronyms
    Symbol  Description     % no Dimensions and Units 
    ...

   Greek Symbols
    Symbol  Description             Dimensions     Units
    ...

   Roman Symbols
    Symbol  Description             Dimensions     Units
    S       Surface area vector     L^2            m^2
    ...
   Superscripts
    Symbol  Description     % no Dimensions and Units 
    ...
   Dimensionless Numbers
    Symbol  Description     Definition
    ...

例如预期的条目如下:

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

我目前对 [书籍类别] 分组的命名法设置:

%----------------------------------------------------------
%                        Nomenclature
%----------------------------------------------------------
%\renewcommand{\nomname}{List of Symbols and Abbrev.}
\renewcommand\nomgroup[1]{%
  \ifthenelse{\equal{#1}{A}}{%
   \item[\textbf{Acronyms}] }{%                  A - Acronyms
    \ifthenelse{\equal{#1}{R}}{%
     \item[\textbf{Roman Symbols}]}{%            R - Roman
      \ifthenelse{\equal{#1}{G}}{%
        \item[\textbf{•} Symbols }]}{%          G - Greek
          \ifthenelse{\equal{#1}{S}}{%
           \item[\textbf{Superscripts  }]}{{%          S - Superscripts
        \ifthenelse{\equal{#1}{U}}{%
         \item[\textbf{Subscripts }]}{{%                 U - Subscripts
        \ifthenelse{\equal{#1}{X}}{%
         \item[\textbf{Other Symbols }]}%            X - Other Symbols
                    {{}}}}}}}}}}
%\ifpdf
\renewcommand{\nomlabel}[1]{\hspace{1 em}#1}%{\hspace{1.5 em}#1}
\renewcommand*{\nompreamble}{\markboth{\nomname}{\nomname}}

但是如何用和来扩展它DimensionsUnits

答案1

nomenclature 包的文档包含将所有内容放入 longtable 环境中的代码,但这涉及对.ist文件的一些破解。一种可能就足够的更简单的方法是定义一些在普通列表中工作的辅助宏:

示例输出

\documentclass{article}

\usepackage{nomencl,etoolbox,ragged2e,siunitx}

\newcommand{\DimensUnits}[2]{\hfill\makebox[8em]{#1\hfill}%
\makebox[4em]{#2\hfill}\ignorespaces}
\newcommand{\insertnomheaders}{\item[\bfseries Symbol]%
\textbf{Description}\DimensUnits{\textbf{Dimensions}}{\textbf{Units}}}

\renewcommand\nomgroup[1]{%
  \item[\large\bfseries
  \ifstrequal{#1}{A}{Acronyms}{%
  \ifstrequal{#1}{R}{Roman Symbols}{%
  \ifstrequal{#1}{G}{Greek Symbols}{%
  \ifstrequal{#1}{S}{Superscripts}{% 
  \ifstrequal{#1}{U}{Subscripts}{%   
  \ifstrequal{#1}{X}{Other Symbols}{}}}}}}]
  \insertnomheaders
  }

\renewcommand*{\nompreamble}{\markboth{\nomname}{\nomname}}

\newcommand{\nomdescr}[1]{\parbox[t]{4cm}{\RaggedRight #1}}
\newcommand{\nomwithdim}[5]{\nomenclature[#1]{#2}%
{\nomdescr{#3}\DimensUnits{#4}{#5}}}

\makenomenclature

\begin{document}
\mbox{}
\nomwithdim{R}{\(a,b,c\)}{half axes of ellipsoid}{L}{\si{m}}
\nomwithdim{R}{\(C\)}{dimensionless coefficient (e.g.\ for drag model)}{--}{1}
\nomwithdim{G}{\( \varepsilon_0 \)}{vacuum permittivity}{F/L}{\si{F.m^{-1}}}

\printnomenclature[6em]
\end{document}

可选参数\printnomenclature设置符号可用的空间。然后我们将每行设置为其\item标签为符号的,后面跟着一个包含描述的固定宽度的段落,后面跟着一个尺寸框,最后是一个单位框。 etoolbox已加载以避免使用弃用的ifthen包。sunitx已加载用于打印单位。

当然,要编译这个,你需要通过 (pdf)latex 运行文件,然后运行

makeindex file.nlo -s nomencl.ist -o file.nls

将“ file”替换为你的作业名称(即主文件所在的位置)(两次)file.tex。然后你需要再次运行 (pdf)latex。

添加以回应评论这是针对不同类别具有不同样式的版本。 再次更新现在可以将可选参数传递给排序键。

示例输出

\documentclass{article}

\usepackage{nomencl,etoolbox,ragged2e,siunitx,mathtools}

\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}

\newcommand{\DimensUnits}[2]{\hfill\makebox[8em]{#1\hfill}%
\makebox[4em]{#2\hfill}\ignorespaces}
\newcommand{\DefinitionCol}[1]{\hfill\parbox[t]{12em}{#1}\ignorespaces}

\newcommand{\nomsubtitle}[1]{\item[\large\bfseries #1]}

\renewcommand\nomgroup[1]{\def\nomtemp{\csname nomstart#1\endcsname}\nomtemp}

\newcommand{\nomstartR}{\nomsubtitle{Roman Symbols}%
  \item[\bfseries Symbol]%
  \textbf{Description}\DimensUnits{\textbf{Dimensions}}{\textbf{Units}}}
\newcommand{\nomstartG}{\nomsubtitle{Greek Symbols}%
  \item[\bfseries Symbol]%
  \textbf{Description}\DimensUnits{\textbf{Dimensions}}{\textbf{Units}}}
\newcommand{\nomstartD}{\nomsubtitle{Dimensionless Numbers}%
  \item[\bfseries Symbol]\textbf{Description}\DefinitionCol{\textbf{Definition}}}

\renewcommand*{\nompreamble}{\markboth{\nomname}{\nomname}}

\newcommand{\nomdescr}[1]{\parbox[t]{4cm}{\RaggedRight #1}}
\newcommand{\nomwithdim}[5]{\nomenclature[#1]{#2}%
{\nomdescr{#3}\DimensUnits{#4}{#5}}}
\newcommand{\nomtypeR}[5][]{\nomwithdim{R#1}{#2}{#3}{#4}{#5}}
\newcommand{\nomtypeG}[5][]{\nomwithdim{G#1}{#2}{#3}{#4}{#5}}
\newcommand{\nomtypeD}[4][]{\nomenclature[D#1]{#2}{\nomdescr{#3}\DefinitionCol{#4}}}
\makenomenclature

\begin{document}
\mbox{}
\nomtypeR[abc]{\(a,b,c\)}{half axes of ellipsoid}{L}{\si{m}}
\nomtypeR[C]{\(C\)}{dimensionless coefficient (e.g.\ for drag model)}{--}{1}
\nomtypeG{\( \varepsilon_0 \)}{vacuum permittivity}{F/L}{\si{F.m^{-1}}}
\nomtypeD{\( \mathcal A_r \)}{Archimedes number}{\(\displaystyle
\frac{d^3g\rho_c\abs{\Delta\rho}}{\mu_c^2} = \sqrt{\frac{\mathcal
E_0^3}{\mathcal M_0}} \)}
\nomtypeR[CC]{\(\mathbf{C}\)}{another dimensionless coefficient}{--}{1}
\nomtypeR[A]{\(A\)}{a dimensionless coefficient}{--}{1}
\nomtypeR[Z]{\(Z\)}{a dimensionless coefficient}{--}{1}

\printnomenclature[6em]
\end{document}

相关内容