我的文档包含由包格式化的章节标题listings
。(章节名称是configure
脚本开关的名称。)
\subsection{\lstinline!--enable-so-version!}\label{enable-so-version}
处理 LaTeX 源时我收到以下警告:
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\lstinline' on input line 231.
我能避免这种情况吗?如果有指令可以手动(而不是自动)设置 PDF TOC 条目字符串,我愿意复制没有列表格式修饰的标题字符串。
答案1
许多通过不可扩展内容(分配、catcode 更改等)工作的命令在书签中不起作用。PDF 查看器不是 TeX,也不理解 TeX 语言。
包hyperref
提供\texorpdfstring
为普通情况和书签情况提供不同的代码:
\documentclass{article}
\usepackage{listings}
\usepackage{hyperref}
\usepackage{bookmark}
\begin{document}
\tableofcontents
\section{%
\texorpdfstring{\lstinline!--enable-so-version!}%
{-{}-enable-so-version}}
\end{document}
评论:
- 里面的花括号
-{}-enable
可防止书签代码产生连字符并将两个单连字符转换为短划线。 - 推荐使用软件包
bookmark
,书签更新速度更快,软件包提供的功能更多。