是否可以在词汇表中用大写字母写单词,而在文本中用小写字母写单词?我可以使用\glslink
代替\gls
,但没有更好的解决方案吗?
这是一个可以阐明我想要什么的例子:
\documentclass[a4paper]{article}
\usepackage{hyperref}
\usepackage{glossaries}
\makeglossaries
\newglossaryentry{lowercase}{name={lowercase}, description={In the glossary, this word should be capitalized}}
\newglossaryentry{uppercase}{name={Uppercase}, description={This word is capitalized}}
\begin{document}
Should both be lowercase: \gls{lowercase}, \gls{uppercase}.
Workaround: \gls{lowercase}, \glslink{uppercase}{uppercase}.
\printglossaries
\end{document}
得出:
Should both be lowercase: lowercase, Uppercase.
Workaround: lowercase, uppercase.
Glossary
lowercase In the glossary, this word should be capitalized. 1
Uppercase This word is capitalized. 1
答案1
有一个简单的解决方案。您可以分别设置在词汇表中出现的文本和在文本中出现的文本。
\newglossaryentry{uppercase}{
name={Uppercase},
text={uppercase},
description={Appears uppercase in the glossary and lowercase in the text}
}
答案2
对于未来遇到同样问题的用户:
我自己也遇到了这个问题,并找到了这个问题及其复制。@Nitram 的解决方案在第一个单词定义为宏的情况下很有用。但是:
- 我不想重复输入所有的名字,
- 我确实想控制哪些是大写的,哪些不是大写的(以数学符号作为首字母的情况),
- 如果没有特别要求的话,我想保持通常的行为。
来自@nicola-talbot 的回答那里,我发现一个简单的重新定义就可以解决问题:
\usepackage{mfirstuc}
\renewcommand{\glsnamefont}[2][]{\capitalisewords{#1}\xspace#2}
例子:
用法:在词汇表中输出“第一个单词大写”,并且在文本中 \gls{firstexample} 输出“第一个单词大写”:
\newglossaryentry{firstexample}{
name={first}{word capitalized}
}
这不适用于宏(将使整个单词大写),因此使用文本字段:
\newglossaryentry{boite}{
name={\Boite de valeurs},
text={\boite de valeurs}
}
我首先有数学,名称的正常使用:在词汇表和文内 \gls{firstexample} 输出“$i$-th blabla”中:
\newglossaryentry{iblabla}{
name={$i$-th blabla}
}
答案3
我用过尼古拉的回答,因为这里的答案都不适合我。
该glossaries-extra
包允许使用 轻松设置大写字母firstuc
。我不需要更改太多预览代码,也不需要调用。只需更改包并添加以下代码:
\setglossarystyle{long}
\setabbreviationstyle[acronym]{long-short}
\glssetcategoryattribute{acronym}{glossdesc}{firstuc}
答案4
文本中可以使用大写和小写;\Gls{}
将给出大写的单词或术语,如句子开头。在其他位置,\gls{}
也可以使用小写形式。请参阅第 3 节新手指南。我不确定这是否准确地回答了所提出的问题,但这是人们可能会发现此问题的一种常见用法。