如何製作一個乾淨且分組的命名清單?

如何製作一個乾淨且分組的命名清單?

命名組是:

Acronyms:兩列(縮寫 - 描述)

Roman symbols:三列(符號-描述-單位)

Greek symbols:三列(符號-描述-單位)

符號應按字母順序排序。

一個例子

我目前的命名法設定:

%----------------------------------------------------------
%                        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}}

編輯1:使用修改後的設定後,命名法如下所示:

在此輸入影像描述

嗯,描述應該在中間列對齊,而單位則在同一行對齊類似的符號。如何弄清楚這一點?

答案1

您可以定義命令

\newcommand{\nomunit}[1]{%
  \renewcommand{\nomentryend}{\hspace*{\fill}#1}%
  }

並在命令中使用它\nomenclature來插入單位,如下例所示(我還加載了siunitx正確的列印單位):

\nomenclature[r]{$v$}{Fluid velocity\nomunit{\si{\metre\per\second}}}

這是一個完整的 MWE(我還調整了一些你的設定)

\documentclass{article}

\usepackage{siunitx}
\sisetup{%
  inter-unit-product=\ensuremath{{}\cdot{}},
  per-mode=symbol
  }

\usepackage{nomencl}
\usepackage{ifthen}
\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{Greek 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
  {}}}}}}}}
\renewcommand*{\nompreamble}{\markboth{\nomname}{\nomname}}

\newcommand{\nomunit}[1]{%
  \renewcommand{\nomentryend}{\hspace*{\fill}#1}%
  }

\makenomenclature

\begin{document}

\section{Test}
$\textrm{CFD}$ and $v$ and $\phi$

\nomenclature[a]{CFD}{Computational Fluid Dynamics}
\nomenclature[r]{$v$}{Fluid velocity\nomunit{\si{\metre\per\second}}}
\nomenclature[g]{$\phi$}{Coefficient of viscosity\nomunit{\si{\pascal\second}}}

\printnomenclature

\end{document} 

結果是:

在此輸入影像描述

如果您希望單位左對齊,可以將 的定義變更\nomunit

\newcommand{\nomunit}[1]{%
  \renewcommand{\nomentryend}{\hspace*{\fill}\makebox[1cm][l]{#1}}%
  }

結果將是:

在此輸入影像描述

如果必須列印更長的單位,請增加到1cm合適的值。


編輯

為了實現您在編輯問題時所說的內容,當您有一個具有長描述的項目時,最好的方法是將描述插入 a 中\parbox,就像這樣

\nomenclature[x]{$x$}{\parbox[t]{.75\textwidth}{Unknown variable with a very very very 
very very very very very very very very very very long description}\nomunit{\si{\second}}}

結果是

在此輸入影像描述

.75\textwidth根據您的需求進行調整。請注意,修改thenomenclature環境來實現自動執行此操作是相當困難的...

相關內容