像 unicode-math 一样呈现的文档,反之亦然?

像 unicode-math 一样呈现的文档,反之亦然?

对于某些自动化测试,我需要一个以完全相同的方式呈现简单数学的文档,一个有unicode-math,一个没有。下标不同的问题目前正在阻止这种情况发生。

您能帮我设置两个文档,使之$a_b$看起来简单到 100% 相同吗?

也许这可以通过使用存在两种变体的数学字体来实现。

\documentclass{minimal}
\begin{document}
  $a_b$
\end{document}

\documentclass{minimal}
\usepackage{unicode-math}
\begin{document}
  $a_b$
\end{document}

答案1

如果您使用 unicode-math,那么您正在使用不同的字体和不同的布局引擎(Unicode Math 字体和经典 Tex 数学字体的设置非常不同)但是,如果您对两者都使用拉丁现代字体,您可以预期字形相似,并且您应该能够使指标相似。

XeTeX 根据 OpenType 数学字体表设置字体参数,但我不知道如何稍后更改这些值(您可以更改 fontdimen 设置但它们没有效果)但是您可以将 PDFtex 设置为匹配 xetex。

在此处输入图片描述

a.pdf是 pdftex 和b.pdftexxetex 生成的

pdflatex --jobname=a file
 xelatex --jobname=b file

哪里file.tex

\documentclass{article}
\ifx\Umathchar\undefined
\usepackage{lmodern}
\else
\usepackage{unicode-math}
\fi
\begin{document}

\showoutput
\sbox0{$x$}

\ifx\Umathchar\undefined

\fontdimen16\textfont2=2.47pt
\else

\fi



  $a_b$
\end{document}

xetex 显示

....\TU/latinmodern-math.otf(1)/m/n/10 glyph#1296
....\hbox(4.86658+0.07013)x4.0202, shifted 2.47003
.....\TU/latinmodern-math.otf(1)/m/n/7.01236 glyph#1405

默认情况下,pdftex 会进一步降低下标,但通过设置 fontdimen 16 t0 2.47pt 您会得到:

....\OML/lmm/m/it/10 a
....\hbox(4.8611+0.0)x4.01666, shifted 2.47
.....\OML/lmm/m/it/7 b

看起来差不多一样......

相关内容