自由放纵套餐

自由放纵套餐

因此,在过去几周中,我遇到了一些与 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'.

当我忽略它时,输出似乎很好: Linux 浪子

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.

并显示以下输出:

不是Linux Libertine

答案1

Linux Libertine 字体最近在 TeX Live 中从 切换libertine-legacylibertine-type1。这导致许多文档无法再使用,尤其是旧式图形。

自由放纵套餐

最新版本中默认使用旧式图形,因此只需使用:
\usepackage{libertine}\usepackage[oldstyle]{libertine}

osf 选项不起作用似乎是一个错误,因为他们在文档(nf 也坏了)

如果您不想要旧式数字,请使用:\usepackage[lining]{libertine}

选项oldstylelining无法与旧软件包配合使用- 所以 osf 和 nf 损坏有点可惜。截至(至少)2012-10-30再次libertine支持osfnf

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:

乱数假文,2012

使用 TeX Live 2009:

乱数假文,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,运行mktexlsrtexhashupdmap-sys enable Map libertine.map,该包必须可以工作。

自 2013 年 5 月起,Texlive 已冻结,因此上述功能运行良好。

相关内容