如何使用 Libertine 和 PDFLaTeX 获取连字和锁字?

如何使用 Libertine 和 PDFLaTeX 获取连字和锁字?

我想:

  • 我的文档将以 Libertine(或 Libertinus)字体呈现,并启用所有默认连字(包括(英文):
  • 在文本中直接使用 guillemets (»«) 和其他特殊字符;
  • 那些 guillemet 能够被正确呈现(而不是像一些调整大小后的 ≪ 那样);
  • 使用 PDFLaTeX 编译我的文档。

我对此的最佳尝试是:

\documentclass[border=3pt]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[OT1]{fontenc}
\usepackage{libertine}

\begin{document}
»Thesaurus frisst Quastenflosser!«
\end{document}

这会产生所需的结果,除了使用假的 guillemets 而不是 Libertine 的:

上述来源的产品

我想要的是:

目标

我怎样才能实现这个目标? 我尝试了不同的选项组合(例如T1fontenc或禁用它,但babel无济于事。

有几个类似的问题,但解决方案都使用了 guillemets 或 XeLaTeX 的宏,我很清楚这些宏,但不能或不想使用。

答案1

遗憾的是,T1使用 时,编码和 Libertine 连字不能协同工作pdftex。使用OT1编码将为您提供漂亮的连字,但会抑制连字符并破坏包含变音符号或 的任何单词的字距调整ß,并阻止在最终 PDF 文档中复制/粘贴或搜索文本的任何可能性。还请注意,并非所有自动连字都有意义,您可能需要手动破坏其中一些:例如,OT1Libertine 有一个“脸书“大多数情况下,连字符都是不需要的。

话虽如此,实现你想要的目标还是相对容易的,

\documentclass{article}

% \usepackage[OT1]{fontenc} % is the default anyway
\usepackage[utf8]{inputenc} % not really necessary since 2018
\usepackage{libertine}

\usepackage[ngerman]{babel}

\usepackage{newunicodechar}
\newunicodechar{»}{{\fontencoding{T1}\selectfont\guillemotright}}
\newunicodechar{«}{{\fontencoding{T1}\selectfont\guillemotleft}}

\begin{document}

»Thesaurus frisst Quastenflosser!«

\end{document}

将给出所需的输出

在此处输入图片描述

但是,我必须再次指出,在用德语书写时,使用编码字体的缺点OT1非常多。由于我不认为ThQu连字符在普通文本中如此常见,所以我宁愿使用T1编码并为所需的连字符定义一个宏,例如

\newcommand*{\Qu}{{\fontencoding{OT1}\selectfont Qu}}

相关内容