我必须制作一个最初用 LuaLaTeX 编写的文档,使其兼容 pdfLaTeX 和 LuaLaTeX。除了字体不同之外,其他一切都正常。如何强制 pdfLaTeX/fontenc 使用与 fontspec 相同的字体?
最小示例(省略 ifluatex 以避免混乱):
\documentclass[fontsize=11pt]{scrreprt}
% \usepackage{fontspec}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\begin{document}
\chapter{Chapter}
\section{Section}
Text with some formulas: $a=1$.
\end{document}
通过使用lmodern
,文本的字体看起来几乎一致,但数学字体有所不同:
# pdffonts output for pdflatex with lmodern, fontenc and inputenc:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
ZGMFNK+LMSans10-Bold Type 1 Custom yes yes no 4 0
YIMXCY+LMRoman10-Regular Type 1 Custom yes yes no 5 0
GXEVRM+LMMathItalic10-Regular Type 1 Custom yes yes no 6 0
YIMXCY+LMRoman10-Regular Type 1 Custom yes yes no 7 0
# pdffonts output for lualatex with fontspec:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
SSPBGH+LMSans10-Bold CID Type 0C Identity-H yes yes yes 4 0
XXBUAG+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 5 0
EDWHGC+CMMI10 Type 1 Builtin yes yes no 6 0
HVZLMP+CMR10 Type 1 Builtin yes yes no 7 0
因此,类型和编码以及数学字体都不同。
答案1
不可能为 LuaTeX 和 pdfTeX 获取相同的字体编码,原因很简单,LuaTeX使用 OpenType 字体,而 pdfTeX 使用 Type 1 字体。不过,通过将选项传递给fontspec
,可以获取相同的数学字体。nomath
lmodern
如果你使用的是 2018 版 LaTeX,你可以删除\usepackage[utf8]{inputenc}
因为UTF-8 现在是标准编码。
\documentclass[fontsize=11pt]{scrreprt}
\ifdefined\directlua
\usepackage{fontspec}
\else
\usepackage[T1]{fontenc}
\usepackage[nomath]{lmodern}
\fi
\begin{document}
\chapter{Chapter}
\section{Section}
Text with some formulas: $a=1$.
\end{document}
运行pdflatex
我得到这个
$ pdflatex test.tex
$ pdffonts test.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
ZGMFNK+LMSans10-Bold Type 1 Custom yes yes no 4 0
KOIJYY+LMRoman10-Regular Type 1 Custom yes yes no 5 0
EDWHGC+CMMI10 Type 1 Builtin yes yes no 6 0
HVZLMP+CMR10 Type 1 Builtin yes yes no 7 0
运行lualatex
我得到这个
$ lualatex test.tex
$ pdffonts test.pdf
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
SSPBGH+LMSans10-Bold CID Type 0C Identity-H yes yes yes 4 0
HXVMKT+LMRoman10-Regular CID Type 0C Identity-H yes yes yes 5 0
EDWHGC+CMMI10 Type 1 Builtin yes yes no 6 0
HVZLMP+CMR10 Type 1 Builtin yes yes no 7 0