\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
以下将每个单词的首字母大写。但是它显示缩写。我需要将其修改为\glsentrylong
。
\newacronym{tla}{TLA}{three lettered acronym}
\makeglossaries
\begin{document}
\glsfirst{tla}
\Glsfirst{tla}
\end{document}
答案1
为了glossaries
v4.22 及以上版本,您可以使用\glsentrytitlecase{tla}{long}
。或者(mfirstuc
从 v1.10 开始,您可以使用\ecapitalisewords{\glsentrylong{tla}}
,它会在应用之前完全扩展其参数\capitalisewords
。
\documentclass[a4paper,12pt]{article}
\usepackage{glossaries}
\newacronym{tla}{TLA}{three lettered acronym}
\begin{document}
glossaries v4.22 onward: \glsentrytitlecase{tla}{long}.
mfirstuc v1.10 onward: \ecapitalisewords{\glsentrylong{tla}}.
\end{document}