正如标题所述,Unicode 字符不会出现在数学模式中。根据我的理解,“unicode-math”包应该会让它们出现。
我的问题是,为什么它们不出现以及我如何才能让它们工作。
一个最小的工作示例是这样的:
\documentclass[a4paper,12pt,DIV=15, ngerman, parskip=half]{scrartcl} % parskip=half or parskip=full
\usepackage{csquotes}
\usepackage[ngerman]{babel}
%% The AMS-Packages
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{ifluatex}
\ifluatex%
% Lua(La)TeX
\usepackage{fontspec}
\usepackage[math-style=ISO, bold-style=ISO]{unicode-math}
\else
%default: pdf(La)TeX
\usepackage{lmodern} % load vector font
\usepackage[T1]{fontenc} % font encoding
\usepackage[utf8]{inputenc} % input encoding
\fi
\usepackage[stretch=10,shrink=10]{microtype}
\begin{document}
Latex: \(\hbar\) vs. Unicode: \(ħ\) (Unicode normal: ħ)
Latex: \(\mu\) vs. Unicode: \(µ\) (Unicode normal: µ)
\end{document}
输出结果如下:
如您所见,在 Mathmode 中使用时,符号根本不会出现。我正在使用 Texlive 2021 和 luatex,但找不到任何相关的警告或错误。
答案1
您输入的内容有误。数学上的 ℏ 是 U+210F,而不是 ħ (U+0127)。mu 也类似:
答案2
存在误解,因为 Unicode 表中有一些形状相似但含义不同的字符。
ħ U+0127 Latin Small Letter H With Stroke
ℏ U+210F Planck Constant Over Two Pi, \hslash, \let\hbar=\hslash
µ U+00B5 Micro Sign
μ U+03BC Greek Small Letter Mu \mu
答案3
很容易产生误解。
通过对字体的目视检查可以解释如何。
数学字体(例如 TeX Gyre Pagella - Math)包含全部按照 MAS Unicode 块定义的符号(粗体、斜体等):
和
相比之下,文本字体(例如 TeX Gyre Pagella)不需要 MAS 字形:
文本字体也会有斜体、粗体、粗体斜体等不同的字体文件。数学字体通常只有一个字体文件(约 1k 粗体、斜体等)符号在里面)。
文本字体可能有或可能没有拉丁和希腊文本字母(TeX Gyre Pagella 都有),独立于 MAS,并且为常规、斜体、粗体等。同样,数学字体(TeX Gyre Pagella - Math 也有拉丁和希腊文本(但仅为常规))。
unicode-math
包将所有这些连接在一起(通过映射和范围),并在顶部添加 ISO 格式。
考虑案例 2,其中数学字体在数学模式下使用(蓝色),并且还在文本模式下用作文本字体(红色):即 MAS 字形在两种模式下都会出现。
因此,字形的来源以及它在文本/数学模式下的显示方式取决于多个相互关联和重叠的因素。
平均能量损失
\documentclass{article}
\usepackage{xcolor}
%\usepackage[math-style=ISO, bold-style=ISO]{unicode-math}
\usepackage{unicode-math}
\setmainfont{TexGyrePagella}
\setmathfont{TexGyrePagella-Math}[Colour=blue]
\newfontface\fonttgpm{TexGyrePagella-Math}[Colour=red]
\newcommand\tqbf{The quick brown fox jumps over the lazy dog.}
\newcommand\texta{[Aa] }
\newcommand\textb{\textit{italic} \textbf{bold} \textbf{\textit{bolditalic}} \textsc{Small Caps} }
\newcommand\mas{\texta