有没有\mathbb
可以在数学模式之外使用的模拟物?
\mathbb
我的具体问题是,我有一个包含(当然是在数学模式下)的章节标题,但我使用的是hyperref
,所以每次编译时都会收到警告。我希望有一些可以放入的替代文本,\texorpdfstring
这样我就不会收到警告,但目录中的输出仍然看起来与章节标题中出现的数学相似。
答案1
在所有三个编译器(pdfLaTeX、XeLaTeX、LuaLaTeX)中,您都可以将 Unicode 字符放入 中\texorpdfstring
。对于 pdfLaTeX,这需要\usepackage[unicode]{hyperref}
。
梅威瑟:
\documentclass{article}
\usepackage{amssymb}
\usepackage[unicode]{hyperref}
\begin{document}
\section{\texorpdfstring%
{The difference between $\mathbb{R}$, $\mathbb{N}$ and $\mathbb{Q}$}%
{The difference between ℝ, ℕ, and ℚ}}
\end{document}
结果:
这比仅仅使用 稍微更强大一些\section{The difference between ℝ, ℕ, and ℚ}
,因为这要求当前文档字体包含字符(而不是从 中获取字符amssymb
),而情况并非总是如此。此外,该方法仅适用于 XeLaTeX 和 LuaLaTeX。\texorpdfstring
唯一的要求是您的 pdf 阅读器界面中使用的字体包含字符,这种情况更有可能发生。
答案2
细微差别:
扩展有关使用unicode文本的评论。
事实证明,ℝℕℚ 位于类似字母的符号 unicode 块中,这反过来意味着它们可以被文本字体覆盖,事实上,对于 Noto Serif 字体(作为示例),它们是被覆盖的。
为了使它们出现在用于数学模式(例如 Fira Math)的字体中,可以按照通常的方式将用于数学模式的字体重新声明为另一种文本字体fontspec
。
平均能量损失
\documentclass{article}
%\usepackage{amssymb}
\usepackage{xcolor}
\usepackage{unicode-math}
\setmainfont{Noto Serif}
\setmathfont{Fira Math}[Colour=blue]
\newfontface\ftextasmath{Fira Math}[Colour=red]
\usepackage[unicode]{hyperref}
\begin{document}
\section{\texorpdfstring%
{The difference between $\mathbb{R}$, $\mathbb{N}$ and $\mathbb{Q}$}%
{The difference between ℝ, ℕ, and ℚ}}
Comparison
Text mode:
ℝ, ℕ, and ℚ
\bigskip
Math mode:
$\mathbb{R}$, $\mathbb{N}$ and $\mathbb{Q}$
\bigskip
Unicode-math macros (text mode):
\BbbR \BbbN \BbbQ x + y = z
\bigskip
Unicode-math macros (math mode):
$\BbbR \BbbN \BbbQ x + y = z$
\bigskip
Fira Math as text:
\ftextasmath{ℝ ℕ ℚ}
\end{document}