我希望获得以下内容:
文本中某一节的标题如下
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}
答案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 字母