
Wie kann ich die folgenden Vbox-Fehler stoppen? Sie stoppen nur, wenn ich meine Diagramme auf den Maßstab 0,3 cm einstelle und sie nicht so klein haben möchte. Ich weiß, dass es im WME nicht angezeigt wird, aber im vollständigen Dokument ist dies das einzige Diagramm, bei dem es betroffen ist.
\documentclass[12pt, a4paper, twoside, openright,fleqn, leqno, draft, ]{book}
\usepackage{tkz-euclide} %Tkz-Euclide diagrams
\usepackage{amsmath,amsthm,amssymb,cancel} %Math packages
%Diagram environment
\newenvironment{diagram}
{%
\par\addvspace{0pt}%
\centering
\stepcounter{CountDiag}
\tkzSetUpCompass[lenth=1cm]
\begin{tikzpicture}
}{%
\end{tikzpicture}\par
\vspace{-20pt}
Diagram~\theCountDiag\par
\addvspace{0pt}
}
% \newcounter{CountDiag}\counterwithin*{CountDiag}. {section}%
\newcounter{CountDiag}\counterwithin*{CountDiag}{section}%
\newcommand{\Tri}[8]{%%
\tkzDefPoint(0,0){#1}%
\tkzDefPoint({#2,#3}){#4}%
\tkzDefPoint({#5,#6}){#7}%
\tkzDrawPolygon[fill=#8](#1,#4,#7)%
\tkzLabelPoint[left](#1){$#1$}%
\tkzLabelPoint[below](#4){$#4$}%
\tkzLabelPoint[above](#7){$#7$}%
\tkzDrawPoints(#1,#4,#7)%
}
\begin{document}
\begin{diagram}[scale=0.7]
\Tri{B}{3}{0}{C}{1.5}{3}{A}{none}
\tkzDefPointOnLine[pos=2](A,B) \tkzGetPoint{E}
\tkzDefPointOnLine[pos=2](A,C) \tkzGetPoint{D}
\tkzDefPointOnLine[pos=1.5](A,B) \tkzGetPoint{F}
\tkzDefPointOnLine[pos=1.5](A,C) \tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(A,E)
\tkzDrawSegment(A,D)
\tkzLabelPoints[left](E)
\tkzLabelPoints[right](D)
\tkzLabelPoints[left](F)
\tkzLabelPoints[right](G)
\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](A,B)
\tkzMarkAngle[size=0.5](A,C,B)
\tkzMarkAngle[size=0.5](C,B,A)
\tkzDrawPoints[fill=gray](A,B,C,D,E,F,G)
\tkzDrawSegment[dashed](C,F)
\end{tikzpicture}
\hspace{0.3cm}
\begin{tikzpicture}[scale=0.7]
\Tri{B}{3}{0}{C}{1.5}{3}{A}{none}
\tkzDefPointOnLine[pos=2](A,B) \tkzGetPoint{E}
\tkzDefPointOnLine[pos=2](A,C) \tkzGetPoint{D}
\tkzDefPointOnLine[pos=1.5](A,B) \tkzGetPoint{F}
\tkzDefPointOnLine[pos=1.5](A,C) \tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(A,E)
\tkzDrawSegment(A,D)
\tkzLabelPoints[left](E)
\tkzLabelPoints[right](D)
\tkzLabelPoints[left](F)
\tkzLabelPoints[right](G)
\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](A,B)
\tkzMarkAngle[size=0.5](A,C,B)
\tkzMarkAngle[size=0.5](C,B,A)
\tkzDrawSegment[dashed](B,G)
\tkzDrawPoints[fill=gray](A,B,C,D,E,F,G)
\end{tikzpicture}
\hspace{0.3cm}
\begin{tikzpicture}[scale=0.7]
\Tri{B}{3}{0}{C}{1.5}{3}{A}{none}
\tkzDefPointOnLine[pos=2](A,B) \tkzGetPoint{E}
\tkzDefPointOnLine[pos=2](A,C) \tkzGetPoint{D}
\tkzDefPointOnLine[pos=1.5](A,B) \tkzGetPoint{F}
\tkzDefPointOnLine[pos=1.5](A,C) \tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(A,E)
\tkzDrawSegment(A,D)
\tkzLabelPoints[left](E)
\tkzLabelPoints[right](D)
\tkzLabelPoints[left](F)
\tkzLabelPoints[right](G)
\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](A,B)
\tkzMarkAngle[size=0.5](A,C,B)
\tkzMarkAngle[size=0.5](C,B,A)
\tkzDrawSegment[dashed](B,G)
\tkzDrawSegment[dashed](C,F)
\tkzDrawPoints[fill=gray](A,B,C,D,E,F,G)
\end{diagram}
\end{document}
Entschuldigen Sie den langen Code, aber es handelt sich hauptsächlich um Diagrammmaterial.
Bildschirmfoto:
Antwort1
Der angezeigte Code hat keine nicht voll ausgefüllte Vbox, obwohl er möglicherweise am Seitenumbruch beteiligt ist und eine nicht voll ausgefüllte Seite erzeugt. (Sie hätten das Beispiel vereinfachen können, indem Sie alle Tikz durch ersetzt hätten, \rule{5pt}{4cm}
da nur die vertikale Größe des Diagramms zählt.)
Ein Beispiel für Ihr Problem ist
\documentclass[12pt, a4paper, twoside, openright,fleqn, leqno, draft, ]{book}
\usepackage{tkz-euclide} %Tkz-Euclide diagrams
\usepackage{amsmath,amsthm,amssymb,cancel} %Math packages
%Diagram environment
\newenvironment{diagram}
{%
\par\addvspace{0pt}%
\centering
\stepcounter{CountDiag}
\tkzSetUpCompass[lenth=1cm]
\begin{tikzpicture}
}{%
\end{tikzpicture}\par
\vspace{-20pt}
Diagram~\theCountDiag\par
\addvspace{0pt}
}
% \newcounter{CountDiag}\counterwithin*{CountDiag}. {section}%
\newcounter{CountDiag}\counterwithin*{CountDiag}{section}%
\newcommand{\Tri}[8]{%%
\tkzDefPoint(0,0){#1}%
\tkzDefPoint({#2,#3}){#4}%
\tkzDefPoint({#5,#6}){#7}%
\tkzDrawPolygon[fill=#8](#1,#4,#7)%
\tkzLabelPoint[left](#1){$#1$}%
\tkzLabelPoint[below](#4){$#4$}%
\tkzLabelPoint[above](#7){$#7$}%
\tkzDrawPoints(#1,#4,#7)%
}
\begin{document}
\begin{diagram}[scale=0.7]
\Tri{B}{3}{0}{C}{1.5}{3}{A}{none}
\tkzDefPointOnLine[pos=2](A,B) \tkzGetPoint{E}
\tkzDefPointOnLine[pos=2](A,C) \tkzGetPoint{D}
\tkzDefPointOnLine[pos=1.5](A,B) \tkzGetPoint{F}
\tkzDefPointOnLine[pos=1.5](A,C) \tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(A,E)
\tkzDrawSegment(A,D)
\tkzLabelPoints[left](E)
\tkzLabelPoints[right](D)
\tkzLabelPoints[left](F)
\tkzLabelPoints[right](G)
\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](A,B)
\tkzMarkAngle[size=0.5](A,C,B)
\tkzMarkAngle[size=0.5](C,B,A)
\tkzDrawPoints[fill=gray](A,B,C,D,E,F,G)
\tkzDrawSegment[dashed](C,F)
\end{tikzpicture}
\hspace{0.3cm}
\begin{tikzpicture}[scale=0.7]
\Tri{B}{3}{0}{C}{1.5}{3}{A}{none}
\tkzDefPointOnLine[pos=2](A,B) \tkzGetPoint{E}
\tkzDefPointOnLine[pos=2](A,C) \tkzGetPoint{D}
\tkzDefPointOnLine[pos=1.5](A,B) \tkzGetPoint{F}
\tkzDefPointOnLine[pos=1.5](A,C) \tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(A,E)
\tkzDrawSegment(A,D)
\tkzLabelPoints[left](E)
\tkzLabelPoints[right](D)
\tkzLabelPoints[left](F)
\tkzLabelPoints[right](G)
\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](A,B)
\tkzMarkAngle[size=0.5](A,C,B)
\tkzMarkAngle[size=0.5](C,B,A)
\tkzDrawSegment[dashed](B,G)
\tkzDrawPoints[fill=gray](A,B,C,D,E,F,G)
\end{tikzpicture}
\hspace{0.3cm}
\begin{tikzpicture}[scale=0.7]
\Tri{B}{3}{0}{C}{1.5}{3}{A}{none}
\tkzDefPointOnLine[pos=2](A,B) \tkzGetPoint{E}
\tkzDefPointOnLine[pos=2](A,C) \tkzGetPoint{D}
\tkzDefPointOnLine[pos=1.5](A,B) \tkzGetPoint{F}
\tkzDefPointOnLine[pos=1.5](A,C) \tkzGetPoint{G}
\tkzDrawPolygon(A,B,C)
\tkzDrawSegment(A,E)
\tkzDrawSegment(A,D)
\tkzLabelPoints[left](E)
\tkzLabelPoints[right](D)
\tkzLabelPoints[left](F)
\tkzLabelPoints[right](G)
\tkzMarkSegment[mark=|](A,C)
\tkzMarkSegment[mark=|](A,B)
\tkzMarkAngle[size=0.5](A,C,B)
\tkzMarkAngle[size=0.5](C,B,A)
\tkzDrawSegment[dashed](B,G)
\tkzDrawSegment[dashed](C,F)
\tkzDrawPoints[fill=gray](A,B,C,D,E,F,G)
\end{diagram}
\section{aaaaaa}
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
\section{aaaaaa}
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
\section{aaaaaa}
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx
\end{document}
das erzeugt
Underfull \vbox (badness 4108) has occurred while \output is active
Als book
Klassenstandard \flushbottom
ist jedoch kein Seitenumbruch direkt nach der Abschnittsüberschrift möglich. Der gesamte Abschnitt 0.3 muss auf die nächste Seite verschoben werden. Dann ist nicht genügend flexibler Kleber oder Text vorhanden, um das untere Ende von Seite 1 zu erreichen, ohne den Leerraum zu überdehnen. Daher die Warnung.
Sie könnten mehr Text schreiben, um den Platz zu füllen, oder ihn \vfill
nach dem Diagramm hinzufügen, um mehr Leerraum zu schaffen, oder ihn \clearpage
vor Abschnitt 3 verwenden, um eine kurze Seite zu erzwingen.