缩放字体大小 - 匹配文本字体(Comfortaa)和数学字体

缩放字体大小 - 匹配文本字体(Comfortaa)和数学字体

在开始之前,我想说明一下,我对 (La)TeX 的字体系统了解不多,而且觉得它非常混乱,文档也不是很齐全。我读过“fntguide”,但只给出了所有可用命令的简短示例,并没有详细解释其背后的规则。同样,我找到了字体规格unicode 数学有所欠缺(例如,\setmathfont在兼容的 OpenType 字体不可用时,unicode-math有一个range可以使用的选项,但只描述了半页,没有对其语法的全面概述)。我愿意学习,但在寻找任何详细的材料方面都遇到了严重困难。

如果这很重要的话,我正在使用 LuaLaTeX(TeX Live 2013)。

现在,回到实际问题:我很难让两种不同的文本和数学字体很好地协同工作。作为我的文本字体,我想使用康福特。但是,由于该字体似乎不能用作数学字体,因此我尝试寻找另一种合适的数学字体。请注意,我尝试创建的文档旨在用于“娱乐和游戏”之旅,因此预期效果与技术文档等不同。

我尝试使用 Iwona 作为数学字体。为了得到\mathbb,我使用了 Furier 中的相应符号 (如本问题所示)我的最小示例如下:

\documentclass{minimal}

\usepackage[math]{iwona}
\DeclareFontFamily{U}{futm}{}
\DeclareFontShape{U}{futm}{m}{n}{<-> fourier-bb}{}
\DeclareMathAlphabet{\mathbb}{U}{futm}{m}{n}

\usepackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Comfortaa}
\setsansfont{Comfortaa}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{amsmath}

\begin{document}
$a$a $x$x

$A$A $X$X

$0$0

$\mathbb{N}$N

\[\forall \varepsilon > 0\ \exists n_0 \in \mathbb{N} \text{ such that } \forall n > n_0: |a_n - a| < \varepsilon \Leftrightarrow a_n \text{ converges to } a\]
\end{document}

但是,字体大小不匹配: 字体大小不匹配 与 Comfortaa 相比,Iwona 和 Fourier 符号都太小了。

现在,我当然可以使用fontspec( \setmainfont[Scale=<factor>]{Comfortaa}) 缩小 Comfortaa,但如果我不想要较小的字母,而想放大,该怎么办?我也尝试过\DeclareMathSizes{t-size}{mt-size}{s-size}{ss-size}(例如关于如何缩放数学字体的问题),但由于某种原因,这根本没有任何效果。

我见过这个问题,但我的问题不是不能使用 Iwona,而是字体大小不对。

所以我找到了关于不同数学字体及其大小的问题并查看了*.fdIwona 的文件,对我的最小示例进行了如下修改:

\documentclass{minimal}

\usepackage[math]{iwona}
\DeclareFontFamily{U}{futm}{}
\DeclareFontShape{U}{futm}{m}{n}{<-> s*[1.15] fourier-bb}{}
\DeclareMathAlphabet{\mathbb}{U}{futm}{m}{n}

\DeclareFontFamily{OML}{iwona}{}
\DeclareFontShape{OML}{iwona}{m}{n}{<-> s*[1.15] rm-iwonar}{}
\DeclareFontShape{OML}{iwona}{m}{it}{<-> s*[1.15] mi-iwonari}{}
\DeclareFontShape{OML}{iwona}{b}{it}{<-> s*[1.15] mi-iwonabi}{}
\DeclareFontShape{OML}{iwona}{bc}{it}{<-> s*[1.15] mi-iwonacbi}{}
\DeclareFontShape{OML}{iwona}{ebc}{it}{<-> s*[1.15] mi-iwonachi}{}
\DeclareFontShape{OML}{iwona}{lc}{it}{<-> s*[1.15] mi-iwonacli}{}
\DeclareFontShape{OML}{iwona}{sbc}{it}{<-> s*[1.15] mi-iwonacmi}{}
\DeclareFontShape{OML}{iwona}{c}{it}{<-> s*[1.15] mi-iwonacri}{}
\DeclareFontShape{OML}{iwona}{eb}{it}{<-> s*[1.15] mi-iwonahi}{}
\DeclareFontShape{OML}{iwona}{l}{it}{<-> s*[1.15] mi-iwonali}{}
\DeclareFontShape{OML}{iwona}{sb}{it}{<-> s*[1.15] mi-iwonami}{}
\DeclareFontShape{OML}{iwona}{bx}{n}{<->ssub *[1.15] iwona/b/n}{}
\DeclareFontShape{OML}{iwona}{bx}{it}{<->ssub *[1.15] iwona/b/it}{}
\DeclareFontShape{OML}{iwona}{bx}{sc}{<->ssub *[1.15] iwona/b/sc}{}
\DeclareFontShape{OML}{iwona}{bx}{scit}{<->ssub *[1.15] iwona/b/scit}{}

\DeclareFontFamily{OMS}{iwona}{}
\DeclareFontShape{OMS}{iwona}{b}{n}{<-> s*[1.15] sy-iwonabz}{}
\DeclareFontShape{OMS}{iwona}{bc}{n}{<-> s*[1.15] sy-iwonacbz}{}
\DeclareFontShape{OMS}{iwona}{ebc}{n}{<-> s*[1.15] sy-iwonachz}{}
\DeclareFontShape{OMS}{iwona}{lc}{n}{<-> s*[1.15] sy-iwonaclz}{}
\DeclareFontShape{OMS}{iwona}{sbc}{n}{<-> s*[1.15] sy-iwonacmz}{}
\DeclareFontShape{OMS}{iwona}{c}{n}{<-> s*[1.15] sy-iwonacrz}{}
\DeclareFontShape{OMS}{iwona}{eb}{n}{<-> s*[1.15] sy-iwonahz}{}
\DeclareFontShape{OMS}{iwona}{l}{n}{<-> s*[1.15] sy-iwonalz}{}
\DeclareFontShape{OMS}{iwona}{sb}{n}{<-> s*[1.15] sy-iwonamz}{}
\DeclareFontShape{OMS}{iwona}{m}{n}{<-> s*[1.15] sy-iwonarz}{}
\DeclareFontShape{OMS}{iwona}{bx}{n}{<->ssub *[1.15] iwona/b/n}{}
\DeclareFontShape{OMS}{iwona}{bx}{it}{<->ssub *[1.15] iwona/b/it}{}
\DeclareFontShape{OMS}{iwona}{bx}{sc}{<->ssub *[1.15] iwona/b/sc}{}
\DeclareFontShape{OMS}{iwona}{bx}{scit}{<->ssub *[1.15] iwona/b/scit}{}

\DeclareFontFamily{OMX}{iwona}{}
\DeclareFontShape{OMX}{iwona}{b}{n}{<-> s*[1.15] ex-iwonab}{}
\DeclareFontShape{OMX}{iwona}{bc}{n}{<-> s*[1.15] ex-iwonacb}{}
\DeclareFontShape{OMX}{iwona}{ebc}{n}{<-> s*[1.15] ex-iwonach}{}
\DeclareFontShape{OMX}{iwona}{lc}{n}{<-> s*[1.15] ex-iwonacl}{}
\DeclareFontShape{OMX}{iwona}{sbc}{n}{<-> s*[1.15] ex-iwonacm}{}
\DeclareFontShape{OMX}{iwona}{c}{n}{<-> s*[1.15] ex-iwonacr}{}
\DeclareFontShape{OMX}{iwona}{eb}{n}{<-> s*[1.15] ex-iwonah}{}
\DeclareFontShape{OMX}{iwona}{l}{n}{<-> s*[1.15] ex-iwonal}{}
\DeclareFontShape{OMX}{iwona}{sb}{n}{<-> s*[1.15] ex-iwonam}{}
\DeclareFontShape{OMX}{iwona}{m}{n}{<-> s*[1.15] ex-iwonar}{}
\DeclareFontShape{OMX}{iwona}{bx}{n}{<->ssub *[1.15] iwona/b/n}{}
\DeclareFontShape{OMX}{iwona}{bx}{it}{<->ssub *[1.15] iwona/b/it}{}
\DeclareFontShape{OMX}{iwona}{bx}{sc}{<->ssub *[1.15] iwona/b/sc}{}
\DeclareFontShape{OMX}{iwona}{bx}{scit}{<->ssub *[1.15] iwona/b/scit}{}

\usepackage[no-math]{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Comfortaa}
\setsansfont{Comfortaa}
\usepackage{polyglossia}
\setmainlanguage{english}
\usepackage{amsmath}

\begin{document}
$a$a $x$x

$A$A $X$X

$0$0

$\mathbb{N}$N

\[\forall \varepsilon > 0\ \exists n_0 \in \mathbb{N} \text{ such that } \forall n > n_0: |a_n - a| < \varepsilon \Leftrightarrow a_n \text{ converges to } a\]
\end{document}

结果如下: 第二次尝试 现在,效果已经足够好了,但由于某种原因,数字没有按比例缩放,而其他字形却按比例缩放。

现在我的问题是

  1. 如果有比我用过的更好的方法来扩展 Iwona,
  2. 为什么数字没有按比例缩放以及如何按比例缩放,
  3. 如果有更好的字体我可以用 Comfortaa 来做数学题。

关于这个问题的最后一点说明:我不只是想找到一个实用的解决方案,我还想更多地了解 LaTeX 的字体系统 - 例如,如何缩放任意字体?

相关内容