私はacronym
LaTeX でパッケージを使用しています。文体上の理由と明確さのために、完全な頭字語の説明で対応する各文字に下線を付けたいです (MWE を参照)。これは、 を使用して文頭の頭字語を大文字にする必要がある場合を除いて、問題なく機能します。 コマンドが原因で、頭字語の最初の文字が認識されず、大文字にならないよう\Ac{}
です。 明確さのために、大学から提供されたテンプレートを使用する義務があるため、パッケージ (たとえばパッケージではありません) を使用するソリューションを探しています。 誰か解決策を持っていますか? どんな助けでもいただければ幸いです。乾杯!\underline{}
acronym
glossaries
MWE:
\documentclass{article}
\usepackage{acronym}
\begin{document}
\Ac{DoS} attacks should be capitalized but it is not. \Ac{w.r.t.} without the underline works fine.
\begin{acronym}
\acro{DoS}{\underline{d}enial-\underline{o}f-\underline{s}ervice}%
\acro{w.r.t.}{with respect to}%
\end{acronym}
\end{document}
acronym
私の最初のアイデアは、パッケージで頭字語のカスタム複数形を宣言できるのと同じ行で、各頭字語の大文字バージョンをカスタム定義できるというものでしたが、これを行う標準的な方法は見つかりませんでした。\Ac{}
コマンドを再定義して、スタイルを「参照」できるようにすることもオプションだと思いますが、そのような偉業を達成するには LateX の知識がほとんどありません。
答え1
アップデート
元の回答は TeX Live 2022 では機能しますが、Bart Wolleswinkel と Dai Bowen がコメントで述べているように、TeX Live 2023 では機能しません。その理由は、 の定義が変更されたためです。このコマンドは、パッケージ によって定義されている\MakeUppercase
コマンドの定義で使用されます。\@firstupper
acronym
\@firstupper
解決策としては、 を使用するようにコマンドを再定義することです\text_titlecase_first:n
。
さらに、以下の回答では、コマンドが定義されています。これにより、これを に渡す前に、2 番目の引数の\acrounderline
最初の文字とそれぞれの後の最初の文字に下線が引かれます。-
\acro
\documentclass[border=6pt,varwidth]{standalone}
\usepackage{acronym}
\ExplSyntaxOn
\makeatletter
\renewcommand { \@firstupper } [1] { \text_titlecase_first:n {#1} }
\makeatother
\tl_new:N \l__BartWolleswinkel_acro_underline_tl
\newcommand { \acrounderline } [2]
{
\tl_set:Nn \l__BartWolleswinkel_acro_underline_tl {#2}
\tl_replace_all:Nnn \l__BartWolleswinkel_acro_underline_tl { - } { - \underline }
\tl_put_left:Nn \l__BartWolleswinkel_acro_underline_tl { \underline }
\acro {#1} { \l__BartWolleswinkel_acro_underline_tl }
}
\ExplSyntaxOff
\begin{document}
\Ac{DoS} is capitalized without braces around \verb|\underline{d}|.
\Ac{w.r.t.} works.
\Ac{DoS2} works as well and also works with for example \verb|\textbf| if there is a pair of braces around it.
\begin{acronym}
\acro{DoS}{\underline{d}enial-\underline{o}f-\underline{s}ervice}%
\acro{w.r.t.}{with respect to}%
\acrounderline{DoS2}{denial-of-service-{\textbf{2}}}%
\end{acronym}
\end{document}
元の回答
解決策としては、追加の中括弧を使用することです{\underline{d}}
。
\documentclass[border=6pt,varwidth]{standalone}
\usepackage{acronym}
\begin{document}
\Ac{DoS} attacks should be capitalized but it is not. \Ac{w.r.t.} without the underline works fine.
\begin{acronym}
\acro{DoS}{{\underline{d}}enial-\underline{o}f-\underline{s}ervice}%
\acro{w.r.t.}{with respect to}%
\end{acronym}
\end{document}