使用 XeLaTeX 时出现破折号的问题

使用 XeLaTeX 时出现破折号的问题

我正在用 LaTeX 写我的学士论文。我使用 XeLaTeX,因为您可以使用该xesearch包轻松突出显示文本。

我的问题是带有破折号的单词,例如HTML 请求断线不正确。在 PDF 文件中,行尾有两个破折号。

我认为问题在于 的使用\UndoBoundary{-}。我之所以使用它,是因为否则诸如网络验证器不会被突出显示。

请问你能帮帮我吗?

我发布了完整的头文件,也许您也可以给我一些其他提示。我正在使用 KomaScript。

%\documentclass[a4paper, twoside,12pt,abstracton,parskip=half]{scrreprt}
\documentclass[a4paper,12pt,abstracton,parskip=half]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}

\usepackage[german=quotes]{csquotes}

\MakeOuterQuote{"}

\usepackage{graphicx}
\usepackage{url}
\usepackage{extsizes}
\usepackage{hyperref}
\usepackage{xltxtra}
\usepackage{xesearch}
\usepackage{tabularx}
\usepackage{microtype}
\usepackage{titleref}

\usepackage[textwidth=16cm]{geometry}

\usepackage{xcolor}


\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Ligatures=TeX]{Arial}


%\setmainfont{Times New Roman}

\usepackage[
backend=biber,
style=numeric,
sortlocale=de_DE,
natbib=true,
url=false, 
doi=true,
eprint=false
]{biblatex}

\usepackage[automark,headsepline]{scrlayer-scrpage}

\clearpairofpagestyles
\cfoot[\pagemark]{\pagemark}
\lehead{\headmark}
\rohead{\headmark}
\pagestyle{scrheadings}

\setlength{\headheight}{14.5pt}
\setlength{\parindent}{0pt}


\addbibresource{citations.bib}

\UndoBoundary{-}
\SearchList{i4}{\textit{#1}}{Web-Verifier}
\SearchList{i5}{\textit{#1}}{Web-Verifiers}
\SearchList{i6}{\textit{#1}}{Single Page Web Application}

%\SearchList{i8}{\textit{#1}}{}
%\SearchList{i9}{\textit{#1}}{}


\hyphenation{Web-Verifier}
\hyphenation{Web-Verifiers}


\newcounter{savepage}
\begin{document}

\thispagestyle{empty}

\begin{abstract}
\thispagestyle{plain}
Web-Verifier HTTP-Request HTTP-Response HTTP-Request HTTP-Response HTTP-Request HTTP-Response
HTTP-Request HTTP-Response HTTP-Request HTTP-Response HTTP-Request HTTP-Response
\end{abstract}
\end{document}

编辑:

我注释掉\UndoBoundary{-}\SearchList。现在,行尾的破折号可以按预期工作了。

但我想用 在我的文档中突出显示带有破折号的单词(例如 Web-Verifier)\SearchList

有人能帮我解决这个问题吗?

PS:@admins 抱歉造成您的不便。

答案1

我找到了一个可行的解决方案。但这可能不是最好的。我使用该包hyphenat并将单词中不应突出显示的破折号替换为 \hyp{}。

现在看起来像这样:

%\documentclass[a4paper, twoside,12pt,abstracton,parskip=half]{scrreprt}
\documentclass[a4paper,12pt,abstracton,parskip=half]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[babel, german=quotes]{csquotes}


\MakeOuterQuote{"}

\usepackage{extsizes}
\usepackage{hyperref}
\usepackage{xltxtra}
\usepackage{xesearch}
\usepackage{microtype}
\usepackage{titleref}

\usepackage{hyphenat}

\usepackage[textwidth=13cm]{geometry}

\usepackage{xcolor}


\usepackage{fontspec}
\defaultfontfeatures{Mapping=tex-text}
\setmainfont[Ligatures=TeX]{Arial}

\usepackage[automark,headsepline]{scrlayer-scrpage}

\clearpairofpagestyles
\cfoot[\pagemark]{\pagemark}
\lehead{\headmark}
\rohead{\headmark}
\pagestyle{scrheadings}

\setlength{\headheight}{14.5pt}
\setlength{\parindent}{0pt}


\UndoBoundary{-}
\SearchList{i4}{\textit{#1}}{Web-Verifier}
\SearchList{i5}{\textit{#1}}{Web-Verifiers}
\SearchList{i6}{\textit{#1}}{Single Page Web Application}

\newcounter{savepage}
\begin{document}

\thispagestyle{empty}

\begin{abstract}
\thispagestyle{plain}
Web-Verifier HTTP\hyp{}Request HTTP\hyp{}Response HTTP\hyp{}Request HTTP\hyp{}Response HTTP\hyp{}Request HTTP\hyp{}Response
HTTP\hyp{}Request HTTP\hyp{}Response HTTP\hyp{}Request HTTP\hyp{}Response HTTP\hyp{}Request HTTP\hyp{}Response
\end{abstract}
\end{document}

相关内容