unicode-math 和括号缩放

unicode-math 和括号缩放

我正在尝试创建一个最小lualatex分布,因此尝试尽可能多地消除非 OTF 字体(我尝试摆脱.afm、、.pfb.map文件以节省空间)。

所有内容(几乎)都可以用于文本,但是我在数学和字体方面遇到了麻烦Kurier(可能还有其他我还没有测试过的东西)。

以下 MWE 与kurier.styType 1 字体完美兼容:

% !TEX program = lualatex
\documentclass{minimal}
\usepackage[light,math]{kurier}
\begin{document}
\[ e=\lim_{n \to \infty} \left(1+\frac{1}{n}\right)^n \]
\end{document}

带有 <code>kurier</code> 和 T1 字体的 MWE

但以下使用 OTF 字体时却unicode-math不行:

% !TEX program = lualatex
\documentclass{minimal}
\usepackage{unicode-math}
\setmathfont{Kurier Light Regular}
\setmathfont[range=\mathit,\mathsfit]{Kurier Light Italic}
\setmathfont[range=\mathbfup,\mathbfsfup]{Kurier Bold}
\setmathfont[range=\mathbfit,\mathbfsfit]{Kurier Bold Italic}
\begin{document}
\[ e=\lim_{n \to \infty} \left(1+\frac{1}{n}\right)^n \]
\end{document}

带有 <code>unicode-math</code> 和 OTF 字体的 MWE

括号内的内容打印正确Kurier Light,但无法与\left和 一起缩放\right

这是我的两个问题:

  1. 是否可以使用 OTF 字体缩放它们,或者只能使用 Type1 来完成?如何操作?
  2. 除了牙套除垢之外,我还可能忘记处理哪些事情?

答案1

LuaTeX(和 XeTeX)支持两种类型的数学字体:使用 TFM 文件的传统 TeX 数学字体和新的 OpenType 数学字体。

使用 TFM 字体,TeX 进行正确数学排版所需的所有参数和其他特殊属性都存储在 TFM 文件中,这就是包所加载的内容,kurier因此您可以通过它获得正确的输出。

OpenType math 是 OpenType 的一个新扩展,它将所有数学参数和属性存储在 OpenType 字体本身中,这就是您想要使用unicode-math包的内容。Kurier 的 OpenType 版本不提供 OpenType 数学字体,只提供常规文本字体。

答案2

如果不加载fontspec,LuaLaTeX 中的字体管理与 完全相同pdflatex。 第一次运行示例的终端输出lualatex

This is LuaTeX, Version beta-0.70.1-2011062107 (rev 4277) 
 restricted \write18 enabled.
(./xavier.tex
LaTeX2e <2011/06/27>
LuaTeX adaptation of babel <v3.8l-luatex-1.5> and hyphenation patterns for engl
ish, dumylang, nohyphenation, loaded.
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/minimal.cls
Document Class: minimal 2001/05/25 Standard LaTeX minimal class
) (/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/kurier.sty)
(./xavier.aux)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/ot1kurierl.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/ot1kurierlm.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/omlkurierl.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/omskurierl.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/omxkurierl.fd) [1{/usr/loc
al/texlive/2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./xavier.aux) )

 237 words of node memory still in use:
   2 hlist, 1 vlist, 1 rule, 2 glue, 33 glue_spec, 1 write nodes
   avail lists: 2:13,3:21,4:33,5:5,6:22,7:2,9:22
{/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/kurier/ex-kurier.enc}{/usr/
local/texlive/2011/texmf-dist/fonts/enc/dvips/kurier/sy-kurier.enc}{/usr/local/
texlive/2011/texmf-dist/fonts/enc/dvips/kurier/rm-kurier.enc}{/usr/local/texliv
e/2011/texmf-dist/fonts/enc/dvips/kurier/mi-kurier.enc}</usr/local/texlive/2011
/texmf-dist/fonts/type1/nowacki/kurier/kurierl.pfb></usr/local/texlive/2011/tex
mf-dist/fonts/type1/nowacki/kurier/kurierli.pfb>
Output written on xavier.pdf (1 page, 35690 bytes).
Transcript written on xavier.log.

而与pdflatex

This is pdfTeX, Version 3.1415926-2.3-1.40.12 (TeX Live 2011)
 restricted \write18 enabled.
entering extended mode
(./xavier.tex
LaTeX2e <2011/06/27>
Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
h, french, friulan, galician, german, ngerman, swissgerman, monogreek, greek, h
ungarian, icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, ma
rathi, oriya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, 
kurmanji, lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nyn
orsk, polish, portuguese, romanian, romansh, russian, sanskrit, serbian, serbia
nc, slovak, slovenian, spanish, swedish, turkish, turkmen, ukrainian, uppersorb
ian, welsh, loaded.
(/usr/local/texlive/2011/texmf-dist/tex/latex/base/minimal.cls
Document Class: minimal 2001/05/25 Standard LaTeX minimal class
) (/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/kurier.sty)
(./xavier.aux)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/ot1kurierl.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/ot1kurierlm.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/omlkurierl.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/omskurierl.fd)
(/usr/local/texlive/2011/texmf-dist/tex/latex/kurier/omxkurierl.fd) [1{/usr/loc
al/texlive/2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./xavier.aux) )
{/usr/local/texlive/2011/texmf-dist/fonts/enc/dvips/kurier/ex-kurier.enc}{/usr/
local/texlive/2011/texmf-dist/fonts/enc/dvips/kurier/sy-kurier.enc}{/usr/local/
texlive/2011/texmf-dist/fonts/enc/dvips/kurier/rm-kurier.enc}{/usr/local/texliv
e/2011/texmf-dist/fonts/enc/dvips/kurier/mi-kurier.enc}</usr/local/texlive/2011
/texmf-dist/fonts/type1/nowacki/kurier/kurierl.pfb></usr/local/texlive/2011/tex
mf-dist/fonts/type1/nowacki/kurier/kurierli.pfb>
Output written on xavier.pdf (1 page, 35805 bytes).
Transcript written on xavier.log.

并且它们之间的本质区别仅在于所用语言的种类。

pdflatexlualatex(无fontspec使用 OpenType 字体,但只使用 Type1 字体,数学使用 OMS、OML 和 OMX 编码字体,依赖.tfm文件获取有关字形和括号等可扩展字符的信息。在此特定情况下,OMS、OML、OMX 和 OT1 的 Type1 字体都位于两个.pfb文件中kurier.pfb,并且kurierli.pfb各种字形是通过重新编码选择的,文件加载时会清楚地显示这一点

ex-kurier.enc
sy-kurier.enc
rm-kurier.enc
mi-kurier.enc

OpenType 字体 Kurier Light没有具有数学字形和数学表,可能可供使用。 在其开发人员添加对 Unicode Math 的支持之前,OpenType Kurier 字体无法以可靠的方式unicode-math用作参数。\setmathfont

答案3

如果你不介意将语法更改为包的语法scalerel,你可以缩放括号

% !TEX program = lualatex
\documentclass{minimal}
\usepackage{scalerel}
\usepackage{unicode-math}
\setmathfont{Kurier Light Regular}
%\setmathfont[range=\mathit,\mathsfit]{Kurier Light Italic}
%\setmathfont[range=\mathbfup,\mathbfsfup]{Kurier Bold}
%\setmathfont[range=\mathbfit,\mathbfsfit]{Kurier Bold Italic}
\begin{document}
New:
\[ e=\lim_{n \to \infty} {\scaleleftright[0.8ex]{(}{1+\frac{1}{n}}{)}}^n \]

Original:
\[ e=\lim_{n \to \infty} \left(1+\frac{1}{n}\right)^n \]
\end{document}

在此处输入图片描述

相关内容