将 \glsentrylong 中的每个单词大写

将 \glsentrylong 中的每个单词大写
\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

为了glossariesv4.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}

相关内容