Я глобально объявил расстановку переносов в словах вроде этой
\hypenation{dis-tri-bu-tion-point-objekt}
Слово представляет собой смесь английского и немецкого (последняя часть objekt на немецком языке). Но слово не будет разделено, поэтому оно выходит за рамки и ложится на правое место буквы, а не на следующую строку.
Я пробовал делать это вручную, \=
но тогда LuaLaTeX выводит два символа в тексте.
Я использую lualatex
, так в чем проблема? Спасибо!
РЕДАКТИРОВАТЬ Добавлено МВЭ.
\documentclass[%
a4paper,
12pt,
DIV=calc,
oneside,
parskip=half,
captions=nooneline,
numbers=noenddot,
listof=totocnumbered,
bibliography=totocnumbered
]
{scrartcl}
\usepackage[a4paper, left=3cm, right=2.5cm, top=2.5cm, bottom=2.5cm, includefoot]{geometry}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\begin{document}
Die Erweiterung besteht aus einer Sequenz von DistributionPoint-Objekten. Das Distribution-Point-Objekt wiederum besteht aus drei optionalen Feldern distributionPoint, reasons und cRLIssuer. Allerdings darf das Objekt nicht nur auf dem reasons-Feld bestehen. Es muss entweder das Feld distributionPoint oder cRLIssuer vorhanden sein. Allerdings darf das Objekt nicht nur auf dem reasons-Feld bestehen. Es muss entweder das Feld distributionPoint oder cRLIssuer vorhanden sein. Allerdings darf das Objekt nicht nur auf dem reasons-Feld bestehen. Es muss entweder das Feld distributionPoint oder cRLIssuer vorhanden sein. Allerdings darf das Objekt nicht nur auf dem reasons-Feld bestehen. Es muss entweder das Feld distributionPoint oder cRLIssuer vorhanden sein.
\end{document}
решение1
Если вы укажете
\hyphenation{dis-tri-bu-tion-point=objekt}
в преамбуле немецкий язык еще не загружен. Вам нужно отложить это в начале документа. Примечание =
для обозначения a -
в слове.
\documentclass[%
a4paper,
12pt,
DIV=calc,
oneside,
parskip=half,
captions=nooneline,
numbers=noenddot,
listof=totocnumbered,
bibliography=totocnumbered
]
{scrartcl}
\usepackage[a4paper, left=3cm, right=2.5cm, top=2.5cm, bottom=2.5cm, includefoot]{geometry}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\begin{document}
\hyphenation{dis-tri-bu-tion-point=objekt}
Die Erweiterung besteht aus einer Sequenz von DistributionPoint-Objekten.
Das DistributionPoint-Objekt wiederum besteht aus drei optionalen Feldern
distributionPoint, reasons und cRLIssuer.
\end{document}
Способ добавления переносов в преамбулу на нескольких языках и избежания \selectlanguage
недостатка записи вещей во вспомогательных файлах.
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setdefaultlanguage{german}
\setotherlanguage{english}
\newcommand{\sethyphenation}[2]{%
\begin{otherlanguage*}{#1}\hyphenation{#2}\end{otherlanguage*}%
}
\sethyphenation{german}{dis-tri-bu-tion-point=objekt}
\sethyphenation{english}{as-df-gh-jkl}
\begin{document}
\parbox{0pt}{DistributionPoint-Objekt}
\bigskip
\begin{otherlanguage*}{english}
\parbox{0pt}{asdfghjkl}
\end{otherlanguage*}
\end{document}
Это \parbox{0pt}
просто для того, чтобы показать переносы.
Если вы хотите сделать разрыв и после явного дефиса, вы можете сделать это
\sethyphenation{german}{dis-tri-bu-tion-point={}{}{}objekt}
Вот что получится в этом случае