Я определяю подчеркивание (на основе следующего сайта:https://alexwlchan.net/2017/10/latex-underlines/).
Вот мой первоначальный код:
\usepackage{ulem}
\renewcommand{\ULdepth}{1.8pt}
\contourlength{0.8pt}
\newcommand{\myuline}[1]{%
\uline{\phantom{#1}}%
\llap{\contour{white}{#1}}%
}
Проблема с кодом в том, что он не допускает переносов строк и дефисов, если я подчеркиваю много текста. Я провел небольшое исследование и обнаружил, что это \phantom
может \contour
быть проблемой, поэтому я заменяю \phantom
на \textcolor
на белом и добавляю следующее (чтобы разрешить линии переноса контура):
\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}}%
}
но это не решило мою проблему, и теперь я понял, что это \llap
не позволяет переносы строк и переносы слов... тогда я не знаю, как мне решить эту проблему. Пожалуйста, помогите.
решение1
Изменив то, что у вас есть, вы можете использовать следующее
\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
Затем вы можете получить красивые подчеркивания alexwlchan, которые вам нужны, а также заставить их работать через переносы строк. Используйте это так:
\myulineX{Now the \texttt{myulineX} text will have nice underlines that avoid
descenders, and also don't cause issues with line-breaking.}
получить:
Однако подчеркивания не продолжаются через пробелы между словами. Если это проблема, я не знаю, как ее решить (см. также комментарийздеськ тому же эффекту, я думаю).