(왜) enumite가 잘못된 하이픈 연결을 유발합니까?

(왜) enumite가 잘못된 하이픈 연결을 유발합니까?

내 문서에서 하이픈 연결이 잘못된 경우를 발견했습니다. 특히 LaTeX는 어딘가에서 "대규모"와 같은 하이픈으로 연결된 단어를 끊습니다.다른하이픈보다 (저는 이것이 LaTeX가 거부하는 것으로 유명한 일이라고 생각했습니다!)

지금까지 나는 패키지로 생성된 인라인 목록에서만 문제를 발견했습니다 enumitem. 아마도 이것은 우연의 일치일지도 모르지만 인라인 목록을 사용하지 않는 비슷한 단어의 텍스트에서는 문제가 발생하지 않습니다. 다음은 최소한의 예입니다.

\documentclass[a4paper,11pt]{article}
\usepackage[inline]{enumitem}
\begin{document}
% This paragraph is hyphenated correctly
Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.

% This paragraph is hyphenated poorly
Foo bar f:
\begin{enumerate*}[label=(\roman*)]
\item Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
\end{enumerate*}
\end{document}

산출:

이상한 "대규모" 줄 바꿈을 보여주는 위 코드의 출력

여기서 무슨 일이 일어나고 있는 걸까요? enumitem그게 잘못 인가요 ? 어쨌든, 고칠 수 있는 방법이 있나요? 변경 large-scale하려고 시도했지만 \mbox{large}-\mbox{scale}LaTeX는 하이픈 줄바꿈을 거부합니다. (어쨌든 나는 잘못된 하이픈이 포함된 모든 단어를 수동으로 찾아 수정해야 하는 솔루션보다는 글로벌 솔루션을 선호합니다.)

답변1

enumerate*내용을 상자에 담은 다음 수행하기 때문입니다 \unhbox. XeLaTeX(레거시가 아닌 글꼴 사용) 및 LuaLaTeX에서는 이런 일이 발생하지 않는 것이 당연합니다.

\documentclass[a4paper,11pt]{article}
\usepackage[inline]{enumitem}

\begin{document}

% This paragraph is hyphenated correctly
Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.

% This paragraph is hyphenated poorly
Foo bar f:
\begin{enumerate*}[label=(\roman*)]
\item Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
\end{enumerate*}

% This paragraph is hyphenated poorly
\setbox0=\hbox{Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.}
\leavevmode\unhbox0

\end{document}

여기에 이미지 설명을 입력하세요

Boxing 텍스트는 현재 언어에 대한 참조를 상실하며 신비한 일이 발생할 수 있습니다. 사용 mode=unboxed.

\documentclass[a4paper,11pt]{article}
\usepackage[inline]{enumitem}

\begin{document}

% This paragraph is hyphenated correctly
Foo bar f:
(i)~Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.

% This paragraph is hyphenated poorly
Foo bar f:
\begin{enumerate*}[label=(\roman*),mode=unboxed]
\item Foo bar foo bar foo bar foo foo bar foo bar foo bar large-scale foo bar foo bar.
\end{enumerate*}

\end{document}

여기에 이미지 설명을 입력하세요

다른 예시:

\documentclass[twocolumn]{article}

\begin{document}
\parbox{0pt}{\hspace{0pt}supercalifragilistic-expialidocious test}

\vfill\eject

\setbox0=\hbox{supercalifragilistic-expialidocious}
\parbox{0pt}{\hskip0pt\unhbox0\relax\space test}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보