如何获取\Gls{...}
将首字母大写的命令每个单词,而不仅仅是第一个单词?
\documentclass[a4paper,12pt]{article}
\usepackage{glossaries}
\newacronym{tla}{TLA}{three lettered acronym}
\makeglossaries
\begin{document}
\glsfirst{tla}
\Glsfirst{tla}
\end{document}
答案1
\Gls
-like 命令用于\makefirstuc
仅将句子的首字母大写。
我已将 的含义重新定义\makefirstuc
为 ,\capitalisewords
即将句子中的所有单词大写。
因此,在序言中添加此内容
\makeatletter
\let\oldmakefirstuc\makefirstuc
\renewcommand*{\makefirstuc}[1]{%
\def\gls@add@space{}%
\mfu@capitalisewords#1 \@nil\mfu@endcap
}
\def\mfu@capitalisewords#1 #2\mfu@endcap{%
\def\mfu@cap@first{#1}%
\def\mfu@cap@second{#2}%
\gls@add@space
\oldmakefirstuc{#1}%
\def\gls@add@space{ }%
\ifx\mfu@cap@second\@nnil
\let\next@mfu@cap\mfu@noop
\else
\let\next@mfu@cap\mfu@capitalisewords
\fi
\next@mfu@cap#2\mfu@endcap
}
\makeatother
一切都会如你所愿。
完成 MWE:
\documentclass[a4paper,12pt]{article}
\usepackage{glossaries}
\makeatletter
\let\oldmakefirstuc\makefirstuc
\renewcommand*{\makefirstuc}[1]{%
\def\gls@add@space{}%
\mfu@capitalisewords#1 \@nil\mfu@endcap
}
\def\mfu@capitalisewords#1 #2\mfu@endcap{%
\def\mfu@cap@first{#1}%
\def\mfu@cap@second{#2}%
\gls@add@space
\oldmakefirstuc{#1}%
\def\gls@add@space{ }%
\ifx\mfu@cap@second\@nnil
\let\next@mfu@cap\mfu@noop
\else
\let\next@mfu@cap\mfu@capitalisewords
\fi
\next@mfu@cap#2\mfu@endcap
}
\makeatother
\newacronym{tla}{TLA}{three lettered acronym}
\makeglossaries
\begin{document}
\glsfirst{tla}
\Glsfirst{tla}
\end{document}
输出: