图形下方的空白处

图形下方的空白处

下图下方有大量空白。我该如何去除它?(我是新用户,不知道如何发布 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.}

相关内容