在节标题内,由 \NewDocumentCommand 生成的单词不会出现在最终 pdf 的书签浏览器中。输出

在节标题内,由 \NewDocumentCommand 生成的单词不会出现在最终 pdf 的书签浏览器中。输出

以下代码为最终的 pdf 生成了预期的输出。但是,如果标题包含使用 \NewDocumentCommand 生成的单词,则 pdf 上的书签浏览器的外观会出错。使用旧命令 \newcommand 则一切正常。

\documentclass{book}
\usepackage{lmodern} 
\usepackage[T1]{fontenc}
\NewDocumentCommand{\foo}{}{foo\xspace} 
\newcommand{\fooo}{}{fooo\xspace} 

\begin{document}
\section{A section about \foo}
\section{Another section about \fooo}
\end{document}

答案1

这很好用。关键是书签中的内容需要可扩展。

\documentclass{book}
\usepackage{lmodern} 
\usepackage[T1]{fontenc}
\usepackage{xspace}
\usepackage[colorlinks]{hyperref}
\NewExpandableDocumentCommand{\foo}{}{foo\xspace} 
\newcommand{\fooo}{fooo\xspace} 

\begin{document}

\tableofcontents

\section{A section about \foo}
\section{Another section about \fooo}
\end{document}

相关内容