下图下方有大量空白。我该如何去除它?(我是新用户,不知道如何发布 tex 代码。)
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzLabelPoints[below](A)
\tkzLabelPoints[below](B)
\tkzDrawSegment(A,B)
\tkzDefPoint(2,3){C}
\tkzLabelPoints[above](C)
\tkzDrawSegment(A,C)
\tkzDrawSegment(B,C)
\tkzDrawBisector(C,B,A)(P)
\tkzDrawBisector(C,A,B)(Q)
\tkzDrawBisector(A,C,B)(R)
\tkzDefCircle[in](A,B,C)\tkzGetPoint{I}\tkzGetLength{rIN}
\tkzDrawCircle[R](I,\rIN pt)
\draw[red] (I) -- ($(A)!(I)!(C)$)++(-30:0.1) -- ++(56:0.1) -- +(-34:-0.1);
\draw[red] (I) -- ($(A)!(I)!(B)$) ++(90:0.1) -- ++(0:-0.1) -- +(-90:0.1);
\draw[red] (I) -- ($(B)!(I)!(C)$) ++(45:-0.1) -- ++(-45:0.1) -- +(45:0.1);
\draw (I)+(.2,-.3) node {$I$};
\end{tikzpicture}
\caption{Inscribed circle.}
\end{figure}
\end{document}
答案1
问题是,成本加运费提及her answer
,在计算某些元素(在您的例子中是角平分线甚至内切圆)时,边界框会变大。另一种防止出现此问题的方法是使用本机命令,而不是中断边界框\tkzClip
。
还请注意,您可以使用以下方式代替手动\draw
操作来设置高度
\tkzDrawAltitude
\tkzMarkRightAngle
正如我在代码中所做的那样。完整代码:
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{figure}[h!]
\centering
\begin{tikzpicture}
\tkzInit[xmin=-0.3,xmax=5.3,ymin=-0.5,ymax=3.5]
\tkzClip
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzLabelPoints[below](A)
\tkzLabelPoints[below](B)
\tkzDrawSegment(A,B)
\tkzDefPoint(2,3){C}
\tkzLabelPoints[above](C)
\tkzDrawSegment(A,C)
\tkzDrawSegment(B,C)
\tkzDrawBisector(C,B,A)(P)
\tkzDrawBisector(C,A,B)(Q)
\tkzDrawBisector(A,C,B)(R)
\tkzDefCircle[in](A,B,C)\tkzGetPoint{I}\tkzGetLength{rIN}
\tkzDrawCircle[R](I,\rIN pt)
\tkzSetUpLine[color=red]
\tkzDrawAltitude(A,B)(I)
\tkzMarkRightAngle[color=red,size=.15](I,tkzPointResult,A)
\tkzDrawAltitude(B,C)(I)
\tkzMarkRightAngle[color=red,size=.15](I,tkzPointResult,B)
\tkzDrawAltitude(C,A)(I)
\tkzMarkRightAngle[color=red,size=.15](I,tkzPointResult,C)
\end{tikzpicture}An
\caption{Inscribed circle.}
\end{figure}
\end{document}
答案2
我认为绘制角平分线会增加边界框。您可以通过在绘制角平分线时中断边界框来避免这种情况。
\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetkzobj{all}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\tkzDefPoint(0,0){A}
\tkzDefPoint(5,0){B}
\tkzLabelPoints[below](A)
\tkzLabelPoints[below](B)
\tkzDrawSegment(A,B)
\tkzDefPoint(2,3){C}
\tkzLabelPoints[above](C)
\tkzDrawSegment(A,C)
\tkzDrawSegment(B,C)
\begin{pgfinterruptboundingbox}
\tkzDrawBisector(C,B,A)(P)
\tkzDrawBisector(C,A,B)(Q)
\tkzDrawBisector(A,C,B)(R)
\end{pgfinterruptboundingbox}
\tkzDefCircle[in](A,B,C)\tkzGetPoint{I}\tkzGetLength{rIN}
\tkzDrawCircle[R](I,\rIN pt)
\draw[red] (I) -- ($(A)!(I)!(C)$)++(-30:0.1) -- ++(56:0.1) -- +(-34:-0.1);
\draw[red] (I) -- ($(A)!(I)!(B)$) ++(90:0.1) -- ++(0:-0.1) -- +(-90:0.1);
\draw[red] (I) -- ($(B)!(I)!(C)$) ++(45:-0.1) -- ++(-45:0.1) -- +(45:0.1);
\draw (I)+(.2,-.3) node {$I$};
\end{tikzpicture}
\caption{Inscribed circle.}
\end{figure}
\end{document}
下面是未修改代码(Before)和修改代码(After)的对比图:
答案3
另一个可能的解决方案,也就是所谓的大锤法,就是在和\vspace*{-3.2cm}
之间插入一个。这样,你可以删除空格,但它只能解决问题的症状,而不能解决问题的根源。\end{tikzpicture}
\caption{Inscribed circle.}