yoyoba hat geschrieben:Eine abschließende Frage hätte ich aber noch. Wenn ich mir dieses Gitternetz einmal erstellt habe, kann ich dies als Vorlage in dem aktuellen, oder in einem externen Dokument speichern... Z.B. unter dem Namen "Gitternetz" und es bei späterer Verwendung dann einfach mit Hllfe des Namens einfügen um nicht jedesmal den Code komplett einfügen zu müssen?
Vielleicht könntest du einfach einmal erklären, was du damit eigentlich vor hast?
Für mich riecht das stark danach, dass du eigentlich ein Füllmuster haben willst. Das geht mit der patterns-Library (siehe [d]pgf[/d]-Anleitung, Kapitel 60) eigentlich ganz einfach. Problem dabei ist allenfalls, dass es zwar Füllmuster für diagonale Linien gibt, aber immer nur für eine Richtung. Natürlich könnte man einfach zweimal die gleiche Figure (bei dir ein Quadrat) zeichnen und einmal in Nordwest- und einmal in Nordost-Richtung schraffieren. Man kann aber auch einfach ein neues Füllmuster definieren:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns}
% Neues Füllmuster als Vereinigung von north east lines und north west lines:
\pgfdeclarepatternformonly{cross lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{
\pgfsetlinewidth{0.4pt}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{3pt}}
\pgfpathlineto{\pgfqpoint{3.1pt}{-0.1pt}}
\pgfusepath{stroke}
}
\begin{document}
\begin{tikzpicture}
\draw[pattern=cross lines,ultra thick] (0,0) rectangle (2,2);
\end{tikzpicture}
\end{document}
Kopiert man einfach
% Neues Füllmuster als Vereinigung von north east lines und north west lines:
\pgfdeclarepatternformonly{cross lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{
\pgfsetlinewidth{0.4pt}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{3pt}}
\pgfpathlineto{\pgfqpoint{3.1pt}{-0.1pt}}
\pgfusepath{stroke}
}
in eine neue Datei meinfuellmuster.tex, kann man diese Datei natürlich in der Dokumentpräambel mit \input{meinfuellmuster.tex} laden.
Etwas schlauer ist, wenn man die Datei gleich pgflibrarycrosslinepattern.code.tex nennt und darin auch gleich die patterns-Library lädt. Dann kann man das neue Muster einfach als Library laden. Hier einmal wie in
Minimalbeispiel erklärt mit filecontents-Umgebung realisiert:
\begin{filecontents*}{pgflibrarycrosslinepattern.code.tex}
% pgflibrarycrosslinepattern.code.tex
% See <http://golatex.de/gedrehtes-gitternetz-erstellen-tikz-t18199.html>
\ProvidesFile{pgflibrarycrosslinepattern.code.tex}[2016/10/30 v0.1 combination
of north east and north west lines]
\usetikzlibrary{patterns}
\pgfdeclarepatternformonly{cross lines}{\pgfqpoint{-1pt}{-1pt}}{\pgfqpoint{4pt}{4pt}}{\pgfqpoint{3pt}{3pt}}%
{
\pgfsetlinewidth{0.4pt}
\pgfpathmoveto{\pgfqpoint{0pt}{0pt}}
\pgfpathlineto{\pgfqpoint{3.1pt}{3.1pt}}
\pgfpathmoveto{\pgfqpoint{0pt}{3pt}}
\pgfpathlineto{\pgfqpoint{3.1pt}{-0.1pt}}
\pgfusepath{stroke}
}
\end{filecontents*}
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{crosslinepattern}
\begin{document}
\begin{tikzpicture}
\draw[pattern=cross lines,ultra thick] (0,0) rectangle (2,2);
\end{tikzpicture}
\end{document}
Wenn du das laufen lässt, bekommst du auch gleich die entsprechende Datei. Wenn du diese wie unter »
Wie kann ich Klassen oder Pakete verwenden, die nur als einzelne Datei bereitgestellt werden?« erklärt installierst, funktioniert die Zeile \usetikzlibrary{crosslinepattern} auch in anderen Dokumenten.
Nun könnte man das Ganze natürlich noch beliebig weiter treiben und beispielsweise für die Liniendicke und den Linienabstand Optionen definieren. Wenn du das willst, solltest du ggf. zuerst eine ausführliche LaTeX-Einführung studieren und dann in der [d]pgf[/d]-Anleitung nachlesen, wie das mit den Optionen funktioniert. Natürlich musst du darin dann auch unbedingt die für oben die Pattern-Definition verwendeten Anweisungen nachlesen. Das versteht sich ja von selbst.
Aber vielleicht täusche ich mich ja auch und es geht gar nicht um ein Füllmuster. Deshalb wäre es eben so wichtig gewesen, von Anfang an zu erklären, worum es eigentlich geht.