구분선 및 하이픈 넣기를 허용하는 흰색 윤곽선으로 밑줄을 정의합니다.

구분선 및 하이픈 넣기를 허용하는 흰색 윤곽선으로 밑줄을 정의합니다.

밑줄을 정의합니다(다음 사이트를 기반으로 함).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.}

얻으려면 :

예

그러나 밑줄은 단어 사이의 공백을 통해 계속되지 않습니다. 그게 문제라면 어떻게 해결해야 할지 모르겠습니다(댓글도 참조하세요)여기같은 효과라고 생각합니다).

관련 정보