TikZ 填滿零寬度邊框

TikZ 填滿零寬度邊框

\fill我正在嘗試使用 TikZ 使用緊密堆疊的矩形來建立密度圖。影像中不需要的細邊框,它們是渲染的產物還是 的功能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 閱讀器的產物。在 AR9/Linux 中,我明顯看到白線和黑線,這兩者都取決於視圖比例。

如果填滿區域的邊框線不位於像素邊框上,則 PDF 檢視器必須決定如何對這些邊框像素進行著色。然後,顯然它們被留空,而在 AR 中,它們從兩個填充區域 ( opacity=75) 獲取顏色。

因此我會使用點陣圖影像。例如,你的第一張圖片 有26列。在 gimp 中將其縮放到寬度 26 像素後,我得到一個影像26 x 37 像素:xUnJo.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
    

相關內容