我曾经hyperref
制作过书签。阅读hyperref
手册后,我得到了这个示例并且它有效:
\section{Pythagoras: \texorpdfstring{$ a^2 + b^2 = c^2 $}{ a\texttwosuperior\ + b\texttwosuperior\ = c\texttwosuperior}}
参照此示例,我使用了以下方法,但没有起作用:
\subsection{Wind load \texorpdfstring{$\mathsf{Z^{STAAD}}$ -- Direction}{Z\textsuperscript{STAAD} -- Direction}}
我的代码有什么问题吗?或者是否有其他方法可以在书签中包含上标,或者根本就不可能?
答案1
hyperref
只需要文本即可包含在 PDF 书签中。\textsuperscript
扩展为非简单文本的内容 — 它包含可执行的 TeX 命令,因此不能简单地转换为字母序列。您必须将其替换为仅包含常规符号的解决方案。
第一种方法:使用 ASCII 字符来近似所需的效果:
\subsection{Wind load \texorpdfstring{$\mathsf{Z^{STAAD}}$ -- Direction}%
{Z\^STAAD -- Direction}}
另一种方法是使用Unicode 上标符号某些 PDF 查看器可能不支持显示此内容所需的字体。但似乎没有大写的上标字母 S,因此这不适用于此处。
最后,如果可以的话,我给你一点建议:除非真的需要,否则不要在标题中使用数学、缩写和其他不可读的内容。例如,不要使用
\section{Proof that $\forall n \in \mathbb N (n > 1 \implies n =
p_1^{\alpha_1}p_2^{\alpha_2}\ldots p_k^{\alpha_k})$}
写
\section{Proof that any natural number greater than 1 can be
represented as a product of prime numbers}