如何使用 mlmodern 字体编译 pgfmanual?

如何使用 mlmodern 字体编译 pgfmanual?

我只想要一个 pgf/Ti 版本Z 手册使用更粗的mlmodern字体而不是原始lm字体。为了实现这一点,我从 git 克隆了 pgf repo,在文件中的和包mlmodern之后加载了包,并使用在更新的(今天)版本的 上编译了它。和包已经在代码中加载了。它编译了很长时间并生成了一个 pdf,但我在 pdf 中看不到字体。编译后的 pdf 也不正确;我找不到用于代码的等宽字体。如果需要,我可以分享日志文件。amsmathamssymbpgfmanual-en-main-preamble.texTeX Livel3build doc -q -Hamsmathamssymbmlmodern

如何用 PGF 手册中的 mlmodern 字体替换 lm 字体?

答案1

强制使用以便与 LuaTeX 协同工作\usepackage[T1]{fontenc}mlmodern

从目前 pgf GitHub 存储库中的第 158 到 180 行pgfmanual-en-main-preamble.tex来看,

\ifluatex
%  \usepackage[no-math]{fontspec}
%  \usepackage{luatextra}

  % TT: I have commented luatextra since it loads fontspec, which
  % currently breaks "$\mathrm{\Omega}$" (nothing is
  % shown). Also, fontspec loads so much stuff, I'm not really sure
  % any of it is needed...

  % \filedescription is defined in expl3, required by fontspec,
  % required by luatextra. Needs to be \relaxed since
  % pgfmanual-en-macros.tex defines an environment named filedescription
  \let\filedescription\relax
  \usepackage[utf8]{luainputenc}
  % dvisvgm does not support OpenType fonts so we have to bite the bullet and
  % use T1 where quotes are weird.  In LuaTeX \outputmode=0 means DVI.
  \ifnum\outputmode=0
    \usepackage[T1]{fontenc}
  \fi
\else
  \usepackage[utf8]{inputenc}
  \usepackage[T1]{fontenc}
\fi

手动构建lualatex默认使用。所以我们输入条件的第一个分支。注释表明LuaTeX \outputmode=0 means DVI,和lualatex通常会生成 PDF,所以我们跳过条件\ifnum,和\usepackage[T1]{fontenc}永远不会插入,但它是mlmodernLuaTeX 中工作所必需的。因此,您可以添加

\usepackage[T1]{fontenc}
\usepackage{mlmodern}

在上面外层\iflatex ... \else ... \fi块之后。注释还建议quotes are weird使用T1LuaTeX。我对 LuaTeX 没有太多经验,但以这种方式编译,我没有发现普通的 有什么问题``quotations'',并且在浏览手册后没有发现任何明显的瑕疵。

相关内容