当我启动文档的附录时总是出现hyperref
带有的问题\uppercase
,并且总是出现:
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\uppercase' on input line 504.
怎么解决?
\begin{apendicesenv}
% Imprime uma página indicando o início dos apêndices% Imprime uma página indicando o início dos apêndices
\partapendices
% ----------------------------------------------------------
\chapter{Questinários}
% ----------------------------------------------------------
\centering
\includegraphics[trim = 1.9cm 5cm 1.1cm 11mm,clip,width= 16cm]{Selecao.pdf}
% ----------------------------------------------------------
\chapter{Diagnóstico Inicial}
% ----------------------------------------------------------
\centering
\includegraphics[trim = 1.3cm 2cm 1.1cm 8mm,clip,width= 16cm]{diag.pdf}
\includepdf[pages={2-3},trim = 1.3cm 2cm 1.0cm 8mm,clip,width= 16cm]{diag.pdf}
\end{apendicesenv}
答案1
\uppercase
是不可展开的命令。因此,必须调用/执行它才能完成其工作,在 TeX 语音中,位置是胃。但是,书签是在可扩展上下文中生成的,即 TeX 的嘴巴。它类似于写入文件或控制台。尝试:
\typeout{\uppercase{hello}}
结果\uppercase
出现在输出中并且hello
保持小写:
\uppercase {hello}
生成书签的代码hyperref
尽力避免此类命令出现在输出中,并已成功将其删除,请参阅警告文本。当然,文本不会转换为大写,因此,警告是合理的。
有两种方法可以解决没有警告的情况:
\pdfstringdefDisableCommands
可用于删除不受支持的命令:\usepackage[...]{hyperref} \pdfstringdefDisableCommands{\let\uppercase\@firstofone}
\texorpdfstring
可以用来用替换文本替换不受支持的构造,例如:\section{\texorpdfstring{\uppercase{hello}}{HELLO}}