我正在使用 ClassicThesis 和这样的首字母缩略词包(MWE):
\documentclass{scrbook}
\usepackage{classicthesis}
\usepackage{acronym}
\begin{document}
\begin{acronym}
\acro{MAP}{Maximum A Posteriori}
\end{acronym}
Document text with an acronym: \ac{MAP}.
\end{document}
在Linux中使用pdflatex进行编译(三次)时,我收到这种警告:
pdfTeX warning (dest): name{MAP} has been referenced but does not exist, replaced by a fixed one
我检查了具有经典论文的章节名称中的首字母缩略词和Classicthesis:首字母缩略词部分中的首字母缩略词大写缩写,但由于 ClassicThesis 更改了标题的大小写,因此这些问题略有不同。相反,我在所有首字母缩略词(大写、小写和混合大小写)中都始终收到此类警告。
我尝试\PassOptionsToPackage{printonlyused,smaller}{acronym}
按照示例文件进行操作classicthesis-config.tex
,但似乎无法消除警告。我甚至不确定这是否\PassOptionsToPackage
是最好的解决方案。有什么建议吗?(在我的完整文档中,我还需要加载包hyperref
。)
答案1
不太丑陋的解决方法:
\documentclass{scrbook}
\usepackage{classicthesis}
\usepackage{acronym}
\usepackage{etoolbox}
\makeatletter
\AtBeginEnvironment{acronym}{%
\def\NRorg@descriptionlabel#1{\hspace{\labelsep}#1}%
\setkomafont{descriptionlabel}{\normalfont}%
\renewcommand*{\aclabelfont}[1]{\spacedlowsmallcaps{#1}}%
}
\makeatother
\begin{document}
\begin{acronym}
\acro{MAP}{Maximum A Posteriori}
\end{acronym}
Document text with an acronym: \ac{MAP}.
Document text with an acronym: \ac{MAP}.
\end{document}
显然,classicthesis
重新定义\descriptionlabel
的方式会产生冲突。