밑줄을 정의합니다(다음 사이트를 기반으로 함).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.}
얻으려면 :
그러나 밑줄은 단어 사이의 공백을 통해 계속되지 않습니다. 그게 문제라면 어떻게 해결해야 할지 모르겠습니다(댓글도 참조하세요)여기같은 효과라고 생각합니다).