如何更改数学模式的字体和大小(不更改“普通”文本字体)?

如何更改数学模式的字体和大小(不更改“普通”文本字体)?

我想在考试中使用以下字体:

  1. 普通文本: Arial(12 pt)
  2. 数学文本: Times New Roman Mathtype(13 pt)

我使用 Arial字体规格. 如何更改字体和大小的数学模式?

\documentclass[12pt,a4paper,addpoints]{exam}

\usepackage{amsmath} 
\usepackage{amssymb}    
\usepackage[dutch]{babel}
\usepackage{fontspec}

\setmainfont{Arial}

\begin{document}\noindent
    This exam is in accordance with the format of the Dutch Final Central Exams.
        \begin{questions}
            \question
            This text is \emph{Arial (12 pt)}.\\
            The following should be \emph{Times New Roman Mathtype (13 pt)}:    
               \[a^2+b^2=c^2\] and \[\alpha+\beta=\gamma\] and \[f(x)=\sin\left(\frac{1}{2}x+2\pi\right)\]
            Note that also $x+y=z$ should be in \emph{Times New Roman Mathtype (13 pt)}.
                \begin{parts}
                    \part[1000]
                    How is it done?
                \end{parts}
        \end{questions}
    End of the exam.    
\end{document}

以下是考试格式的示例: 考试格式示例

另一个是前两个希腊字母: 在此处输入图片描述

答案1

Egreg 的方法与我所用的基本方法相同,但有一些微妙之处。

首先,您的文本会太小。在这里,“12 pt”几乎肯定意味着 1/72 英寸的 12 个 PostScript 点。PDF、Word 以及自 1984 年以来制作的几乎所有软件都认为“点”就是这个意思。但 TeX 比这更古老,并且已经使用较小的“pt”超过四十年了。其他软件将 pt 称为 bp,表示“大点”。因此,您需要告诉文档类使用12bp,或 1/6"。

但是,标准 TeX 类不允许您这样做,因此您需要加载另一个包来更改大小:

\usepackage[fontsize=12bp]{scrextend}

您没有提供荷兰考试风格的样本,但意图可能是使字母 x 在文本和数学模式下的高度相同,您可以使用 来实现Scale=MatchLowercase。如果大写字母应该对齐,请使用Scale=MatchUppercase。由于所有其他字体都应缩放到主字体,因此将其设为默认字体更简单:

\defaultfontfeatures{Scale=MatchLowercase}

接下来,指定“Times New Roman Mathtype”。由于没有这样的字体,我认为它指的是 Times New Roman,这是 Mathtype 程序所使用的字体。这是一个问题,因为 Mathtype 的数学符号和希腊字母来自 Symbol,而 Symbol 不使用标准编码。您必须替换另一种数学字体,例如 XITS 或 TeX Gyre Termes Math。

如果您在意 Times New Roman 与其他 Times 克隆字体之间的细微差别,那么有一种方法可以让您的数学字母使用 Times New Roman:选项range=\setmathfont请注意,某些系统仍保留 90 年代的旧版 Times New Roman 和 Arial,其中不包括希腊文。

这给我们留下了:

\documentclass[a4paper,addpoints]{exam}
\usepackage[fontsize=12bp]{scrextend}
\usepackage[dutch]{babel}
\usepackage{unicode-math}

\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont{Arial}[Scale=1.0]
\setsansfont{Arial}
\setmathfont{XITS Math}
%\setmathfont{Times New Roman}[range={up,"00-"FF}]
%\setmathfont{Times New Roman Italic}[range=it]
%\setmathfont{Times New Roman Bold}[range=bfup]
%\setmathfont{Times New Roman Bold Italic}[range=bfit]

\begin{document}\noindent
    This exam is in accordance with the format of the Dutch Final Central Exams.
        \begin{questions}
            \question
            This text is \emph{Arial (12 pt)}.\\
            The following should be \emph{Times New Roman Mathtype (13 pt)}:    
            \[a^2+b^2=c^2\]
            Note that also $x+y=z$ should be in \emph{Times New Roman Mathtype (13 pt)}.\\
            And some Greek: $\Alpha\Beta\alpha\beta\symup{\alpha\beta}$. % These commands work in unicode-math.
                \begin{parts}
                    \part[1000]
                    How is it done?
                \end{parts}
        \end{questions}
    End of the exam.    
\end{document}

您可以取消注释该\setmathfont命令来更改字体,这样您就可以:

Arial + Times New Roman 示例

答案2

我做了一个实验:

\documentclass[12pt]{article}
\usepackage{fontspec}

\setmainfont{Arial}
\newfontfamily{\stix}{STIX Two Text}

\begin{document}

A{\stix A}

\sbox0{A}\the\ht0

\sbox0{\stix A}\the\ht0

\end{document}

在此处输入图片描述

计算 8.58984/7.944 得出 1.081299(四舍五入到小数点后六位)。请注意,13/12=1.083333。

现在如果我这样做

\documentclass[12pt]{article}
\usepackage{fontspec}

\setmainfont{Arial}
\newfontfamily{\stix}{STIX Two Text}[Scale=1.081299]

\begin{document}

A{\stix A}

\sbox0{A}\the\ht0

\sbox0{\stix A}\the\ht0

\end{document}

我明白了

在此处输入图片描述

我猜想该规范的目的是使文本和数学具有相同的高度。

如果我在你的代码中实现它exam

\documentclass[12pt,a4paper,addpoints]{exam}

\usepackage{amsmath} 
\usepackage{amssymb}    
\usepackage[dutch]{babel}
\usepackage{unicode-math}

\setmainfont{Arial}
\setmathfont{STIX Two Math}[Scale=1.081299]

\begin{document}\noindent
    This exam is in accordance with the format of the Dutch Final Central Exams.
        \begin{questions}
            \question
            This text is \emph{Arial (12 pt)}.\\
            The following should be \emph{Times New Roman Mathtype (13 pt)}:    
            \[a^2+b^2=c^2\]
            Note that also $x+y=z$ should be in \emph{Times New Roman Mathtype (13 pt)}.
                \begin{parts}
                    \part[1000]
                    How is it done?
                \end{parts}
        \end{questions}
    End of the exam.    
\end{document}

在此处输入图片描述

为了完整性,以下是输出Scale=1.083333

在此处输入图片描述

您可以使用 TeX Gyre Termes Math,而不是 STIX Two Math。

相关内容