selnolig 包和圆形 s (s:) 以 fraktur (yfonts) 表示

selnolig 包和圆形 s (s:) 以 fraktur (yfonts) 表示

在一份德语文档中,我想用 Fraktur 排版一些选定的短语,而其余的则用 Linux Libertine 书写。使用 yfonts 包,输入 即可获得圆形 s(相对于高 s 而言的“现代” s)s:

第一个 MWE:

\documentclass[border=2]{standalone}

\usepackage{libertine}
\usepackage{yfonts}
\usepackage[ngerman]{babel} 

\begin{document}
    \frakfamily
    The quick fox jumps: over the sleazy dog
\end{document}

结果是: 在此处输入图片描述

但是,似乎 selnolig 包(在我的文档中用于非 Fraktur 文本)阻止了此输出:

\documentclass[border=2]{standalone}

\usepackage{libertine}
\usepackage{yfonts}
\usepackage[ngerman]{babel} 
\usepackage[ngerman]{selnolig}

\begin{document}
    \frakfamily
    The quick fox jumps: over the sleazy dog
\end{document}

结果是: 在此处输入图片描述

对于这种特殊情况,有没有办法禁用 selnolig 包?

答案1

您可以定义自己的宏并绕过预定义的连字自动化。

除了圆形 s 之外,您也许还应该为在印刷上正确排版的 Fraktur 中应该使用的最基本的宏定义宏,即 ch、ck 和 tz(从您的示例中可以看出,这些也被破坏了selnolig):

\documentclass[border=2]{standalone}

\usepackage{libertine}
\usepackage{yfonts}
\usepackage[ngerman]{babel} 
\usepackage[ngerman]{selnolig}

\DeclareTextSymbol{\ch}{LY}{133}
\DeclareTextSymbol{\ck}{LY}{134}
\DeclareTextSymbol{\tz}{LY}{139}
\DeclareTextSymbol{\rounds}{LY}{141}

\begin{document}
    \frakfamily
    The qui\ck{} fox jump\rounds{} bli\tz{}s\ch{}nell over the sleazy dog
\end{document}

在此处输入图片描述

答案2

我承认我不知道该yfonts包如何完成转换为 Fraktur 的工作。s:但是round-s,我了解到该包将转换为连字符(在 TeX 意义上)。当然,我想不出任何其他原因来解释为什么—— 毕竟,它的存在是为了抑制连字符 —— 会干扰 转换为。s:round-sselnoligs:round-s

让我真正感到困惑的是,这种推断竟然会发生。当然,如果selnolig包中加载了选项ngerman,则绝对不会\nolig设置任何指令来抑制s:连字符,无论是选择性的还是全局性的。

我现在能建议的就是\selnoligoff——你猜对了——在运行之前关闭 selnolig 例程的操作\frakfamily。要在返回主文档系列后重新激活 selnolig 例程,请运行\selnoligon

例如,类似下面的内容:

\selnoligoff {\frakfamily 
The quick brown fox jumps: over the lazy dog.
}

\selnoligon
auffallen aufisst aufjaulen % suppress ff, fi, and fj ligatures

因为selnolig的例程不能识别(因此忽略)TeX 组,所以一定要让段落中断执行\selnoligon。这是因为selnolig的例程修改了 TeX 的段落构建器进程。因此,

{\frakfamily 
The quick brown fox jumps: over the lazy dog.
} \selnoligoff 

auffallen aufisst aufjaulen
\selnoligon

也将完成工作,\selnoligoff\selnoligon开始发挥作用相应的段落中断发生。我同意这对于 TeX 老手来说一定看起来很奇怪。

我意识到这种解决方法并不优雅。如果文档中有很多 实例,那么实现起来可能会非常繁琐\frakfamily

在此处输入图片描述

相关内容