TikZ填充零宽度边框

TikZ填充零宽度边框

我正在尝试使用 TikZ 和紧密堆叠的矩形创建密度图\fill。图像中不需要的细边框是渲染的伪影还是特征fill?它们可以消除/平滑吗?

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgf}
\usepackage{gnuplot-lua-tikz}   %for colors
\begin{document}
\pagestyle{empty}
\begin{tikzpicture}[xscale=0.05,yscale=0.3]
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,0.00) -- (2.000,0.00) -- (2.000,0.40) -- (0.000,0.40) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,0.40) -- (2.000,0.40) -- (2.000,0.80) -- (0.000,0.80) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,0.80) -- (2.000,0.80) -- (2.000,1.20) -- (0.000,1.20) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,1.20) -- (2.000,1.20) -- (2.000,1.60) -- (0.000,1.60) -- cycle;
\fill[rgb color={0.40,0.50,0.01}, opacity=0.75] (0.000,1.60) -- (2.000,1.60) -- (2.000,2.00) -- (0.000,2.00) -- cycle;
\fill[rgb color={0.68,0.74,0.48}, opacity=0.75] (0.000,2.00) -- (2.000,2.00) -- (2.000,2.40) -- (0.000,2.40) -- cycle;
\fill[rgb color={0.95,0.96,0.92}, opacity=0.75] (0.000,2.40) -- (2.000,2.40) -- (2.000,2.80) -- (0.000,2.80) -- cycle;
\fill[rgb color={0.99,0.99,0.98}, opacity=0.75] (0.000,2.80) -- (2.000,2.80) -- (2.000,3.20) -- (0.000,3.20) -- cycle;
% ...
\end{tikzpicture}
\end{document}

放大图像

在此处输入图片描述

答案1

我认为这是 PDF 阅读器的一个缺陷。我在 evince 中看到白线,在 AR9/Linux 中看到暗线,两者都取决于视图比例。

如果填充区域的边界线不在像素边界上,那么 PDF 查看器必须决定如何为这些边界像素着色。然后在 evince 中它们被留空,而在 AR 中它们从两个填充区域 ( opacity=75) 获得颜色。

因此,我将改用位图图像。例如,您的第一张图片 有 26 列。在 gimp 中将其缩放到宽度 26 像素后,我得到了图像26 x 37 像素:匿名.png

在 TeX 文档中,图像再次被放大,例如:

\documentclass{article}
\usepackage{graphicx}
\pagestyle{empty}

\begin{document}
\noindent
\includegraphics[width=\linewidth]{xUnJo.png}
\end{document}

结果

透明度

问题中的文件使用opacity=0.75。有两种方法可以使用位图来支持此功能:

  • PNG 通过 alpha 通道支持透明度。
  • 可以创建不带透明度的位图(没有 alpha 通道时文件大小也会更小)。包含图像时会添加透明度。

位图生成

  • 直接的方法。

    颜色值直接写入图像文件中。便携式像素地图是一种简单的格式,因为它知道 ASCII 版本。MWE 的示例:

    P3
    # The P3 means RGB colors in ASCII.
    # Next line: 1 row, 9 columns (from bottom to top)
    # Following line: max. color
    # Then image data as integers.
    1 9
    255
    252 252 250
    242 245 235
    173 189 122
    173 189 122
    102 127 3
    102 127 3
    102 127 3
    102 127 3
    102 127 3
    

    然后可以将图像转换为 PNG,例如使用pnmtopngNetpbm 工具:

    pnmtopng <myimage.ppm >myimage.png
    
  • 间接方法。

    进入tikzpicture单独的页面/文档,没有边距。然后 PDF 版本可以转换为具有列/行数作为像素宽度/高度的图像。使用 ImageMagick 的转换示例和具有 26 列和 37 行的图像:

    convert -resize 26x37 myimage.pdf myimage.png
    

相关内容