Что делать с «underfull \hbox» и «overfull \hbox» в одной строке?

Что делать с «underfull \hbox» и «overfull \hbox» в одной строке?

Недавно я просматривал свои \jobname.logфайлы, чтобы выявить ошибки в типографике.

Я наткнулся на это:

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=[]
 []

В документе эта часть документа выглядит так

эта ссылка).

В этом случае у меня есть три варианта:

  1. Использовать\linebreak дочасть \textcolor{orange}{main=....
  2. Использовать \linebreakв середине main=...(текущего решения).
  3. Не используйте переносы строк.

Все три решения выдают сообщение как о недозаполненном, так и о переполненном hbox.

Есть ли способ заставить LaTeX переносить строки в среде, чтобы исправить хотя бы одну из этих ошибок? Или масштабировать текст, настраивать рамки символов и т. д.

Я прочитал существующие вопросы, и все они предлагают перенос строк. В этой среде это может быть слишком настойчиво, но я бы хотел хотя бы изучить возможности исправить это в особом случае (если такое особое решение вообще существует — держим пальцы скрещенными).

решение1

Это связано с тем, что шрифт пишущей машинки (\ttfamily ) не имеет межсловного растяжения или сжатия. Таким образом, он обычно не очень хорошо работает для получения выровненного вида. Стефан написал хорошую запись в блоге на эту тему TeXblog:Полное выравнивание шрифтом пишущей машинки. Для полноты картины я продублирую обсуждение здесь:

введите описание изображения здесь

\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}

Обратите внимание на 0.0ptрастяжение и сжатие между словами.

Предложение заключается в том, чтобы добавить некоторое межсловное растяжение/сжатие, и вы можете захотеть сделать это в целом для linesсреды на скриншоте кода. Однако, без визуального представления того, как linesэто написано, я могу только предложить вам добавить следующее в начало среды:

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

и, возможно, поэкспериментировать со значениями.

решение2

\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}

введите описание изображения здесь

Связанный контент