我想:
- 我的文档将以 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 的:
我想要的是:
我怎样才能实现这个目标?
我尝试了不同的选项组合(例如T1
)fontenc
或禁用它,但babel
无济于事。
有几个类似的问题,但解决方案都使用了 guillemets 或 XeLaTeX 的宏,我很清楚这些宏,但不能或不想使用。
答案1
遗憾的是,T1
使用 时,编码和 Libertine 连字不能协同工作pdftex
。使用OT1
编码将为您提供漂亮的连字,但会抑制连字符并破坏包含变音符号或 的任何单词的字距调整ß
,并阻止在最终 PDF 文档中复制/粘贴或搜索文本的任何可能性。还请注意,并非所有自动连字都有意义,您可能需要手动破坏其中一些:例如,OT1
Libertine 有一个“脸书“大多数情况下,连字符都是不需要的。
话虽如此,实现你想要的目标还是相对容易的,
\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
非常多。由于我不认为Th
和Qu
连字符在普通文本中如此常见,所以我宁愿使用T1
编码并为所需的连字符定义一个宏,例如
\newcommand*{\Qu}{{\fontencoding{OT1}\selectfont Qu}}