如何创建可以在数学模式下使用的符号列表?

如何创建可以在数学模式下使用的符号列表?

我在不同的文件中描述了包含大量变量的复杂协议。问题是我以后可能会更改变量名。我的想法是将变量名定义为 Latex 命令,例如\lengthtree(而不是写成例如)。以后我只需重新定义 latex 命令$\ell_t$即可轻松更改\lengthtree为。$L_t$

现在我想创建一个符号列表,正在寻找一种自动创建它的可能性。我尝试了词汇表包,但如果我在数学环境中使用这些符号,就会出现 Latex 错误。

什么是“最先进的”解决方案来在一个全局点定义我的变量(也可以在数学模式下使用)?应该自动创建一个符号列表。

答案1

正如芭芭拉提到的,你可以\ensuremath这样使用:

\documentclass{article}

\usepackage{glossaries}

\makeglossaries

\newglossaryentry{lengthtree}%
{%
  name={\ensuremath{L_t}},
  description={description here},
  sort={L}
}

\begin{document}

In line: \gls{lengthtree}. In math mode: 
\[
  \gls{lengthtree}
\]

\printglossary[title={List of Symbols}]

\end{document}

反对的论点\ensuremath归结为两个主要问题(见何时不应使用 \ensuremath 作为数学宏?):

$首先,你可能会在 的参数内得到\ensuremath。这在本例中不会发生,因为 的参数\ensuremath被明确设置为L_t

其次,存在语义问题。按照这种说法,您应该在不带\ensuremathand do 的情况下定义条目$\gls{lengthtest}$,这在您键入的文档文本中是可以的,但这会导致词汇表中出现问题,即当涉及到条目名称时,样式不会自动转换为数学模式。就我个人而言,我认为\ensuremath在这种情况下是可以的,但对于无法忍受它的纯粹主义者,这里有一个替代解决方案:

\documentclass{article}

\usepackage{glossaries}

\makeglossaries

\newglossaryentry{lengthtree}%
{%
  name={$L_t$},
  text={L_t},
  description={description here},
  sort={L}
}

\begin{document}

In line: $\gls{lengthtree}$. In math mode: 
\[
  \gls{lengthtree}
\]

\printglossary[title={List of Symbols}]

\end{document}

以上两个示例均产生以下结果:

文件图片

答案2

我认为你的意思是这样的,定义命令并同时列出列表。

在此处输入图片描述

\documentclass{article}

\newcommand\mysymbol[3]{%
\protected\gdef#1{#2}%
\item[$#2$]#3}

\begin{document}

\section*{List of symbols}

\begin{description}
\mysymbol{\zzz}{z_z^z}{Something about $Zzzzz$.}
\mysymbol{\Txxx}{Tx_{xx}}{The xx component of T.}
\mysymbol{\vvvv}{V_2}{$V$, the second.}
\mysymbol{\vvvvv}{V_3}{$V$, the third.}
\end{description}
\section{zzz}

\[ \zzz=\Txxx\]
where
\[\vvvv=3\]
and
\[\vvvvv=X\]

\end{document}

相关内容