Ручная расстановка переносов LuaLaTeX не работает

Ручная расстановка переносов LuaLaTeX не работает

Я глобально объявил расстановку переносов в словах вроде этой

\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}

Вот что получится в этом случае

введите описание изображения здесь

Связанный контент