如何提供混合语言单词连字符的首选项

如何提供混合语言单词连字符的首选项

假设我们要排版较长的双语复合词。我们倾向于在第一语言单词结束之后、第二语言单词开始之前立即拆分这些单词;如果结果不好看(例如,框太满),我们希望在单语部分中也允许拆分。

例如,管道和过滤器建筑Map/Reduce 概念承担/保证规范, 和快速排序原理— 所有类型的英语+德语。

以下是我们迄今为止的尝试:

\documentclass{article}
\usepackage[USenglish,ngerman]{babel}
\babelprovide[hyphenrules=ngerman-x-latest]{ngerman}%%% according to the documentation of dehyph-exptl.
%\showoutput
\begin{document}
\showhyphens{
\foreignlanguage{USenglish}{Pipes\penalty10000-\penalty2\hskip0pt and\penalty10000-\penalty2\hskip0pt Filters}\penalty10000-\penalty1\hskip0pt Architektur % Pipes-and-Filters-Architektur

\foreignlanguage{USenglish}{Map\penalty10000/\penalty2\hskip0pt Reduce}\penalty10000-\penalty1\hskip0pt Konzept % Map/Reduce-Konzept

\foreignlanguage{USenglish}{Assume\penalty10000/\penalty2\hskip0pt Guarantee}\penalty10000-\penalty1\hskip0pt Spezifikation % Assume/Guarantee-Spezifikation

\foreignlanguage{USenglish}{Quicksort}"-prinzip % Quicksortprinzip
}
\end{document}
  1. 这能行吗?我们得到了输出(带有 的连字符\showhyphens和带有 的惩罚\showoutput),这似乎是正确的,但我仍然不确定。

  2. 上面的排版看起来相当麻烦;有没有更简单的方法可以达到同样的目的?\penalty10000单词和斜线或破折号之间真的有必要吗?

  3. 怎么说呢,\foreignlanguage{USenglish}{Quicksort}"-prinzip我们更喜欢在英语部分和德语部分之间进行分解,而不是在两个部分中的任何一个内部进行分解?

答案1

您告诉我们,您的文档几乎全部是德语,除了“一些英语(复合词或简单词)、一些英语缩写、一些简短的英语短语、一些混合的英德复合词和一些完整的英语句子”之外。我认为您知道如何(在框架内babel)有效地处理简短的英语短语。缩写和首字母缩略词不应该(永远?)允许使用连字符,对吗?那么,主要问题是如何处理混合的英德复合词,您提供了四个选择示例:Quicksortprinzip、、和。Pipes-and-Filters-ArchitekturMap/Reduce-KonzeptAssume/Guarantee-Spezifikation

我的观点是将这些情况视为(大多数情况下)德语结构。因此,请使用\slash而不是/来允许换行,并使用 babel-german"=快捷方式允许对复合连字符词的组成部分进行连字符连接。最后,使用\babelhyphenation[ngerman]{....}来指示不是为某些单词添加连字符。例如,如果任其发展,babel-german 会在 和 中“找到” tso 连字符点assumereduce我建议完全禁止使用这两个单词的连字符。

在此处输入图片描述

我使用LuaLaTeX来编写这个测试文档,主要是为了能够实现段落中第一个单词的连字。

% !TEX TS-program = lualatex
\documentclass{article}
\usepackage[english,ngerman]{babel}
%% suppress hyphenation for selected English words in a German-language context
\babelhyphenation[ngerman]{guarantee filters reduce assume}

\setlength\parindent{0pt}
\setlength\textwidth{1sp}

\let\oldslash\slash
\renewcommand\slash{\oldslash\hspace{0pt}}
\begin{document}

Quicksortprinzip

\smallskip
Pipes"=and"=Filters"=Architektur

\smallskip
Map\slash Reduce"=Konzept

\smallskip
Assume\slash Guarantee"=Spezifikation
\end{document}

相关内容