我正在尝试创建一个最小lualatex
分布,因此尝试尽可能多地消除非 OTF 字体(我尝试摆脱.afm
、、.pfb
等.map
文件以节省空间)。
所有内容(几乎)都可以用于文本,但是我在数学和字体方面遇到了麻烦Kurier
(可能还有其他我还没有测试过的东西)。
以下 MWE 与kurier.sty
Type 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}
但以下使用 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}
括号内的内容打印正确Kurier Light
,但无法与\left
和 一起缩放\right
。
这是我的两个问题:
- 是否可以使用 OTF 字体缩放它们,或者只能使用 Type1 来完成?如何操作?
- 除了牙套除垢之外,我还可能忘记处理哪些事情?
答案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.
并且它们之间的本质区别仅在于所用语言的种类。
pdflatex
和lualatex
(无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}