在点之前绘制细线会改变点的大小

在点之前绘制细线会改变点的大小

当我用 绘制一条“非常细”的线\tkzDrawLine,然后用 绘制一些点时 \tkzDrawPoints,size 参数被忽略了。我想这是一个错误? 在此处输入图片描述

\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}

\begin{document}

\begin{tikzpicture}
  \tkzDefPoints{0/0/o,1/0/a,-1/0/b}
  \tkzDrawPoints[fill=white, size=8](o,a)
  \tkzDrawLine[very thin](a,b)
\end{tikzpicture}

\begin{tikzpicture}
  \tkzDefPoints{0/0/o,1/0/a,-1/0/b}
  \tkzDrawLine[very thin](a,b)
  \tkzDrawPoints[fill=white, size=8](o,a)
\end{tikzpicture}

\end{document}

答案1

问题在于将tkz键与tikz键混合在一起。样式very thin设置\pgflinewidthtkz-euclide定义size在 方面\pgflinewidth

由于very thin设置\pgflinewidth为 0.2pt,从初始值 0.4pt,在第二张图片中,你得到因子 8 产生了一个圆一半和第一张图片一样宽。

可能的解决方法:

  1. 画出所有线条,然后说\tikzset{thin}恢复的值\pgflinewidth

  2. 记得将因数加倍

  3. 定义一种新样式,abssize使用默认值 0.4pt

在下面的测试文件中实现了解决方法。

\documentclass{article}
\usepackage{tkz-euclide}
\usetkzobj{all}

\pgfkeys{
  /drawpoint/.cd, 
  abssize/.code = {
    \tikzset{
      point style/.append style={
        minimum size = #1*0.4pt
      }
    }
  },
}

\begin{document}

\begin{tikzpicture}
  \tkzDefPoints{0/0/o,1/0/a,-1/0/b}
  \tkzDrawPoints[fill=white, size=8](o,a)
  \tkzDrawLine[very thin](a,b)
\end{tikzpicture}

\begin{tikzpicture}
  \tkzDefPoints{0/0/o,1/0/a,-1/0/b}
  \tkzDrawLine[very thin](a,b)
  \tikzset{thin}
  \tkzDrawPoints[fill=white, size=8](o,a)
\end{tikzpicture}

\begin{tikzpicture}
  \tkzDefPoints{0/0/o,1/0/a,-1/0/b}
  \tkzDrawLine[very thin](a,b)
  \tkzDrawPoints[fill=white, size=16](o,a)
\end{tikzpicture}

\begin{tikzpicture}
  \tkzDefPoints{0/0/o,1/0/a,-1/0/b}
  \tkzDrawLine[very thin](a,b)
  \tkzDrawPoints[fill=white, abssize=8](o,a)
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容