![Solução para o idioma alemão](https://rvso.com/image/370301/Solu%C3%A7%C3%A3o%20para%20o%20idioma%20alem%C3%A3o.png)
Primeiro de tudo, aqui está meu 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}
Em geral, ele faz exatamente o que eu quero. Mas, infelizmente, excede a borda direita em alguns casos quando a hifenização é invocada:
Há algo errado com minha definição de ambiente?
Responder1
Com o código que você nos mostrou você deve adicionar possivelmente quebras para adicionar por conta própria, se uma palavra já contiver um hífen. Então, em vez disso, você fmssadasd-dnfm
escreve, por exemplo fms\-sad\-asd-dnfm
(adivinhei duas posições para um válido -
) ou para sua palavra com hífen em sua resposta, Pop-Operationen
escreva Pop-Ope\-ra\-tio\-nen
.
O MWE completo é:
\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}
e dá o resultado:
Solução para o idioma alemão
Parece que você é alemão e usa o idioma alemão: então você usará o pacote babel
em seu código para suporte ao idioma. Com babel
você pode usar "=
para marcar uma -
palavra fixa, sempre impressa em alemão, mas outras hifenizações (automáticas) também são permitidas.
Então você obterá o seguinte MWE alemão
\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}
você obtém o resultado desejado:
Responder2
Na verdade, muitos outros arquivos de definição de idioma para o babel
pacote, além do alemão, definem a mesma abreviação para inserir hífens explícitos entre palavras sem afetar a capacidade do TeX de hifenizar essas palavras. No entanto, é fácil, com a ajuda do Apêndice H doO TeXbook, para escrever uma pequena macro que faça o mesmo, sem depender de pacotes externos.
Na verdade, o TeX espera que as palavras sejam hifenizadas a partir de cada item de cola em uma lista horizontal, então é suficiente adicionar \nobreak\hskip\z@skip
após o hífen explícito: o \nobreak
irá proibir uma quebra de linha na cola seguinte, mas essa cola “contará” como um ponto de partida para o futuro, não obstante. Além disso, para permitir a hifenização da palavra queprecedeo hífen explícito, é necessário e suficiente inserir entre a palavra e o hífen certos tipos de nós, dos quais o “mais barato” é provavelmente um \vadjust
nó vazio. Então:
% 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}
Compare a saída dos dois \showhyphens
comandos
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
para verificar se tudo funciona conforme o esperado. Você também pode dar uma olhada na saída produzida:
Responder3
Eu poderia descobrir uma solução alternativa: o problema ocorreu com a palavra alemã Pop-Operationen, por exemplo. Em vez de Pop-Operationen
escrevi, Pop"=Operationen
o que permite adicionalmente as hifenizações comuns de ambas as palavras. Neste caso especial eu consegui
"Pop-Operação-
não"