使用词汇表包,我实现了here中所述的词汇表和首字母缩写词的组合列表。效果很好:
\newcommand{\agls}[4]{
\newglossaryentry{#1}{
text={#2},
long={#3},
name={\glsentrylong{#1} (\glsentrytext{#1})},
first={\glsentryname{#1}},
firstplural={\glsentrylong{#1}\glspluralsuffix (\glsentryname{#1}\glspluralsuffix )},
description={#4}
}
}
\agls{a:bim}{BIM}{Building Information Modeling}{3D Something}
我很快注意到,我的大多数词汇表描述都以See \cref{sec:myLabel}
结尾。这就是为什么我试图这样修改它:
\newcommand{\agls}[5][]{
\newglossaryentry{#2}{
text={#3},
long={#4},
name={\glsentrylong{#2} (\glsentrytext{#2})},
first={\glsentryname{#2}},
firstplural={\glsentrylong{#2}\glspluralsuffix (\glsentryname{#2}\glspluralsuffix )},
description={#5. See \cref{#1}}
}
}
\agls[subsec:bim]{a:bim}{BIM}{Building Information Modeling}{3D Something}
(如果省略了可选参数,请不要担心残破的引用,我稍后将通过\ifthenelse
进行修复)
但是,这会导致错误:
Argument of \@cref@stack@top has an extra }. \glsXpageXglsnumberformat{}{17}}}
Paragraph ended before \@cref@stack@top was complete. \glsXpageXglsnumberformat{}{17}}}
我似乎看到Latex被几个闭合的花括号弄糊涂了。我已经尝试过将调用移到单独的命令,但没有任何改变:
\newcommand{\lref}[1][]{See \cref{#1}}
... description={#5. \lref[#1]} ...
我该如何解决?
更新:我刚刚注意到我也可以使用
\newcommand{\see}[1]{Siehe \cref{#1}}
\agls{a:bim}{BIM}{Building Information Modeling}{3D Something \see{subsec:bim}}
...这可能是我暂时要做的。如果可以的话,仍然可以轻松解决此问题。