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
.
또한 아래 답변에는 명령이 \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}