如何将数学字体设置为自定义 TrueType 字体?

如何将数学字体设置为自定义 TrueType 字体?

我是 TeX 的新用户,想知道是否有办法在美元符号之间输入数学表达式时保留我的主要字体(Day Roman)。这里有一个例子,我希望我的字体看起来像底部三个点 A、B 和 C,而不是第一行。我找到了一篇具有我想要使用的样式的论文,请参见下面的图片。

第一个例子

第二个例子

有什么方法可以阻止美元符号改变字体?这是我的序言(如果它很混乱,如果有些东西不需要和/或重叠,我深表歉意):

\documentclass[10pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{ebgaramond,ebgaramond-maths}
\usepackage[T1]{fontenc}
\usepackage{fontspec}
\setmainfont{Dayrom.ttf}

\begin{document}

\textbf{1. }\text{Test 2}\\
$$A = (1, 1, 1), B = (2, 2, 2), C = (3, 3, 3)$$.

\centerline{$A =$ $($1, 1, 1$)$, $B =$ $($2, 2, 2$)$, $C =$ $($3, 3, 3$)$.}
\end{document}

正如您所看到的,我必须避免在数字周围使用美元符号,因为它会改变其字体。

我已经下载了 Day Roman 字体并将其附加到我的文件中。我使用 XeLaTeX 作为编译器。

提前致谢。

答案1

您可以将字体声明为数学字体并声明使用它的数字:

在此处输入图片描述

\documentclass[10pt,a4paper]{article}
% not in xetex \usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{ebgaramond,ebgaramond-maths}
% not in xetex \usepackage[T1]{fontenc}
\usepackage{fontspec}
\setmainfont[NFSSFamily=dayrom]{Comic Sans MS}% I don't have this \setmainfont{Dayrom.ttf}

\DeclareSymbolFont{digits}{TU}{dayrom}{m}{n}
\AtBeginDocument{
\DeclareMathSymbol{0}{\mathalpha}{digits}{`0}
\DeclareMathSymbol{1}{\mathalpha}{digits}{`1}
\DeclareMathSymbol{2}{\mathalpha}{digits}{`2}
\DeclareMathSymbol{3}{\mathalpha}{digits}{`3}
\DeclareMathSymbol{4}{\mathalpha}{digits}{`4}
\DeclareMathSymbol{5}{\mathalpha}{digits}{`5}
\DeclareMathSymbol{6}{\mathalpha}{digits}{`6}
\DeclareMathSymbol{7}{\mathalpha}{digits}{`7}
\DeclareMathSymbol{8}{\mathalpha}{digits}{`8}
\DeclareMathSymbol{9}{\mathalpha}{digits}{`9}
}

\begin{document}
\showoutput
\textbf{1. }\text{Test 2}% never before a math display\\
\[A = (1, 1, 1), B = (2, 2, 2), C = (3, 3, 3) \text{.}\]


\end{document}

相关内容