Was tun, wenn sowohl „underfull \hbox“ als auch „overfull \hbox“ in derselben Zeile stehen?

Was tun, wenn sowohl „underfull \hbox“ als auch „overfull \hbox“ in derselben Zeile stehen?

Ich habe meine Dateien kürzlich durchgesehen, \jobname.logum typografische Fehler zu finden.

Ich bin auf Folgendes gestoßen:

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

Im Dokument sieht dieser Teil des Dokuments so aus:

dieser Link).

In diesem Fall gibt es für mich drei Möglichkeiten:

  1. Verwenden\linebreak Vorder Teil von \textcolor{orange}{main=....
  2. \linebreakIn der Mitte verwenden main=...(aktuelle Lösung).
  3. Verwenden Sie keine Zeilenumbrüche.

Alle drei Lösungen erzeugen sowohl die Meldung, dass die Hbox nicht voll oder übervoll ist.

Gibt es eine Möglichkeit, LaTeX dazu zu bringen, innerhalb der Umgebung Zeilenumbrüche vorzunehmen, um mindestens einen dieser Fehler zu beheben? Oder Text skalieren, Zeichenfelder anpassen usw.

Ich habe die vorhandenen Fragen durchgelesen und sie alle schlagen Zeilenumbrüche vor. In dieser Umgebung ist das vielleicht zu viel verlangt, aber ich würde zumindest gerne Möglichkeiten erkunden, dies in einem Sonderfall zu beheben (falls es überhaupt eine solche Sonderlösung gibt – Daumen drücken).

Antwort1

Dies liegt daran, dass die Schreibmaschinenschriftart ( \ttfamily) keine Dehnung oder Verkleinerung zwischen Wörtern aufweist. Daher ist sie normalerweise nicht gut geeignet, um ein Blocksatz-Erscheinungsbild zu erzielen. Stefan hat dazu im TeXblog einen schönen Blogeintrag geschrieben:Blocksatz in SchreibmaschinenschriftDer Vollständigkeit halber werde ich die Diskussion hier noch einmal wiederholen:

Bildbeschreibung hier eingeben

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

Beachten Sie die 0.0ptDehnung und Schrumpfung zwischen den Wörtern.

Der Vorschlag ist, zwischen den Wörtern etwas zu dehnen/verkleinern, und Sie möchten dies vielleicht generell für die linesUmgebung in Ihrem Code-Screenshot tun. Da ich jedoch keine visuelle Darstellung der linesSchreibweise habe, kann ich nur vorschlagen, dass Sie am Anfang der Umgebung Folgendes hinzufügen:

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

und vielleicht mit den Werten herumspielen.

Antwort2

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

Bildbeschreibung hier eingeben

verwandte Informationen