XeLaTeX、unicode-math 和 Linux Libertine:改变 \overrightarrow 的外观

XeLaTeX、unicode-math 和 Linux Libertine:改变 \overrightarrow 的外观

我正在使用 Linux Libertine,到目前为止,就数学模式而言一切都运行正常,字体看起来非常好,与文本完美匹配。

但是,我发现我不喜欢这种\overrightarrow排版方式,因为箭头的尖端太大,会碰到下面的字母。我发现解决这个问题的方法是使用unicode-math,我可能无论如何都应该这样做,打开它确实解决了我的问题:箭头将尖端更改为可管理的程度。

问题是,\setminus消失了;此外,粗体符号不再是粗体,而我确实需要它们作为矢量。因此,我的主要问题是我怎样才能得到一个更好看的箭而不会丢失\setminus并且有效\bm

MWE:

\documentclass{article}

\usepackage{fontspec}
\setmainfont{Linux Libertine}

\usepackage{amsmath}
\usepackage{bm}
\usepackage{unicode-math}

\begin{document}

Overarrow: $\overrightarrow{u, v}$

Setminus: $U\setminus V$

Vector: $x$, $\bm{x}$

\end{document}

编辑:正如@egreg指出的那样,缺失问题\setminus是已知的。然而,即使解决了,我还需要大胆的在我的方程式中,unicode-math除了使用 之外,有效地阻止了它们的使用FakeBold看这里

\overrightarrow因此,有没有一种无需使用就能改变的方法unicode-math

答案1

将 Latin Modern Math 与 Linux Libertine 一起使用是有争议的:它们是不同的字体。

还请注意bm不适用于unicode-math(目前,工作正在进行中)。但您可以使用\mathbfit

\documentclass{article}

\usepackage{amsmath}
\usepackage{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setmathfont{TeX Gyre Termes Math}
% the redefinition for the missing \setminus must be delayed
\AtBeginDocument{\renewcommand{\setminus}{\mathbin{\backslash}}}

\begin{document}

Overarrow: $\overrightarrow{u, v}$

Setminus: $U\setminus V$

Bold vector: $\mathbfit{x}$

\end{document}

在此处输入图片描述

所有文档字体都与 Latin Modern 相同:

在此处输入图片描述

Linux Libertine 用于文本,Latin Modern 用于数学,同样如此:

在此处输入图片描述

我看不到箭头的接触,但文本和数学字体之间也有视觉冲突。

相关内容