(Vorweg: Falls jemand einen besseren Titel zur Frage formulieren kann, bitte gerne ändern.) Ich habe in folgendem Beispiel die Verschiebung eines Open in Online-Editor
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{tikz} \begin{document} \begin{tikzpicture}[scale=1] \pgfmathsetmacro{\unitshift}{5 mm} \draw (0,0) node[below=\unitshift,anchor=base] {$a$} -- (0,1); \end{tikzpicture} \end{document} Dies funktioniert einwandfrei, d.h. das "a" wird korrekt um 5 mm nach unten verschoben. Nun bin ich gezwungen, die Open in Online-Editor
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[scale=1] \pgfmathsetmacro{\unitshift}{5 mm} \draw (0,0) node[below=\unitshift,anchor=base] {$a$} -- (0,1); \end{tikzpicture} \end{document} Hier funktioniert das ganze nicht mehr, das "a" wird um deutlich mehr als 5 mm nach unten geschoben. Wenn ich Warum tritt dieses Verhalten mit der gefragt 25 Sep '16, 12:02 tom75 |
Wenn man sich Open in Online-Editor
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[scale=1] \pgfmathsetmacro{\unitshift}{5 mm} \draw (0,0) node[below=\unitshift pt,anchor=base] {$a$} -- (0,1); \end{tikzpicture} \end{document} Wenn die Einheit Open in Online-Editor
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[scale=1] \pgfmathsetlengthmacro{\unitshift}{5 mm} \draw (0,0) node[below=\unitshift,anchor=base] {$a$} -- (0,1); \end{tikzpicture} \end{document} Natürlich könnte man Open in Online-Editor
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{positioning} \begin{document} \begin{tikzpicture}[scale=1] \newcommand*{\unitshift}{5 mm} \draw (0,0) node[below=\unitshift,anchor=base] {$a$} -- (0,1); \end{tikzpicture} \end{document} In diesem Fall wird Natürlich kann man statt eines Makros Open in Online-Editor
\documentclass[a4paper]{article} \usepackage[utf8]{inputenc} \usepackage{tikz} \usetikzlibrary{positioning} \newlength{\unitshift} \begin{document} \begin{tikzpicture}[scale=1] \pgfmathsetlength{\unitshift}{5 mm} \draw (0,0) node[below=\unitshift,anchor=base] {$a$} -- (0,1); \end{tikzpicture} \end{document} Alle Lösungen funktionieren unabhängig von der Verwendung von beantwortet 25 Sep '16, 12:44 saputello |
Du benutzt das falsche Makro. Es sollte
\pgfmathsetlength{\unitshift}{5 mm}
sein.@Henri Danke für den Alternativvorschlag. Ist es korrekt, dass ich dann davor noch
\newlength{\unitshift}
schreiben muss?@tom75 Entweder das oder du verwendest
\pgfmathsetlengthmacro{\unitshift}{5 mm}
. Weitere Informationen findest du im pgfmanual Abschnitt 89.1.1.@sudo Alles klar, danke. Bleibt nur noch die Frage, welche Variante die sauberste ist, die von dir bzw. @Henri vorgeschlagene oder die von @saputello. Oder ist das nur Geschmackssache?
@tom75 Ich würde behaupten, dass es darauf ankommt, ob du in
\unitshift
irgendwie rechnen möchtest. Wenn du also\newcommand*{\unitshift}{5mm+10pt}
benutzt, kommt das darauf an, wo du das verwendest, ob es richtig funktioniert.\newcommand
hat dafür den Vorteil, dass es prüft, ob das Makro schon existiert. Gerade bei relativ allgemeinen englischen Namen, kann es sonst schon mal passieren, dass man etwas überscheibt, was woanders gebraucht wird.