非英语文本删除连字符

非英语文本删除连字符

我有大量的俄语文本,我正在尝试建立简单的解决方案,以便在文本中打开/关闭连字符,并在文本中将数字和日期作为平面文本。

我尝试过一些无法正常工作的变体。 如何防止 LaTeX 对整个文档进行连字符连接?。这篇文章是一个起点,我也尝试了这篇文章中的建议:hyphsubst 与 inputenc 冲突

我的代码,理论上的问题可能是我一直在使用babel包:

\documentclass[11pt,a4paper]{article}

\usepackage[T1,T2A,T2B,T2C]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

%Added package.
\usepackage{geometry}
\geometry{lmargin=1.18in, rmargin = 0.5in, tmargin = 1.08in, bmargin=0.6in}
\begin{document}
Длинный текст, который не переноситься корректно, особенно если в него добавить длинные слова и номера, например даты рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.
\end{document}

总而言之,我需要一些库或技巧,可以正确地换行,而无需使用连字符(如果可能的话)。我在使用链接帖子的解决方案时遇到的主要问题是单词超出了文档的边界。

编辑: 尽管我使用的几何体可能会产生问题。下面介绍的解决方案不适用于上述代码。(我只添加了几何包)。

答案1

您可以尝试这样的事情:

\newcommand*{\nohyphens}{\hyphenpenalty=10000\exhyphenpenalty=10000\relax}

要限制命令的范围,请将其包含在组中。例如,用花括号括住命令和文本:

{\nohyphens
  Длинный текст, который не переноситься корректно, особенно если в него добавить длинные слова и номера, например даты рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.

}

hyphenated and non-hyphenated text

请注意,通过禁止连字符,您可以减少 TeX 查找良好换行符的选项。这将导致更多坏框和更多文本流入边距的情况。您可以使用以下方法暂时放宽 TeX 对其自身施加的印刷标准:

\sloppypar

或者,您可以关闭非连字符文本的对齐功能:

{\nohyphens\raggedright
  Длинный текст, который не переноситься корректно, особенно если в него добавить длинные слова и номера, например даты рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.

}

上述最小示例的完整代码:

\documentclass[11pt,a4paper]{article}
\newcommand*{\nohyphens}{\hyphenpenalty=10000\exhyphenpenalty=10000\relax}
\usepackage[T1,T2A,T2B,T2C]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\begin{document}
Длинный текст, который не переноситься корректно, особенно если в него добавить длинные слова и номера, например даты рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.

{\nohyphens
  Длинный текст, который не переноситься корректно, особенно если в него добавить длинные слова и номера, например даты рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.

}

\end{document}

答案2

使用具有hyphenrules特殊nohyphenation(伪)语言的环境。

\documentclass[11pt,a4paper]{article}

\usepackage[T1,T2A,T2B,T2C]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian]{babel}

\begin{document}

Длинный текст, который не переноситься корректно, особенно
если в него добавить длинные слова и номера, например даты
рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.

\begin{hyphenrules}{nohyphenation}
Длинный текст, который не переноситься корректно, особенно
если в него добавить длинные слова и номера, например даты
рождения 01.01.2001 или еще какие-нибудь цифры, 10000131342424.
\end{hyphenrules}

\end{document}

enter image description here

相关内容