소개
최근 acro
에 xelatex
.
내 문서 fancyhdr
에서는 섹션 제목이 바닥글에 표시되도록 설정한 패키지를 사용합니다. 섹션 제목 문자는 대문자로 표시됩니다.
문제
나는 가능하면 약어를 사용하는 것을 좋아합니다. 그래서 저는 섹션 제목에 다음과 같은 약어 요청을 사용하기로 결정했습니다.
\section{Moving Forward to Distributed \ac{sdn} Management}
그러나 어떤 이유에서인지 엔진은 섹션 제목의 모든 텍스트를 강제로 대문자 \ac{sdn}
로 변환하여 를 \ac{SDN}
.
이 때문에 나는 보조 파일에 두 번 나타나는 유령 약어에 시달렸습니다.
\acro@used@once {SDN}{78}{78}{89}
\acro@used@twice {SDN}{79}{79}{90}
이러한 유령 약어 요청은 문서 작성 로그에 나타났습니다. 지정된 줄에 약어 요청이 없습니다.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! acro error: "undefined"
!
! You've requested acronym `SDN' on line 499 but you apparently haven't
! defined it, yet!
! Maybe you've misspelled `SDN'?
!
! See the acro documentation for further information.
!
! Type <return> to continue.
!...............................................
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! acro error: "undefined"
!
! You've requested acronym `SDN' on line 514 but you apparently haven't
! defined it, yet!
! Maybe you've misspelled `SDN'?
!
! See the acro documentation for further information.
!
! Type <return> to continue.
!...............................................
답변1
반드시 에 구속되는 것은 아닙니다 fancyhdr
. \pagestyle{headings}
기사 클래스의 간단한 경우에도 마찬가지입니다 .
문제는 제목에서 \sectionmark
수행되고 – 및 친구는 보호된 명령이므로 – 변경되어 오류 메시지가 발생한다는 것입니다.\MakeUppercase
\ac
\ac{sdn}
\ac{SDN}
한 가지 확실한 "해결책"은 대신 대문자 ID를 사용하여 약어를 정의하는 것입니다.
\DeclareAcronym{SDN}{...}
그러나 문서의 약어 및 약어 호출 수에 따라 변경하는 것은 지루한 작업이 될 수 있습니다. (검색 및 바꾸기가 실제로는 꽤 쉬울 수도 있지만...)
또 다른 가능성은 LaTeX에 특정 부분을 대문자로 쓰지 말라고 지시할 수 있도록
textcase
재정의하는 패키지를 사용하는 것입니다 .\MakeUppercase
\documentclass{article} \usepackage{acro} \usepackage[overload]{textcase} \DeclareAcronym{sdn}{ short = SDN , long = some dummy nonsense } \pagestyle{headings} \begin{document} \section{Moving Forward to Distributed \protect\NoCaseChange{\acs*{sdn}} Management} \end{document}
제목 스타일 정의 방식에 의존하지 않는 세 번째 옵션으로 이러한 문제를 해결하기 위해 올해 초(v2.11 2020/01/11 릴리스와 함께)
acro
옵션이 도입되었습니다 .case-sensitive
두 개의 서로 다른 약어가 없다고 가정하면(하나는sdn
ID로 사용하고 다른 하나는 ID로 사용) 둘 다 동일하게 취급하도록SDN
알 수 있습니다 .acro
\documentclass{article} \usepackage{acro} \acsetup{case-sensitive=false} \DeclareAcronym{sdn}{ short = SDN , long = some dummy nonsense } \pagestyle{headings} \begin{document} \section{Moving Forward to Distributed \acs*{sdn} Management} \end{document}
마지막 두 예제는 모두