有沒有\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 文字的評論。
事實證明,ℝℕℚ位於 Letterlike Symbols 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}