词汇表中的单词大写,文本中单词小写

词汇表中的单词大写,文本中单词小写

是否可以在词汇表中用大写字母写单词,而在文本中用小写字母写单词?我可以使用\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 节新手指南。我不确定这是否准确地回答了所提出的问题,但这是人们可能会发现此问题的一种常见用法。

相关内容