更少babel
的 LaTeX\-
中,将添加一个自由连字符,使其成为单词中唯一允许的断点。这也是最多 babel
-语言,但有些语言,例如丹麦语和荷兰语,重新定义\-
为仅添加更远连字符指向已经提供的连字符。在我看来,这很不幸(我花了很长时间才弄清楚为什么我的\-
s 不再起作用……)并且在校对多语言书籍时变得很麻烦,这个过程通常涉及通过专门提供正确的连字符来纠正错误或不需要的连字符。
重新定义\-
为\babelhyphen*{soft}
有效,但将在下一次语言切换时重置。我该如何全部\-
语言在序言中一劳永逸地显示标准行为?
\documentclass{book}
\usepackage[english,danish]{babel}
\usepackage{showhyphens} %needs LuaTeX
%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\selectlanguage{danish}
\renewcommand{\-}{\babelhyphen*{soft}}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit Morbi princip\-erklæring ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum. Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis.
\selectlanguage{english}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit Morbi princip\-erklæring ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum. Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis.
\selectlanguage{danish}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit Morbi princip\-erklæring ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum. Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis.
\end{document}
答案1
babel
每次执行后都会有一个钩子\extras<lang>
:
\usepackage[english,danish]{babel}
\AddBabelHook{softhyphen}{afterextras}
{\renewcommand{\-}{\babelhyphen*{soft}}}
\usepackage{showhyphens} %needs LuaTeX
这里softhyphen
只是一个用来标记钩子的名称(您可以更改它),并且afterextras
是执行代码的点(我认为是不言自明的)。