![德語解決方案](https://rvso.com/image/370301/%E5%BE%B7%E8%AA%9E%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%A1%88.png)
首先,這是我的 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
事實上,除了德語之外,該套件的許多其他語言定義檔案babel
定義了相同的簡寫,以在單字之間插入顯式連字符,而不影響 TeX 連接這些單字的能力。然而,在附錄 H 的幫助下,這很容易教材,編寫一個具有相同功能的小宏,而不依賴外部套件。
事實上,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
還允許兩個單字的共同連字符。在這個特殊情況下我得到了
「流行-操作-
嫩”