因此,在过去几周中,我遇到了一些与 Linux Libertine 字体和软件包有关的问题,它们似乎都无法在完全最新版本的 MacTeX(相当于 TeX Live 2012)上运行。这些问题不会出现在运行 TeX Live 2009 的 Ubuntu 12.04 机器上;我经常在这两台计算机上工作,因此如果有任何解决方案可以在两个系统上运行就太好了。
我正在用 编译我的文件pdflatex
。
由于我有两个问题(一个与包有关,一个与字体本身有关),我将把这个问题分成两部分。
自由放纵套餐
我一直libertine
像这样使用这个包:
\documentclass{article}
\usepackage[osf]{libertine}
\usepackage[T1]{fontenc}
\begin{document}
The quick brown fox jumps over the sleazy dog, 0123456789.
\end{document}
然而,这给了我以下警告和错误:
LaTeX Warning: You have requested package `libertine-type1',
but the package provides `LinuxLibertineO'.
! LaTeX Error: Unknown option `osf' for package `libertine-type1'.
当我忽略它时,输出似乎很好:
Libertine 字体
我也一直在其他文档中直接使用这种字体,例如这个(参见如何在文档中的一小部分文本中使用特定字体?):
\documentclass{article}
\usepackage[T1]{fontenc}
\begin{document}
\fontfamily{fxlj}\selectfont
The quick brown fox jumps over the sleazy dog, 0123456789.
\end{document}
这将给出以下警告:
LaTeX Font Warning: Font shape `OT1/fxlj/m/n' undefined
(Font) using `OT1/cmr/m/n' instead on input line 3.
并显示以下输出:
答案1
Linux Libertine 字体最近在 TeX Live 中从 切换libertine-legacy
到libertine-type1
。这导致许多文档无法再使用,尤其是旧式图形。
自由放纵套餐
最新版本中默认使用旧式图形,因此只需使用:
\usepackage{libertine}
或\usepackage[oldstyle]{libertine}
。
osf 选项不起作用似乎是一个错误,因为他们在文档(nf 也坏了)。
如果您不想要旧式数字,请使用:\usepackage[lining]{libertine}
选项oldstyle
和lining
无法与旧软件包配合使用- 所以 osf 和 nf 损坏有点可惜。截至(至少)2012-10-30再次libertine
支持osf
和nf
。
Libertine 字体
软件包和字体名称已经改变,现在您可以使用下列之一:
\fontfamily{LinuxLibertineO-OsF}\selectfont
\fontfamily{LinuxLibertineO-LF}\selectfont
第一种是针对老式图形的。请记住:您应该始终导入字体附带的包,即使您只在标题中使用它。如果不这样做,您可能必须手动选择字体粗细和形状(在字体系列之后),方法是:
\fontseries{m} % Choose from m (medium), b (bold) and sb (semibold)
\fontshape{i} % Choose from n (normal), it (italic) and sc (small-caps)
还有更多形状,其余的列在文档。
兼容性
如果您想让您的文档在 TeX Live 2012 和 2009 上都能运行,我建议为其定义一个命令:
\IfFileExists{libertine-type1.sty}{ % Check for libertine-type1 package
\newcommand\libertine{LinuxLibertineO-OsF}
}{
\newcommand\libertine{fxlj}
}
并在您的文档中使用以下内容:
\fontfamily{\libertine}\selectfont
如果您想要向libertine
包中添加选项,您可以按照相同的方式进行操作:
\IfFileExists{libertine-type1.sty}{ % Check for libertine-type1 package
\usepackage[oldstyle]{libertine}
}{
\usepackage[osf]{libertine}
}
这适用于旧包和新包。很高兴知道新libertine
包也能\usepackage[T1]{fontenc}
为您完成这些工作。
例子
在下面的例子中,我尝试尽可能地应用:
\documentclass{article}
\usepackage{lipsum} % For dummy text
\IfFileExists{libertine-type1.sty}{ % Check for libertine-type1 package
\newcommand\libertine{LinuxLibertineO-OsF}
\usepackage[oldstyle]{libertine}
}{
\newcommand\libertine{fxlj}
\usepackage[osf]{libertine}
\usepackage[T1]{fontenc}
}
\begin{document}
\section{\fontfamily{\libertine}\fontseries{b}\fontshape{sc}\selectfont Lorem ipsum dolor sit amet}
\lipsum[2]
\end{document}
使用 MacTeX 2012:
使用 TeX Live 2009:
虽然不完全相同,但是可以接受。
答案2
我更喜欢安装这个包libertine-legacy
到本地 TDS 目录中。由于我使用 texlive,因此我将包从 CTAN 安装到 TEXMFHOME,并遵循以下建议:http://www.tug.org/pipermail/tex-live/2012-October/032462.html。
这并不像看上去那么简单。我必须通过 updmap 启用地图 libertine.map。尽管我多次尝试运行 texhash,但 kpsewhich 仍拒绝找到 libertine.sty。
但是,它还是有用的,我会继续使用它,直到 luatex 成为标准。但 LuaTeX 似乎不再开发了。上一个版本已经快 18 个月了。让我们面对现实吧:LuaTeX 的未来是不确定的。
答案3
只要你下载并解压包http://www.ctan.org/tex-archive/fonts/libertine到您的本地树,然后tlmgr update --all
,运行mktexlsr
或texhash
和updmap-sys enable Map libertine.map
,该包必须可以工作。
自 2013 年 5 月起,Texlive 已冻结,因此上述功能运行良好。