目录、书签和标题中的数学

目录、书签和标题中的数学

我希望获得以下内容:

  • 文本中某一节的标题如下Math symbols $\boldsymbol{\sum, \int}$

  • 在目录中Math symbols $\sum, \int$(无粗体),

  • 在书签中是Math symbols sum, integral

我可以获得书签中我想要的内容以及两者中的两种(粗体或标准)之一:目录和带有 的文本\texorpdfstring。我也可以使用\section[This will go to bookmarks and TOC.]{This will appear in the content.}。但我不知道如何让它们同时工作。

答案1

两个建议:

  • 使用“长标题”——花括号内的内容——按照您希望它在章节标题本身中出现的方式排版材料;特别是,使用\bm(或等效宏)来创建大胆的数学符号。

  • 使用\texorpdfstring宏(由包提供hyperref里面“简称”——方括号内的内容——用于指示 LaTeX 在 (a) 目录中显示什么(例如,普通的、非粗体的数学符号)和 (b) 在 pdf 书签中显示什么(例如,根本没有数学符号)。

请注意,以下屏幕截图仅显示目录条目(由 的第一个参数产生\texorpdfstring)和标题行(“长标题”),但不显示 pdf 书签(由 的第二个参数产生\texorpdfstring):

在此处输入图片描述

\documentclass{article}  
\usepackage{bm} % for bold math
\usepackage[colorlinks=true]{hyperref}%%%%%%
\begin{document}  
\tableofcontents
\section[\texorpdfstring{Math symbols $\sum, \int$}%
                        {Math symbols sum, integral}]% % choose text-only material here
        {Math symbols $\bm{\sum, \int}$}  % note use of \bm ("bold math")
\end{document}

答案2

这两个符号\sum\int在 Unicode 中可用,并支持 Unicode 书签。例子Mico 对此进行了相应扩展:

\documentclass{article}
\usepackage{bm} % for bold math
\usepackage[
  colorlinks=true,
  pdfencoding=auto, % or unicode
  psdextra,
]{hyperref}[2012/08/13]
\usepackage{bookmark}% recommended
\begin{document}
\tableofcontents
\section[\texorpdfstring{Math symbols $\sum, \int$}%
                        {Math symbols \sum, \int}]%
        {Math symbols $\bm{\sum, \int}$}  % note use of \bm ("bold math")
\end{document}

结果 AR9/Linux

答案3

我喜欢 Heiko Oberdiek 的解决方案。问题仍然是,如果想要添加没有预定义命令(如\int和 )的 Unicode 字符,该怎么办\sum

一个选项是和\usepackage[utf8]{inputenc}\hypersetup{pdfencoding=unicode}如果尚未设置为选项hyperref),并在源文件中包含文字 UTF-8 编码字符。

这很好,但我个人不喜欢在源文件中使用非 ASCII 编码。一个原因是我首选的文本编辑器并不总是有显示每个 Unicode 字符的字体。另一个原因是我喜欢能够将源代码复制并粘贴到 Unicode 在另一端可能正确显示或可能不正确的地方(如这里)。

这是另一种选择,使用 TeX 的^^输入语法将 Unicode “武装”为 ASCII。这需要首先确定每个字符的逐字节 UTF-8 编码。然后可以这样写:

\documentclass{article}

\usepackage[pdfencoding=unicode]{hyperref}
\usepackage[utf8]{inputenc}

\usepackage{amsfonts}

\begin{document}

\section{The group \texorpdfstring
                   {$U_n(\mathbb{D}[\omega])$}
                   {U^^e2^^82^^99(^^e2^^85^^85[^^cf^^89])}}

\end{document}

示例输出
(来源:mathstat.dal.ca

答案4

为了补充 Peter Selinger 的答案,您不需要 TeX 十六进制符号来编写 Unicode 字符,您也可以使用命令

\unichar{"1D4C1}

获取 Unicode 字符,无论是在 16 位平面还是在更高平面。上面的命令生成一个脚本 ell 字母

相关内容