使用 modern-designsize-virtual typescript

使用 modern-designsize-virtual typescript

我经常使用 TeX 等排版公式。最近我注意到 ConTeXt 和普通 TeX 之间存在差异。

\starttext
\startformula
\int\nolimits_a^bf(x)dx=F(b)-F(a)
\stopformula
\stoptext 

ConTeXt 生成的结果

Formulas in ConTeXt

$$\int_a^bf(x)dx=F(b)-F(a)$$
\bye

LuaTex 生成的结果

Formulas in Plain TeX

既然 ConTeXt 使用 LuaTeX 作为引擎,为什么我会得到不同的输出?在我看来,纯 TeX 生成的公式更漂亮。

LuaTeX 中加载的字体

d:\typeset>luatex formulas.tex luatex formulas.tex 这是 LuaTeX,版本 beta-0.77.0-2013041621 (rev 4633) 已启用 \write18。 (./formulas.tex(d:/context/tex/texmf-context/tex/generic/context/luatex/luatex-basics.tex)(d:/context/tex/texmf-context/tex/generic/context/luatex/luatex-fonts.tex(使用缓存:d:/context/tex/texmf-cache/luatex-cache/generic))(d:/context/texmf-context/tex/generic/context/luatex/luatex-languages.tex)(d:/context/tex/texmf-context/tex/generic/context/luatex/luatex-mplib.tex)[1{d:/context/tex/texmf/fonts/map/pdftex/plain/pdftex.map}] ){d:/context/tex/texmf/fonts/enc/dvips/lm/lm-mathsy.enc}{d:/context/tex/texmf/fonts/enc/dvips/lm/lm-rep-cmrm.enc}{d:/cont ext/tex/texmf/fonts/enc/dvips/lm/lm-mathit.enc}{d:/context/tex/texmf/fonts/enc/dvips/lm/lm-mathex.enc} 输出写在 formulas.pdf 上 (1 页,33366 字节)。 抄录写在 formulas.log 上。

使用 modern-designsize-virtual typescript

\usetypescript[modern-designsize-virtual]
\setupbodyfont[modern-designsize-virtual,rm,10pt]
\starttext
\startformula
\int\nolimits_a^bf(x)dx=F(b)-F(a)
\stopformula
\stoptext

输出(使用modern-designsize-virtual打字稿时):

modern-designsize-virtual

输出(在独立上下文中使用普通 luatex 时)

Formulas in Plain TeX

还是有区别的 :-(

d:\typeset>pdffonts.exe context.pdf
pdffonts.exe context.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
JFRMQG+LMRoman10-Regular             CID Type 0C       yes yes yes     18  0
APMHZE+LMMathExtension10-Regular     Type 1            yes yes no      19  0
AWBTPY+LMMathItalic7-Regular         Type 1            yes yes no      20  0
ITITNI+LMMathItalic10-Regular        Type 1            yes yes no      21  0
JZHWIZ+LMRoman10-Regular             CID Type 0C       yes yes yes     22  0
MGKPYK+LMMathSymbols10-Regular       Type 1            yes yes no      23  0

d:\typeset>pdffonts.exe plain.pdf
pdffonts.exe plain.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
APMHZE+LMMathExtension10-Regular     Type 1            yes yes no       4  0
AWBTPY+LMMathItalic7-Regular         Type 1            yes yes no       5  0
ITITNI+LMMathItalic10-Regular        Type 1            yes yes no       6  0
DMNVHT+LMRoman10-Regular             Type 1            yes yes no       7  0
MGKPYK+LMMathSymbols10-Regular       Type 1            yes yes no       8  0

答案1

使用 ConTeXt 和纯 TeX(使用 ConTeXt 独立版中的 LuaTeX)生成的 PDF 文件使用不同的字体或至少是 Latin Modern 的不同变体。以下是 的输出pdffonts

pdffonts context.pdf

name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
OLAZTU+LMRoman12-Regular             CID Type 0C       yes yes yes     18  0
RXHAAY+LatinModernMath-Regular       CID Type 0C       yes yes yes     19  0
JTHTZJ+LatinModernMath-Regular       CID Type 0C       yes yes yes     20  0

pdffonts plain.pdf

name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
APMHZE+LMMathExtension10-Regular     Type 1            yes yes no       4  0
AWBTPY+LMMathItalic7-Regular         Type 1            yes yes no       5  0
ITITNI+LMMathItalic10-Regular        Type 1            yes yes no       6  0
DMNVHT+LMRoman10-Regular             Type 1            yes yes no       7  0
MGKPYK+LMMathSymbols10-Regular       Type 1            yes yes no       8  0

这解释了略有不同的视觉外观。为了在 ConTeXt 中使用相同的字体,请使用\setupbodyfont[modern-designsize-virtual]

\setupbodyfont [modern-designsize-virtual]
\starttext
  \startformula
    \int\nolimits_a^bf(x)dx=F(b)-F(a)
  \stopformula
\stoptext

答案2

如果你将示例修改为如下形式

\starttext
\tracingoutput1
\showboxbreadth\maxdimen
\showboxdepth\maxdimen
\errorstopmode
\startformula
\int\nolimits_a^bf(x)dx=F(b)-F(a)
\stopformula
\stoptext 

\tracingoutput1
\showboxbreadth\maxdimen
\showboxdepth\maxdimen
\errorstopmode
$$\int_a^bf(x)dx=F(b)-F(a)$$
\bye

您会发现它们使用不同的字体和不同的字符。Plain (pdf)tex 当然使用计算机现代数学斜体和相关字体,例如 x 是 x:

...\tenrm (
...\teni x
...\tenrm )

上下文使用拉丁现代和 Unicode 数学字母块中的数学斜体

...................\3>modern-designsize-12pt-mm-mb--1 (
...................\3>modern-designsize-12pt-mm-mb--1 

相关内容