我想使用 TikZ 來做一些建設性的工作,也就是寫一個製造實驗室雷射切割機。這個漂亮的設備可以獲得二維繪圖(PDF 格式)並沿著所有內容進行切割髮際線在 PDF 中。 A哈林定義為厚度為 0.01 pt 的路徑。
但是,如果我用 TikZ 嘗試這個並且pdflatex
\begin{tikzpicture}
\draw[line width=0.01pt] (0,0) rectangle (1cm,1cm);
\end{tikzpicture}
然後在 Adobe Illustrator 中開啟產生的 PDF,它顯示的線寬為 0.0179 pt – 太粗了。看來我已經達到 TeX 的極限了。
編輯:0.0179 pt 具有雙重效果。首先,我pt
在我真正應該使用的地方使用了0.01bp
,因為字母單位實際上就是其他人所說的點。 (看LaTeX 可以理解哪些可能的尺寸/大小/單位?)。其次,我分析的PDF不是直接來自的pdflatex
,而是經過MacOS後製的,這導致了奇怪的線寬。謝謝保羅!
仍然是關於 TeX 的最小線寬和最大分辨率的一般問題。
那麼使用 TeX 和 TiKZ 可以得到的最小線寬是多少呢?
另外,這與放置物件的最大解析度相同嗎?
(對於技術圖紙,有時必須深入到 µm 級別,1 µm = 0.002845 pt)
答案1
透過以下方式編譯此文件pdflatex
:
\documentclass[tikz]{standalone}
\pdfcompresslevel=0
\pdfobjcompresslevel=0
\begin{document}
\begin{tikzpicture}
\draw[line width=0.01pt] (0,0) rectangle (1cm,1cm);
\end{tikzpicture}
\end{document}
然後w
在 PDF(一個簡單的文字檔案)中搜尋指令。你發現:
0.3985瓦 0.00995瓦
第一次出現是 TikZ 的預設線寬(=~ .4pt)。
第二次出現的是繪製矩形所使用的線寬。你是對的:不是0.01
但是0.00995
。
如果您line width=0.01004pt
在文件中使用,您將0.01
在 PDF 文件中得到準確的結果 (0.01004/72.27*72=.0100024906600249063...)。
(看著LaTeX 可以理解哪些可能的尺寸/大小/單位?,特別是pt
和bp
單位...)
編輯:
TikZ 產生的最小非空線寬是0.00003pt
(0.00002 w
在 PDF 中)。
筆記:空線寬在 PDF 中具有特殊意義(如在 PostScript 中)。
摘自PDF 32000-1:2008:線寬 0 表示可以在裝置解析度下渲染的最細線:1 裝置像素寬。然而,某些設備無法再現 1 像素線,並且在高解析度設備上,它們幾乎是看不見的。由於渲染此類零寬度線的結果取決於設備,因此不應使用它們。
答案2
我完全不確定你如何確定線段的寬度,但是,除非你需要線的0.01pt
寬度精確,否則 TikZ 當然允許你構造寬度極窄的線
% arara: pdflatex
% arara: pdflatex
% arara: open
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\foreach \myn in {0,1,2,3,4,5,6,7,8,9}
{
\pgfmathsetmacro\mypt{0.01pt - 0.00\myn pt}
\typeout{===>myn=\myn:\mypt}
\draw[line width=\mypt pt]
(0,\myn/400) -- (0.125,\myn/400);
}
\end{tikzpicture}
\end{document}