Ausgehend von der Frage "Can I control the 'density' of a pattern in TikZ?" habe ich folgendes Beispiel:

Open in Online-Editor
\documentclass[12pt,a4paper]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{patterns}

\makeatletter
\pgfdeclarepatternformonly[\LineSpace]{my north east lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{\LineSpace}{\LineSpace}}{\pgfqpoint{\LineSpace}{\LineSpace}}%
{
  \pgfsetcolor{\tikz@pattern@color}
  \pgfsetlinewidth{0.4pt}
  \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
  \pgfpathlineto{\pgfqpoint{\LineSpace + 0.1pt}{\LineSpace + 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 east lines] (0,0) rectangle (2,3);
  \end{tikzpicture}
\end{document}

Wenn man das Ergebnis stark vergrößert, sind die blauen Linien des Patterns nicht durchgängig. Pattern!

Ist das ein Problem des PDF-Viewers? Falls nicht, wie kann man es korrigieren?

gefragt 23 Dez '16, 20:54

tom75's gravatar image

tom75
2.2k277984
Akzeptiert-Rate: 57%

bearbeitet 23 Dez '16, 22:23


Das liegt daran, dass die Bounding Box rechts oben auf den Punkt (\LineSpace,\LineSpace) begrenzt ist. Damit wird die Linie oben horizontal zu ihrer Mitte und rechts vertikal zu ihrer Mitte abgeschnitten. Wenn Du die halbe Liniendicke hinzu gibst, ist das Problem beseitigt:

Open in Online-Editor
\documentclass[12pt]{article}

\usepackage{tikz}
\usetikzlibrary{patterns}

\makeatletter
\pgfdeclarepatternformonly[\LineSpace]{my north east lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfpoint{\LineSpace+0.2pt}{\LineSpace+0.2pt}}{\pgfqpoint{\LineSpace}{\LineSpace}}%
{
  \pgfsetcolor{\tikz@pattern@color}
  \pgfsetlinewidth{0.4pt}
  \pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
  \pgfpathlineto{\pgfqpoint{\LineSpace + 0.1pt}{\LineSpace + 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 east lines] (0,0) rectangle (2,3);
  \end{tikzpicture}
\end{document}

alt text

Permanenter link

beantwortet 23 Dez '16, 21:35

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 23 Dez '16, 21:36

@saputello Vielen Dank. Ich hab die Frage noch um den Fall "north west" ergänzt. Hier scheint mir ein grundsätzliches Problem zu sein, weil die Linien verschoben zueinander sind.

(23 Dez '16, 22:01) tom75

@tom75: Das ist eine neue Frage und sollte (ggf. mit Link auf diese) neu gestellt werden. Jedenfalls nehme ich nicht an, dass das dasselbe Problem ist.

Ich mache jetzt allerdings Schluss.

Frohe Weihnachten!

(23 Dez '16, 22:16) saputello

@saputello: Ich hab eine neue Frage erstellt. Dir auch frohe Weihnachten.

(23 Dez '16, 22:24) tom75
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×6

gestellte Frage: 23 Dez '16, 20:54

Frage wurde gesehen: 7,483 Mal

zuletzt geändert: 23 Dez '16, 22:24