使用 hyperref 制作书签;如何添加上标

使用 hyperref 制作书签;如何添加上标

我曾经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}

相关内容