unicode-math
在数学模式下使用纯和时,我无法获得粗体直立无点 i fontspec
。我的 MWE:
\documentclass[border=0.4in]{standalone}
\usepackage{fontspec}
\usepackage{unicode-math}
\begin{document}
\Huge
Vector $\symbfup{x}$; compare $\textbf{x}$.
Unit vector $\symbfup{ı}$; compare $\textbf{ı}$.
\end{document}
我不确定为什么这个特定的 Unicode 字符与其他字符的处理方式不同。欢迎提出任何建议,只要他们仍然使用fontspec
和unicode-math
。
答案1
\symbfup
(和其他\sym..
命令)将其参数映射到Mathematical Alphanumeric Symbols
unicode 块http://unicode.org/charts/PDF/U1D400.pdf。它只对有目标的符号起作用。您不能使用它进行任意输入。
如果您想使用不在数学 Unicode 块中的粗体 Unicode 字符,则必须使用文本字体。\mathXX
可以使用各种字体来实现此目的:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{Latin Modern Roman} %to force \mathtextbf to use EU-encoding
\begin{document}
%\mathbf is possible too, but \mathtextbf is ihmo clearer
Unit vector $\mathtextbf{\symup{ı}}$; compare $\textbf{ı}$.
\end{document}
答案2
答案3
无论是数学字体Latin Modern Math
还是XITS Math
粗体版本\imath
(“无点 i”)。
看起来,如果在数学模式下遇到ı
("text-mode dotless i"),它会被正确映射到\imath
。并且,由于没有粗体版本\imath
,ı
和\symbfup{ı}
都产生相同的非粗体输出。
\documentclass{article}
\usepackage{amsmath} % for "\boldsymbol" macro
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
%or: \setmainfont{XITS}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
%or: \setmathfont{XITS Math}
\begin{document}
\Huge
$\imath$, $ı$,
$\boldsymbol{\imath}$, $\boldsymbol{ı}$,
$\symbfup{\imath}$, $\symbfup{ı}$.
\textbf{\i} \textbf{ı} % two forms of text-mode "dotless i"
\end{document}
如果使用unicode-math
选项math-style=upright
和加载包bold-style=upright
,则会得到以下结果:
字符现在是直立的(这并不奇怪),但数学模式字符仍然不是粗体。
\documentclass{article}
\usepackage{amsmath} % for "\boldsymbol" macro
\usepackage{fontspec}
\setmainfont{Latin Modern Roman}
%or: \setmainfont{XITS}
\usepackage[math-style=upright,bold-style=upright]{unicode-math}
\setmathfont{Latin Modern Math}
%or: \setmathfont{XITS Math}
\begin{document}
\Huge
$\imath$, $ı$,
$\boldsymbol{\imath}$, $\boldsymbol{ı}$,
$\symbfup{\imath}$, $\symbfup{ı}$.
\textbf{\i} \textbf{ı} % two forms of text-mode "dotless i"
\end{document}
答案4
在数学模式下,这似乎适用于将文本模式字符插入为数学字母:
\documentclass[border=0.4in]{standalone}
\usepackage{fontspec}
\usepackage{unicode-math}
\DeclareRobustCommand\mbfupdotlessi{\mathalpha\hbox{\rmfamily\upshape\bfseries{ı}}}
\begin{document}
\Huge
Vector $\symbfup{x}$; compare $\textbf{x}$.
Unit vector $a \symbfup{ı} + 1$; compare $a \mbfupdotlessi + 1$, $a \symup{ı} + 1$.
\end{document}