TikZ/TeX: Minimale Linienbreite/maximale Auflösung

TikZ/TeX: Minimale Linienbreite/maximale Auflösung

Ich möchte TikZ für konstruktive Arbeiten einsetzen, nämlich für die Programmierung einesFabLabLaserschneider. Dieses raffinierte Gerät erhält eine 2D-Zeichnung (als PDF) und schneidet entlang allerHaarlinienim PDF. Einharlinewird als Pfad mit einer Dicke von 0,01 pt definiert.

Wenn ich dies jedoch mit TikZ versuche undpdflatex

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

und öffne das resultierende PDF in Adobe Illustrator, wird mir eine Linienstärke von 0,0179 pt angezeigt – viel zu dick. Scheint, als hätte ich die Grenzen von TeX erreicht.


Bearbeiten:Die 0,0179 pt hatten einen doppelten Effekt. Erstens habe ich dort verwendet, ptwo ich eigentlich hätte verwenden sollen 0.01bp, da die Buchstabeneinheit eigentlich das ist, was alle anderen als Punkte bezeichnen. (SieheWelche möglichen Dimensionen/Größen/Einheiten versteht LaTeX?). Zweitens kamen die PDFs, die ich analysierte, nicht direkt aus pdflatex, sondern wurden von MacOS nachbearbeitet, was zu den seltsamen Linienbreiten führt. Danke, Paul!

Bleibt noch die allgemeine Frage nach der minimalen Zeilenbreite und maximalen Auflösung von TeX.


Was ist also die minimale Zeilenbreite, die ich mit TeX und TiKZ erreichen kann?

Und was ist das Gleiche wie die maximale Auflösung zum Platzieren von Objekten?

(Bei technischen Zeichnungen muss man teilweise bis auf die µm-Ebene heruntergehen, wobei 1 µm = 0,002845 pt ist)

Antwort1

Erstellen Sie dieses Dokument über 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}

Suchen Sie dann wim PDF (einer einfachen Textdatei) nach Anweisungen. Sie finden:

0,3985 W
0,00995 W

Das erste Vorkommen ist die Standardlinienbreite (=~ .4pt) von TikZ.

Das zweite Vorkommen ist die Linienbreite, die vom gezeichneten Rechteck verwendet wird. Sie haben Recht: das ist es nicht, 0.01sondern 0.00995.

Wenn Sie es line width=0.01004ptin Ihrem Dokument verwenden, erhalten Sie genau das 0.01in der PDF-Datei (0,01004/72,27*72=.0100024906600249063...).

(ansehenWelche möglichen Dimensionen/Größen/Einheiten versteht LaTeX?, insbesondere ptund bpEinheiten...)

Bearbeiten:

Die minimale von TikZ erzeugte Linienbreite ungleich Null beträgt 0.00003pt( 0.00002 wim PDF).

Notiz:Die Null-Zeilenbreite hat in PDF (wie in PostScript) eine besondere Bedeutung.

Auszug ausPDF 32000-1:2008:Eine Linienbreite von 0 bezeichnet die dünnste Linie, die bei Geräteauflösung gerendert werden kann: 1 Gerätepixel breit. Einige Geräte können jedoch keine 1-Pixel-Linien reproduzieren und auf hochauflösenden Geräten sind sie nahezu unsichtbar. Da die Ergebnisse der Darstellung solcher Linien mit der Breite Null geräteabhängig sind, sollten sie nicht verwendet werden.

Antwort2

Ich bin mir überhaupt nicht sicher, wie Sie die Breite des Liniensegments bestimmen, aber sofern Sie nicht eine exakte 0.01ptBreite der Linie benötigen, können Sie mit TikZ sicherlich Linien mit extrem schmalen Breiten konstruieren

% 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}

verwandte Informationen