
다음에서 vbox 문제를 어떻게 중지합니까? 다이어그램의 크기를 0.3cm로 설정하고 그렇게 작게 만들고 싶지 않은 경우에만 중지됩니다. WME에는 표시되지 않지만 전체 문서에서는 다음과 같습니다. 영향을 미치는 유일한 다이어그램.
\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}
코드가 길어서 죄송합니다. 하지만 주로 다이어그램 관련 내용입니다.
스크린샷:
답변1
표시된 코드에는 언더풀한 vbox가 없지만, 언더풀한 페이지를 생성하는 페이지 나누기에 참여할 수 있습니다. ( \rule{5pt}{4cm}
중요한 것은 다이어그램의 수직 크기이므로 모든 tikz를 다음으로 바꾸는 예제를 단순화할 수 있습니다 .)
문제의 예는 다음과 같습니다.
\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}
생산하는
Underfull \vbox (badness 4108) has occurred while \output is active
book
클래스가 기본적으로 설정되어 있지만 \flushbottom
섹션 제목 바로 다음에 페이지 나누기가 불가능하므로 섹션 0.3 전체가 다음 페이지로 이동해야 하며, 페이지 1의 하단에 도달할 만큼 유연한 접착제나 텍스트가 충분하지 않습니다. 공백을 늘려서 경고합니다.
더 많은 텍스트를 작성하여 공간을 채우거나 \vfill
다이어그램 뒤에 추가하여 더 많은 공백을 허용하거나 \clearpage
섹션 3 앞에 사용하여 짧은 페이지를 강제할 수 있습니다.