TikZ/TeX:最小线宽/最大分辨率

TikZ/TeX:最小线宽/最大分辨率

我想使用 TikZ 进行一些建设性的工作,即编写一个FabLab激光切割机。这款精巧的设备可以获取 2D 图纸(PDF 格式),并沿着所有细线在 PDF 中。哈林定义为厚度为 0.01 pt 的路径。

但是,如果我尝试使用 TikZ 和pdflatex

\begin{tikzpicture}
    \draw[line width=0.01pt] (0,0) rectangle (1cm,1cm);
\end{tikzpicture}

然后在 Adob​​e Illustrator 中打开生成的 PDF,它显示线宽为 0.0179 pt – 太粗了。似乎我已经达到了 TeX 的极限。


编辑:0.0179 pt 具有双重效果。首先,我使用了 ,pt而实际上应该使用0.01bp,因为字母单位实际上是其他人所指的点。(见LaTeX 可以理解哪些可能的尺寸 / 大小 / 单位?)。其次,我分析的 PDF 并非直接来自pdflatex,而是经过 MacOS 后期处理,导致线宽奇怪。谢谢 Paul!

仍然是关于 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 可以理解哪些可能的尺寸 / 大小 / 单位?,尤其是ptbp单位……)

编辑:

TikZ 生成的最小非零线宽为0.00003pt0.00002 wPDF 中)。

笔记:空线宽度在 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}

相关内容