我定義了一個底線(基於以下站點: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.}
要得到:
但是,底線不會透過單字之間的空格繼續。如果這是一個問題,我不知道如何解決(另見評論這裡我認為達到同樣的效果)。