两个相邻的 t 字符形成一个 tt 字形

两个相邻的 t 字符形成一个 tt 字形

我使用的是 xelatex 和 linux libertine 字体。当我在文本中写下包含两个t相邻字符的内容(例如“rotten”)时,它会将这两个t字符更改为一个tt字符。它在 PDF 中显示正常,但无法复制或在 pdf 中搜索该内容。

我怎样才能使它只是简单地两个t字符相邻呢?

答案1

禁用连字:

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{english}
\setmainfont[Ligatures={NoCommon}]{Linux Libertine O}
\begin{document}

\Huge rotten

\end{document}

答案2

如果 XeLaTeX 是唯一能够满足您的排版需求的格式 - 特别是如果您不能使用 LuaLaTeX - 您有两种选择可以抑制tt连字,同时又不完全关闭所有“常见”连字:

  • 插入 TeX 所称的隐含的紧邻两个t字符之间的(零宽度):

    rot\kern0pt ten  % note: no space between "\kern" and "0pt"
    
  • 插入 TeX 所称的显式字距(也是零宽度)两个t字符之间:

    rot\/ten, rot\kern 0pt ten  % note the space between "\kern" and "0pt"
    

    “斜体修正”\/是一种显式字距校正。顺便说一句,如果所讨论的单词实际上是用斜体

请注意,对于“tt”的每个实例都必须单独执行此操作。

最后说明/评论:含有tt最后说明/评论:如果通过 XeLaTeX 编译 PDF 文件,则无法在其中搜索漏洞在 XeLaTeX 下的实现中Linux Libertine O。首先,包含更常见的“常见”(双关语)连字fffiflffl 事实上,如果文档是通过 XeLaTeX 编译的,则可以搜索。其次,字体系列Palatino nova还具有tt连字功能。当我使用Palatino nova而不是Linux Libertine O,我遇到了没有困难搜索包含tt连字符的单词(或者,包含ff、、、和连fi字符的单词)。flffiffl

在此处输入图片描述

% !TEX TS-program = xelatex
\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures={TeX,Common}]{Linux Libertine O}
\begin{document}
implicit kern (\verb+rot\kern0pt ten+): rot\kern0pt ten \& \emph{rot\kern0pt ten}

explicit kern (\verb+rot\/ten+): rot\/ten \& \emph{rot\/ten}

\verb+ro{t}{t}en, rot{}ten+: ro{t}{t}en, rot{}ten --- tt ligature still there!)
\end{document}

答案3

如果您只想禁用 tt 连字符而不禁用其他连字符,并且不想每次手动添加字距,则可以使用 xetex charclass 机制。

我似乎没有字体,因此我禁用了 arial 中的 ff,并且我插入了 10pt 字距而不是 0pt,以使其更加明显。

在此处输入图片描述

注意第二行中的 ff 是分开的,但是 fi 连字符仍然起作用,

\documentclass{article}
\usepackage{fontspec}
\setmainfont{Arial}

\begin{document}
\showoutput


ffoo difficult safe

\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\fchar
\XeTeXcharclass`f=\fchar
\XeTeXinterchartoks\fchar\fchar{\kern10pt}

ffoo difficult safe

\end{document} 

因此对于你的问题来说它变成了

\documentclass{article}
\usepackage{fontspec}
\setmainfont[Ligatures={TeX}]{Linux Libertine O}
\XeTeXinterchartokenstate=1
\newXeTeXintercharclass\tchar
\XeTeXcharclass`t=\tchar
\XeTeXinterchartoks\tchar\tchar{\kern0pt}

\begin{document}
rotten fisticuffs
\end{document}

在此处输入图片描述

相关内容