Ich definiere eine Unterstreichung (basierend auf der folgenden Site:https://alexwlchan.net/2017/10/latex-underlines/).
Dies war mein ursprünglicher Code:
\usepackage{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}
\newcommand{\myuline}[1]{%
\uline{\phantom{#1}}%
\llap{\contour{white}{#1}}%
}
Das Problem mit dem Code ist, dass er weder Zeilenumbrüche noch Silbentrennungen zulässt, wenn ich viel Text unterstreiche. Ich habe etwas recherchiert und herausgefunden, dass das \phantom
das \contour
Problem sein könnte. Ich habe es also \phantom
durch \textcolor
in Weiß ersetzt und Folgendes hinzugefügt (um Konturumbruchlinien zuzulassen):
\usepackage{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}
% contour each word to allow linebreaks
\RequirePackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\MIR}{m}
{
\seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
\seq_map_inline:Nn \l_tmpa_seq { \contour{white}{##1} ~ } \unskip
}
\ExplSyntaxOff
% define underline
\newcommand{\myuline}[1]{%
\uline{\textcolor{white}{#1}}%
\llap{\contour{white}{#1}}%
}
aber das hat mein Problem nicht gelöst, und jetzt habe ich festgestellt, dass \llap
weder Zeilenumbrüche noch Silbentrennung zulässig sind ... dann weiß ich nicht, wie ich das Problem lösen kann. Bitte helfen Sie.
Antwort1
Wenn Sie das Vorhandene ändern, können Sie Folgendes verwenden
\usepackage{contour}
\usepackage[normalem]{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}
\newcommand{\myuline}[1]{%
\uline{\phantom{#1}}%
\llap{\contour{white}{#1}}%
}
% myuline on each word to allow linebreaks
\RequirePackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\myulineX}{m}
{
\seq_set_split:Nnn \l_tmpa_seq { ~ } { #1 }
\seq_map_inline:Nn \l_tmpa_seq { \myuline{##1} ~ } \unskip
}
\ExplSyntaxOff
Dann können Sie die schönen Unterstreichungen von alexwlchan erhalten, die Sie möchten, und sie auch über Zeilenumbrüche hinweg funktionieren lassen. Verwenden Sie es wie folgt:
\myulineX{Now the \texttt{myulineX} text will have nice underlines that avoid
descenders, and also don't cause issues with line-breaking.}
zu bekommen:
Allerdings werden die Unterstreichungen nicht durch Leerzeichen zwischen Wörtern fortgesetzt. Wenn das ein Problem ist, weiß ich nicht, wie ich das lösen soll (siehe auch KommentarHiermit der gleichen Wirkung, glaube ich).