条件词汇表样式

条件词汇表样式

我使用词汇表来显示全局符号列表,但也显示每个方程的本地符号列表。第一个userkey用于添加物理单位。但有些符号(如效率或比例)不需要单位。我用破折号标记了这些。在全局符号列表中,这看起来很好(就像 COP 中的一样)。

在此处输入图片描述

但对于本地来说(由于使用不同的风格)它看起来有点傻。

在此处输入图片描述

因此,我希望删除in -if the \glsuerkeyiequals -。我有一个命令,放在 glossarystyle 中以生成条目:

%glossarystyle uses tabular 
\newcommand{\itemss}[2]{\glstext*{#1} & #2 in \glsuseri*{#1}  \\}

因此,我猜想此命令需要针对每个条目有条件地更新。我发现了这个(如何检查宏值是否为空或不会使用纯 TeX 条件创建文本?) 很有帮助的帖子。

但我对很多事情都不太确定:
a) 该命令是否可以在词汇表环境中更新?如果可以,是否可以为每个条目重新定义?
b) 我不确定应该应用另一篇文章中的哪种解决方案。因为我得到了 token、打印出来的文本,我不想检查空字符串,等等。

如果您能给我指明正确的方向,我将不胜感激。

编辑:我认为我已经部分解决了这个问题。使用 etoolboxes\ifstrequal可能是一个解决方案:

\newglossarystyle{tabx4col}{%
% put the glossary in a longtable environment:
\renewenvironment{theglossary}%
{\vspace{-1.7em} 
\begin{longtable}{@{}p{0.15\textwidth}@{}p{0.1\textwidth}@{}p{0.60\textwidth}@{}p{0.15\textwidth}@{}}}%
{\end{longtable}}%
% Set the table's header:
\renewcommand*{\glossaryheader}{}%
% No heading between groups:
\renewcommand*{\glsgroupheading}[1]{}%
% Main (level 0) entries displayed in a row:
\ifstrequal{\glsentryuseri{##1}}{-}{

\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{##1}{##2}% Name
& \glsentryuseri{##1}% Units
& ##3% Description
& ##5% Page list
 \\% end of row
}%
}{
\renewcommand*{\glossaryentryfield}[5]{%
\glstarget{##1}{##2}% Name
&
& ##3% Description
& ##5% Page list
 \\% end of row
}%
}
% Sub entries treated the same as level 0 entries:
%\renewcommand*{\glossarysubentryfield}[6]{%
%\glossaryentryfield{##2}{##3}{##5}{##6}}%
%% Nothing between groups:
%\renewcommand*{\glsgroupskip}{}%
}

我不确定是否\glsentryuseri{##1}是要检查的正确条目,我认为它总是与第一对括号内的实际文本进行比较,在本例中为 \glsentryuseri{##1}。它需要以某种方式扩展。

编辑:创建 MWE(https://gist.github.com/tairun/5648781

答案1

测试字符串的方法有很多种。该包提供了一些方法。但是,对于你的情况,在测试之前进行扩展etoolbox很重要。与你的最小示例相关,你可以按以下方式执行此操作:\glsentryuseri{##1}

\def\tempa{-}%define token to compare
\edef\tempb{\glsentryuseri{##1}}%expand user key and save the material in a token
\ifx\tempa\tempb%compare both tokes
 %equal -- do nothing
\else
 %not equal; print out
 \glsentryuseri‌​{##1}
\fi

通过这些修改,您的示例结果为:

在此处输入图片描述

相关内容