\renewcommand*{\rmdefault}{fxlj} 到底起什么作用?

\renewcommand*{\rmdefault}{fxlj} 到底起什么作用?

我正在写一份几百页的文档,注意到一些故障使用我使用的选定字体。我使用的是我所在机构提供的模板。我选择的字体是libertine

这是我能分解的最小值在职的Libertine 的实际示例:

\documentclass{article}
  \usepackage{libertine}
\begin{document}
   \noindent This text is \textbf{bold}.
   \section{Minimal working example}
   This text \textit{isn't}.
\end{document}

但是,现在我的模板的类定义文件是否包含另一个我无法理解的语句,并且 - 破坏了与字体相关的所有内容:

  \renewcommand*{\rmdefault}{fxlj}

这会导致默认字体重置为罗马,这不是我想要的。有时字体不是默认的 Roman,而是 Libertine。但是,粗体和斜体 Libertine 不再起作用。

这是最基本的不工作我想到的例子是:

\documentclass{article}
  \usepackage{libertine}
  \renewcommand*{\rmdefault}{fxlj}
\begin{document}
   \noindent This text is \textbf{bold}.
   \section{Minimal not working example}
   This text \textit{isn't}.
\end{document}

现在,我想了解该\renewcommand*{\rmdefault}{fxlj}命令到底做了什么,以及——重要的是——它的意图是什么。简单地删除它似乎可以解决我的问题,但我不能这样做,除非我理解含义。

答案1

这是在文档而不是包中使用低级命令的结果。

编译文档时,您会收到警告

LaTeX Font Warning: Font shape `OT1/fxlj/m/n' undefined
(Font)              using `OT1/cmr/m/n' instead on input line 4.


LaTeX Font Warning: Font shape `OT1/fxlj/b/n' undefined
(Font)              using `OT1/fxlj/m/n' instead on input line 5.


LaTeX Font Warning: Font shape `OT1/fxlj/m/it' undefined
(Font)              using `OT1/fxlj/m/n' instead on input line 7.

第一个警告告诉您,该系列fxlj不对应.fdOT1 编码的文件,因此将使用标准cmr系列进行默认替换。如果不考虑 LaTeX 已经决定将其fxlj变为的事实cmr,其他两个警告可能会产生误导。

命名方案建议fxlj使用旧式数字(尾随)指向 Linux Libertine j,但该系列名称已随时间而改变。如今,Linux Libertine 的字体系列被称为

LinuxLibertineT-<suffix>

后缀可以是

TLF
TOsF
LF
OsF

其中LF代表“线条数字”,OsF代表“老式数字”;T代表“表格数字”,如果不存在则表示使用比例数字。

因此,使用 Linux Libertine 时,直接设置家族名称不是一个好主意:最好使用更高级别的调用:

\usepackage[
  %tabular,
  %proportional,
  %lining,
  %oldstyle,
]{libertine}

取消注释您需要的键。

相关内容