答案1
这可以使用米科的selnolig
包裹。它在 CTAN 上,并已添加到 TeX Live 和 MikTeX。selnolig
要求使用 编译文档lualatex
,但这不会阻止您使用字体;事实上,它的xelatex
用法与 非常相似。
(顺便说一句,microtype
LuaTeX 可以使用它的大部分功能,但它无法有选择地停用连字。这就是它selnolig
被创建的原因。)
在这个 MWE 中,我加载时selnolig
不使用任何语言选项(它可以处理德语和英语),因此它只会在我用\nolig
规则告诉它的地方删除连字符。由于我没有 Adobe Caslon Pro OTF 字体,我使用了 Linux Libertine,它的 ⟨st⟩ 和 ⟨ct⟩ 连字符历史放。
\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={Historical}}
\setmainfont{Linux Libertine O}
\usepackage{selnolig}
\nolig{st}{s|t}
\begin{document}
best pact
\end{document}
为了进行比较,以下是没有的输出selnolig
:
selnolig
的主要目的是自动抑制德语和英语文本中跨词素边界的连字。其文档解释了如何使用它(以及如何使用lualatex
,如果您需要一些指示的话)。
也可以看看新的软件包 selnolig,可以自动抑制印刷连字在 Meta 上。
答案2
@doncherry 已经回答了你的主要问题。我将尝试回答你的第二组问题:
我还有一个问题,是否可以在文档中途更改连字选项?或者也许可以暂时更改连字?
您没有明确说明要更改哪些与连字相关的选项,因此我的回答必须非常宽泛。我认为最好的办法是使用软件包\newfontfamily
的命令fontspec
来设置“新”字体(可能与\setmainfont
... 设置的字体相同)和一些与字体相关的选项。例如,您可以在文档的序言中进行以下设置:
\usepackage{fontspec}
\setmainfont[Ligatures={Common,Rare}]{Adobe Caslon Pro}
\newfontfamily\acptemp[Ligatures={NoCommon}]{Adobe Caslon Pro}
然后你可以发出命令
\bgroup
\acptemp
...
\egroup
在文档主体内切换到在范围内禁用所有连字符的设置\bgroup ... \egroup
--同时保持相同的基本字体。