Ausgehend von der Frage Linie nicht durchgängig in selbstdefiniertem TikZ-Pattern ergibt sich beim selbst definierten "north west pattern" zusätzlich zu den Lücken in den Linien das Problem, dass die Linien gegeneinander verschoben sind. Open in Online-Editor
\documentclass[12pt,a4paper]{scrartcl} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{patterns} \makeatletter \pgfdeclarepatternformonly[\LineSpace]{my north west lines}{\pgfqpoint{-1pt}{-1pt}} {\pgfqpoint{\LineSpace}{\LineSpace}}{\pgfqpoint{\LineSpace}{\LineSpace}}% { \pgfsetcolor{\tikz@pattern@color} \pgfsetlinewidth{0.4pt} \pgfpathmoveto{\pgfqpoint{0pt}{\LineSpace}} \pgfpathlineto{\pgfqpoint{\LineSpace + 0.1pt}{-0.1pt}} \pgfusepath{stroke} } \newdimen\LineSpace \tikzset{ line space/.code={\LineSpace=#1}, line space=3pt } \makeatother \begin{document} \begin{tikzpicture} \draw[red,fill,pattern color=blue,line space=10pt,pattern=my north west lines] (0,0) rectangle (2,3); \end{tikzpicture} \end{document} Wie lässt sich dies beheben? gefragt 23 Dez '16, 22:22 tom75 |
Wie schon bei der verlinkten Frage, musst Du bei den BoundingBox-Angaben die Liniendicke berücksichtigen, damit das Clipping auf die BoundingBox die Linienenden nicht anschneidet und damit Kerben in die Linien schlägt. Darüber hinaus hast Du bei der Pfadangabe selbst den Versatz eingebaut. Behebt man beide Fehler: Open in Online-Editor
\documentclass[12pt,a4paper]{scrartcl} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{patterns} \makeatletter \pgfdeclarepatternformonly[\LineSpace]{my north west lines} {\pgfqpoint{-0.2pt}{-0.2pt}}% Linke untere Ecke der BoundingBox (halbe % Liniendicke berücksichtigt) {\pgfpoint{\LineSpace+0.2pt}{\LineSpace+0.2pt}}% Rechte obere Ecke der % BoundingBox (halbe Liniendicke berücksichtigt) {\pgfqpoint{\LineSpace}{\LineSpace}}% { \pgfsetcolor{\tikz@pattern@color} \pgfsetlinewidth{0.4pt} \pgfpathmoveto{\pgfqpoint{0pt}{\LineSpace}} \pgfpathlineto{\pgfqpoint{\LineSpace}{0pt}}% Versatz entfernt \pgfusepath{stroke} } \newdimen\LineSpace \tikzset{ line space/.code={\LineSpace=#1}, line space=3pt } \makeatother \begin{document} \begin{tikzpicture} \draw[red,fill,pattern color=blue,line space=10pt,pattern=my north west lines] (0,0) rectangle (2,3); \end{tikzpicture} \end{document} bekommt man: beantwortet 24 Dez '16, 13:24 saputello @saputello: Vielen Dank! Ich mache seit 7 Uhr heute daran rum. Den Versatz hatte ich wegbekommen. Aber die Zacke blieb drin. Grund: Ich habe
(24 Dez '16, 13:36)
tom75
|