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}