Fira Math 中缺少 \vdots?

Fira Math 中缺少 \vdots?

我使用 TeXLive 2020。这个简单的代码

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Fira Math}
\begin{document}

\[
A = \begin{pmatrix}
            a_{11} & a_{12} & \cdots & a_{1p}\\ 
            a_{21} & a_{22} & \cdots & a_{2p}\\      
            \vdots & \vdots & \ddots & \vdots\\ 
            a_{n1} & a_{n2} & \cdots & a_{np}
         \end{pmatrix}
\]
\end{document}

导致这一点:

缺少垂直点

你知道我该如何告诉 XeTeX 从其他地方“导入那些 \vdots”吗?提前谢谢。

答案1

是的,Fira Math 中缺少字形。

您可以使用其他无衬线数学字体。

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Fira Math}
\setmathfont{TeX Gyre DejaVu Math}[range={\vdots,\ddots}]
\setmathfont{Fira Math}[range=]

\begin{document}

\[
A = \begin{pmatrix}
            a_{11} & a_{12} & \cdots & a_{1p}\\ 
            a_{21} & a_{22} & \cdots & a_{2p}\\      
            \vdots & \vdots & \ddots & \vdots\\ 
            a_{n1} & a_{n2} & \cdots & a_{np}
         \end{pmatrix}
\]
\end{document}

在此处输入图片描述

虽然不完美,但对于演示来说还过得去。

答案2

我想到了一个与上一个答案不同的解决方案,所以我决定分享它,尽管我认为它不太优雅。

graphicx包提供了命令\rotatebox,允许人们旋转对象。由于\cdots已经定义,我们可以使用它来定义其他两个命令。这是一个 MWE:

\documentclass{article}
\usepackage{graphicx}
\usepackage{unicode-math}
\setmathfont{Fira Math}

\AtBeginDocument{
    \renewcommand{\vdots}{\rotatebox[origin=c]{90}{\(\cdots\)}}
    \renewcommand{\ddots}{\rotatebox[origin=c]{135}{\(\cdots\)}}
}

\begin{document}

\[
A = \begin{pmatrix}
            a_{11} & a_{12} & \cdots & a_{1p}\\ 
            a_{21} & a_{22} & \cdots & a_{2p}\\      
            \vdots & \vdots & \ddots & \vdots \\ 
            a_{n1} & a_{n2} & \cdots & a_{np}
         \end{pmatrix}
\]
\end{document}

结果是

在此处输入图片描述

要重新定义命令\vdots\ddots我们需要使用,\AtBeginDocument因为unicode-math在文档开头定义了字形。因此,如果我们只使用\renewcommand而不使用\AtBeginDocumentunicode-math则会覆盖文档开头的自定义定义。

相关内容