XeLaTeX 中的德语连字符错误

XeLaTeX 中的德语连字符错误

正如您在图片中看到的,一些单词下方,不仅是“Gegenüberstellung”,在论文的正确位置,连字符也不正确。不幸的是,TexExchange 上与此主题相关的不同问题并没有解决这个问题。为了帮助我,我使用了“Si-cher-heits-ma-nage-ment”,但它对整个文档来说并不实用。XeLateX 和系统“Times new Roman”字体。

更准确地说:“Ge-gen-über-stel-lung”这个词应该在“Ge-”或至少在“Gegen-”处断开。大多数情况下它都能正常工作,但在每个部分中都会有少数几个单词需要您使用 Latex 语法手动进行断开:“Ge-gen-über-stel-lung”,否则它会被写到纸的边缘或像“Gegenüberstellung”一样在中间断开。

在此处输入图片描述

梅威瑟:

\documentclass[12pt,oneside,titlepage,listof=totoc,bibliography=totoc]{scrartcl}
\usepackage[a4paper, left=4cm, right=2cm, top=4cm, bottom=2cm]{geometry}
\usepackage{float}
\usepackage{fancyhdr}
\usepackage{fancybox}
\usepackage{setspace}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\babelprovide[hyphenrules=ngerman-x-latest]{ngerman}
\usepackage[german=quotes,autostyle]{csquotes}
\usepackage{threeparttable}
\usepackage{longtable}
\usepackage{pdfpages}
\usepackage{appendix}
\usepackage{pdfsync}
\usepackage{blindtext}
\usepackage{fontspec}                   
\setmainfont{Times New Roman}
\defaultfontfeatures[\rmfamily,\sffamily]{Ligatures=TeX}
\addtokomafont{sectionentry}{\mdseries} 
\setkomafont{sectioning}{\bfseries}     
\usepackage{anyfontsize}
\usepackage{ragged2e}
\newcommand{\capquelle}[1]{%
    \par\parbox{\captionwidth}{\raggedright\bigskip Quelle: #1}%
}
\usepackage{hvfloat}
\usepackage{footnote}
\usepackage[hang,multiple,bottom,stable]{footmisc} 
\setlength{\footnotesep}{2pt} 
\setlength{\footheight}{22cm} 
\setlength{\footnotemargin}{.8em} 
\interfootnotelinepenalty=9999 
\usepackage{nicefrac} 
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{mdwlist}
\linespread{1.5}
\setlength{\parindent}{0mm}
\setlength{\parskip}{0.3em plus 0.5em minus 0.6em}
\input{app/skripte/weitereEbene}
\usepackage[printonlyused]{acronym}
\usepackage[intoc]{nomencl}
\renewcommand{\nomname}{Abkürzungsverzeichnis}
\setlength{\nomlabelwidth}{.50\textwidth}
\renewcommand{\nomlabel}[1]{#1 \dotfill}
\setlength{\nomitemsep}{-\parsep}
\makenomenclature
\fancypagestyle{plain}%
    \fancyhf{} 
    \fancyhead[C]{\thepage}
    \fancyfoot{}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt} 
\pagestyle{fancy} 
    \fancyhf{} 
    \fancyhead[C]{\thepage}
    \fancyfoot{}
    \renewcommand{\headrulewidth}{0pt}
    \renewcommand{\footrulewidth}{0pt}
\begin{document}
    \renewcommand{\figurename}{Abbildung}           
    \pagenumbering{Roman}                           
\renewcommand{\refname}{Literaturverzeichnis}       
\newcolumntype{C}{>{\arraybackslash}X}              
\newpage
\restoregeometry 
\setcounter{page}{2} 
\tableofcontents
\newpage
\printnomenclature
\newpage
\listoffigures
\newpage
\pagenumbering{arabic}
\setcounter{page}{1}

\subsection{Aufbau}
Im zweiten Kapitel wird zunächst der Begriff \textit{Bring Your Own Device} (BYOD) definiert. Darauffolgend wird dargelegt welche Fokusse gesetzt werden sollen und Schlussfolgerungen gezogen, sowie eine Sicherheitsrichtlinie abgeleitet. Welche als Grundlage einer Gegenüberstellung mit etablierten Konzepten dient, sodass Strategien erörtert werden können. Darauffolgend wird in Kapitel Drei eine Diskussion der Vor- und Nachteile von \textit{Bring Your Own Device} aus unterschiedlichen Sichten.


\end{document}

日志(只有警告,因为太长):

Class scrartcl Warning: Usage of package `fancyhdr' together
(scrartcl)              with a KOMA-Script class is not recommended.
(scrartcl)              I'd suggest to use 
(scrartcl)              package `scrlayer' or `scrlayer-scrpage', because
(scrartcl)              they support KOMA-Script classes.
(scrartcl)              With `fancyhdr' several features of class `scrartcl'
(scrartcl)              like options `headsepline', `footsepline' or command
(scrartcl)              `\MakeMarkcase' and the commands `\setkomafont' and
(scrartcl)              `\addtokomafont' for the page style elements need
(scrartcl)              explicite user intervention to work.
(scrartcl)              Nevertheless, using requested
(scrartcl)              package `fancyhdr' on input line 17.
----
Package babel Warning: No hyphenation patterns were preloaded for
(babel)                the language `German (new orthography)' into the format.

(babel)                Please, configure your TeX system to add them and
(babel)                rebuild the format. Now I will use the patterns
(babel)                preloaded for english instead on input line 47.

Package babel Info: \l@ngerman = using hyphenrules for english
(babel)             (\language0) on input line 48.
Package babel Info: Making " an active character on input line 121.
)))
(/usr/share/texlive/texmf-dist/tex/generic/babel/locale/de/babel-ngerman.tex
(/usr/share/texlive/texmf-dist/tex/generic/babel/locale/de/babel-german.tex
Package babel Info: Importing basic data for ngerman
(babel)             from babel-de.ini. Reported on input line 11.
))
(/usr/share/texlive/texmf-dist/tex/latex/csquotes/csquotes.sty
Package: csquotes 2019-12-06 v5.2j context-sensitive quotations (JAW)

(/usr/share/texlive/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2019/09/21 v2.5h e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count178
)
\csq@reset=\count179
\csq@gtype=\count180
\csq@glevel=\count181
\csq@qlevel=\count182
\csq@maxlvl=\count183
\csq@tshold=\count184
\csq@ltx@everypar=\toks25

Docker 字体安装:

RUN && microdnf -y update \
    && microdnf -y install \
            texlive-scheme-basic \
...
        curl \
        cabextract \
        xorg-x11-font-utils \
        fontconfig \
        && rpm -i 'https://downloads.sourceforge.net/project/mscorefonts2/rpms/msttcore-fonts-installer-2.6-1.noarch.rpm' 

答案1

就像 David Carlisle 所说的那样,原因很简单,就是缺少一个软件包。我没有使用 texlive-scheme-full,而是深入挖掘并发现,如果您选择使用 texlive-scheme-basic,则需要软件包 texlive-hyphen-german。安装此软件包后,连字功能便可正常工作。

相关内容