업데이트

업데이트

acronymLaTeX에서 패키지를 사용하고 있습니다 . 문체상의 이유와 명확성을 위해 전체 약어 설명의 각 해당 문자에 밑줄을 표시하기를 원합니다(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}

mwe_output

내 첫 번째 아이디어는 패키지를 사용하여 두문자어의 사용자 정의 복수 버전을 선언할 수 있는 동일한 줄에서 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}

관련 정보