如果我理解正确的话这个问题,默认的 OT1 编码不会为正确的\l
字符提供足够的“字体空间”。另一方面,如果启用此选项,我似乎无法使连字(如 Th 或 Qu)工作。\l
但是我需要显示字符,并且想知道是否有办法同时显示两者(使用纯 LaTeX 或 PDFLaTeX 作为编译器,不想要 XeLaTeX,因为在我看来它的整体布局更差,或者至少与纯 LaTeX 不同,这让我很怀疑)。
MNWE:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\title{This is Quantifiably finally ligatured text}
\begin{document}
\maketitle
I need the character \l too though.
\end{document}
对于 T1,并非所有连字符都显示:
如果没有 T1,\l
角色就不会显示:
注释掉该fontenc
行后,我得到了连字,但没有正确的\l
(预期行为,cfr。这个问题)。但我真的想要两者。我该怎么做?我会接受改变我获取角色的方式的解决方案\l
,因为它在非必要文本中出现的次数很少。
答案1
在 OT1 之前加载 T1,取消声明\l
为 OT1 命令并将其默认值声明为 T1:
\documentclass{article}
\usepackage[T1,OT1]{fontenc}
\usepackage{libertine}
\UndeclareTextCommand{\l}{OT1}
\DeclareTextSymbolDefault{\l}{T1}
\title{This is Quantifiably finally ligatured text}
\begin{document}
\maketitle
I need the character \l{} too though.
\end{document}
当然,在包含的单词中,您会丢失一些字距对和连字符\l
,但我不认为这是一个大问题。
这是我从 PDF 查看器窗口复制字形并将其粘贴到 Unicode 检查器后得到的结果
更新
libertine
自2017/03/20 发布的版本起,\l
和\L
命令也能对 OT1 编码执行正确的操作。
\documentclass{article}
\usepackage{libertine}
\title{This is Quantifiably finally ligatured text}
\begin{document}
\maketitle
I need the characters \l{} and \L{} too though.
\end{document}
答案2
另一种方法是通过重新声明字体\l
编码T1
:
\documentclass{article}
\usepackage[OT1]{fontenc}
\usepackage{libertine}
\let\oldl\l
\renewcommand{\l}{\begingroup\fontencoding{T1}\selectfont\oldl\endgroup}
\title{This is Quantifiably finally ligatured text}
\begin{document}
\maketitle
I need the character \l{} too though.
\end{document}
输出: