독일어 솔루션

독일어 솔루션

우선, 내 MWE는 다음과 같습니다.

\documentclass[oneside, openright, 12pt]{book}

\usepackage{enumitem}

\newenvironment{boldenumerate}
{\begin{enumerate}[label=\textbf{\arabic*.}]}
    {\end{enumerate}}

\newcommand\bolditem[1]{\item \textbf{#1}}

\begin{document}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

\begin{boldenumerate}
    \bolditem{Caption:} xxx fsdkjnfdskf sdnjdsnfmdns dnsmfndsmfnds nfdsmn fmssadasd-dnfm nsdmfn msndmnsdbfinsfdn
    \bolditem{Another caption:} yy
\end{boldenumerate}

\end{document}

일반적으로 내가 원하는 작업을 정확하게 수행합니다. 그러나 불행하게도 하이픈 연결이 호출되는 경우에는 오른쪽 가장자리를 초과합니다.

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

내 환경 정의에 문제가 있습니까?

답변1

우리에게 보여준 코드를 사용하면 단어에 이미 하이픈이 포함되어 있는 경우 스스로 추가할 수 있는 구분선을 추가해야 합니다. 따라서 대신 fmssadasd-dnfm예를 들어 fms\-sad\-asd-dnfm(유효한 위치에 대해 두 가지 위치를 추측했습니다 -) 또는 답변에 하이픈이 있는 단어를 Pop-Operationen작성하십시오 Pop-Ope\-ra\-tio\-nen.

전체 MWE는 다음과 같습니다.

\documentclass[oneside, openright, 12pt]{book}

\usepackage{enumitem}

\newenvironment{boldenumerate}
{\begin{enumerate}[label=\textbf{\arabic*.}]}
    {\end{enumerate}}

\newcommand\bolditem[1]{\item \textbf{#1}}

\begin{document}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy 
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam 
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet 
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit 
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam 
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, 
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea 
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem 
ipsum dolor sit amet.

\begin{boldenumerate}
  \bolditem{Caption:} xxx fsdkjnfdskf sdnjdsnfmdns dnsmfndsmfnds 
    nfdsmn fms\-sad\-asd-dnfm nsdmfn msndmnsdbfinsfdn
  \bolditem{Caption:} xxx fsdkjnfdskf sdnjdsnfmdns dnsmfndsmfnds 
    nfd Pop-Ope\-ra\-tio\-nen nsdmfn msndmnsdbfinsfdn
  \bolditem{Another caption:} yy
\end{boldenumerate}

\end{document}

결과를 제공합니다.

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

독일어 솔루션

당신은 독일어를 사용하는 독일인인 것 같습니다. 그런 다음 babel언어 지원을 위해 코드에서 패키지를 사용합니다. 고정된 단어를 표시하는 데 babel사용할 수 있으며 항상 독일어 단어로 인쇄되지만 다른 (자동) 하이픈도 허용됩니다."=-

따라서 다음과 같은 독일 MWE를 얻을 수 있습니다.

\documentclass[oneside, openright, 12pt]{book}

\usepackage[ngerman]{babel} % <=========================================

\usepackage{enumitem}
\usepackage{blindtext} % to get dummy text in used language, if supported

\newenvironment{boldenumerate}
{\begin{enumerate}[label=\textbf{\arabic*.}]}
    {\end{enumerate}}

\newcommand\bolditem[1]{\item \textbf{#1}}


\begin{document}

\blindtext

\begin{boldenumerate}
  \bolditem{Caption:} xxx fsdkjnfdskf sdnjdsnfmdns dnsmfndsmfnds 
    nfdsmn fmssadasd"=dnfm nsdmfn msndmnsdbfinsfdn % <==================
  \bolditem{Caption:} xxx fsdkjnfdskf sdnjdsnfmdns dnsmfndsmfnds 
    nfd Pop"=Operationen nsdmfn msndmnsdbfinsfdn % <====================
  \bolditem{Another caption:} yy
\end{boldenumerate}

\end{document}

원하는 결과를 얻습니다.

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

답변2

실제로, 독일어 외에 이 패키지에 대한 다른 많은 언어 정의 파일은 babelTeX의 하이픈 넣기 기능에 영향을 주지 않고 단어 사이에 명시적인 하이픈을 삽입하는 동일한 단축어를 정의합니다. 그러나 부록 H의 도움으로 쉽습니다.TeXbook, 외부 패키지에 의존하지 않고 동일한 작업을 수행하는 작은 매크로를 작성합니다.

실제로 TeX는 가로 목록의 모든 글루 항목에서 시작하여 하이픈이 들어갈 단어를 미리 살펴보므로 \nobreak\hskip\z@skip명시적인 하이픈 뒤에 추가하는 것으로 충분합니다. \nobreak다음 글루에서 줄 바꿈을 금지하지만 해당 글루는 다음 글루로 "계산"됩니다. 그럼에도 불구하고 미리보기의 출발점. 또한, 해당 단어의 하이픈 연결을 허용하기 위해선행하다명시적인 하이픈은 단어와 하이픈 사이에 특정 유형의 노드를 삽입하는 데 필요하며 충분합니다. 그 중 "가장 저렴한" 노드는 아마도 빈 \vadjust노드일 것입니다. 그래서:

% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly 
                                 % declare the paper format.

\usepackage[T1]{fontenc}         % Not always necessary, but recommended.
% End of standard header.  What follows pertains to the problem at hand.

\makeatletter

\newcommand*\+{\vadjust{}-\nobreak\hskip\z@skip}

\makeatother



\begin{document}

\showhyphens{arithmetical-mathematical-geometrical}
\showhyphens{arithmetical\+mathematical\+geometrical}

This book treats of several complex problems that are
arithmetical\+mathematical\+geometrical in nature.  I~don't believe, however,
that such word as the compound adjective
``arithmetical\+mathematical\+geometrical'' exists in English: indeed, I've just
made it up.

\end{document}

\showhyphens명령 의 출력을 비교하십시오.

Underfull \hbox (badness 10000) in paragraph at lines 18--18
[] \T1/cmr/m/n/10 arithmetical-mathematical-geometrical

Underfull \hbox (badness 10000) in paragraph at lines 19--19
[] \T1/cmr/m/n/10 arith-meti-cal-math-e-mat-i-cal-ge-o-met-ri-cal

모든 것이 예상대로 작동하는지 확인합니다. 생성된 출력을 살펴볼 수도 있습니다.

코드 출력

답변3

해결 방법을 알아낼 수 있습니다. 예를 들어 독일어 단어 Pop-Operationen에서 문제가 발생했습니다. 대신에 두 단어의 공통 하이픈 연결을 추가로 허용하는 Pop-Operationen글을 썼습니다 . Pop"=Operationen이 특별한 경우에 나는

"팝-오퍼레이션-

넨"

관련 정보