我怎样才能将 germanb.ldf-shorthand "| 重新定义为仅斜体?

我怎样才能将 germanb.ldf-shorthand "| 重新定义为仅斜体?

germanb.ldf定义非常有用的简写"|

\declare@shorthand{german}{"|}{%
 \textormath{\penalty\@M\discretionary{-}{}{\kern.03em}%
         \allowhyphens}{}}

\usepackage[german]由和[ngerman]{babel}或使用\setxxxlanguage[babelshorthands=true]{german}

顺便说一句:作为一个习惯动物,我也使用其他语言的简写。

现在,印刷术恶魔告诉你,你不能添加任何斜体中的额外空间,因此它的作用不应超过标记首选断点,也许还可以防止像ff(FB00 ... FB04) 这样的连字 - 如果斜体字体形状中有的话,但您也可以使用连字。

是否可以重新定义同一种速记方式,使其在不同的字体形状下以不同的方式运行?

答案1

好吧,我不明白你为什么要这样做,但斜体或倾斜字体的标准测试是字体尺寸 1 是否为正,因此你可以写:

\useshorthands*{"}
\defineshorthand[german]{"|}{%
 \textormath{\penalty10000\discretionary{-}{}{\ifdim\fontdimen1\font>0pt\kern0pt\else\kern.03em\fi}%
 \allowhyphens}{}}

示例输出

\documentclass{article}

\usepackage[main=german]{babel}

\useshorthands*{"}
\defineshorthand[german]{"|}{%
 \textormath{\penalty10000\discretionary{-}{}{\ifdim\fontdimen1\font>0pt\kern0pt\else\kern.03em\fi}%
 \allowhyphens}{}}

\begin{document}

f"|f ff \textit{f"|f ff} \textbf{f"|f ff} \textbf{\itshape f"|f ff}

Now some silly values to see this is working
\defineshorthand[german]{"|}{%
 \textormath{\penalty10000\discretionary{-}{}{\ifdim\fontdimen1\font>0pt\kern-2pt\else\kern.5em\fi}%
 \allowhyphens}{}}

f"|f ff \textit{f"|f ff} \textbf{f"|f ff} \textbf{\itshape f"|f ff}

\end{document}

相关内容