O que fazer com "underfull \hbox" e "overfull \hbox" na mesma linha?

O que fazer com "underfull \hbox" e "overfull \hbox" na mesma linha?

Recentemente li meus \jobname.logarquivos para detectar erros de tipografia.

Me deparei com isso:

Overfull \hbox (6.8925pt too wide) in paragraph at lines 650--651
[][]\T1/cmtt/m/n/10 plot([][][]<functie>[], []col=<kleur>[], []lwd=<breedte van
 de geplotte lijn>[], []type=<type plot,
 []


Underfull \hbox (badness 10000) in paragraph at lines 650--651
\T1/cmtt/m/n/10 zie hierboven>[], []xlab="<eenheid op de x-as>"[], []ylab="<een
heid op de y-as>"[], []main=[]
 []

No documento, esta parte do documento se parece com

esse link).

Neste caso, existem três opções para mim:

  1. Usar\linebreak antesa parte de \textcolor{orange}{main=....
  2. Use \linebreakno meio de main=...(solução atual).
  3. Não use quebras de linha.

Todas as três soluções produzem uma mensagem tanto de hbox insuficiente quanto de excesso de capacidade.

Existe uma maneira de incentivar o LaTeX a quebrar linhas no ambiente para corrigir pelo menos um desses erros? Ou dimensione o texto, ajuste caixas de caracteres, etc.

Li as perguntas existentes e todas sugerem quebra de linha. Neste ambiente, isso pode ser muito solicitado, mas eu gostaria pelo menos de explorar possibilidades de corrigir isso em um caso especial (se tal solução especial existir - dedos cruzados).

Responder1

Isso decorre do fato de que a fonte da máquina de escrever ( \ttfamily) não possui nenhum estiramento ou redução entre palavras. Como tal, normalmente não funciona bem para obter uma aparência justificada. Stefan escreveu uma bela entrada de blog neste TeXblog:Justificação completa com fonte de máquina de escrever. Para completar, duplicarei a discussão aqui:

insira a descrição da imagem aqui

\documentclass[a4paper,10pt]{article}
\renewcommand*\familydefault{\ttdefault}
\begin{document}
\begin{description}
  \item[slant] \the\fontdimen1\font
  \item[inter-word space] \the\fontdimen2\font
  \item[inter-word stretch] \the\fontdimen3\font
  \item[inter-word shrink] \the\fontdimen4\font
  \item[extra space] \the\fontdimen7\font
  \item[xspaceskip] \the\xspaceskip
  \item[hyphenchar] \the\hyphenchar\font
\end{description}
\end{document}

Observe o 0.0ptalongamento e a redução entre palavras.

A sugestão é adicionar algum alongamento/redução entre palavras, e você pode querer fazer isso em geral para o linesambiente na captura de tela do código. Porém, sem um visual de como linesestá escrito, só posso sugerir que você adicione o seguinte ao início do ambiente:

\fontdimen3\font=0.2em% inter-word stretch
\fontdimen4\font=0.1em% inter-word shrink

e talvez brincar com os valores.

Responder2

\documentclass{article}
\usepackage[english]{babel}
\usepackage{geometry,blindtext}
\usepackage{everysel}
\renewcommand*\familydefault{\ttdefault}
\begin{document}
\section{Default typesetting}
\blindtext

\section{With hyphenation}
\hyphenchar\font=`\-% to allow hyphenation
\blindtext

\section{With hyphenation and justification}
%\EverySelectfont{%
\fontdimen2\font=0.4em% interword space
\fontdimen3\font=0.2em% interword stretch
\fontdimen4\font=0.1em% interword shrink
\fontdimen7\font=0.1em% extra space
%\hyphenchar\font=`\-% to allow hyphenation
%}
\blindtext
\end{document}

insira a descrição da imagem aqui

informação relacionada