(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 Code, hier editierbar zum Übersetzen:
Dies funktioniert einwandfrei, d.h. das "a" wird korrekt um 5 mm nach unten verschoben. Nun bin ich gezwungen, die Open in Online-Editor Code, hier editierbar zum Übersetzen:
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 |
Wenn man sich Open in Online-Editor Code, hier editierbar zum Übersetzen:
Wenn die Einheit Open in Online-Editor Code, hier editierbar zum Übersetzen:
Natürlich könnte man Open in Online-Editor Code, hier editierbar zum Übersetzen:
In diesem Fall wird Natürlich kann man statt eines Makros Open in Online-Editor Code, hier editierbar zum Übersetzen:
Alle Lösungen funktionieren unabhängig von der Verwendung von |
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.