PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : überflüssiger horizontaler Versatz



LuPi
17-09-2012, 10:09
In folgendem Beispiel ist die Grafik (um ein "Leerzeichen"?) nach rechts verschoben.
Die Zeilenenden sind alle (ob sinnvoll oder nicht) mit einem % abgeschlossen.
Wo kommt jetzt noch der unerwünschte Versatz her?

Wird das TikZpicture durch tikzpicture ersetzt, so verschwindet der Effekt.
Daher scheint die Definition der TikZpicture-Umgebung Schuld zu sein, aber
ich sehe nicht, wo ...


\documentclass{scrartcl}
\usepackage{parskip}
\usepackage{tikz}
\makeatletter
\newsavebox\tph
\newenvironment{TikZpicture}{%
\begin{lrbox}{\tph}%
\begin{tikzpicture}%
}{%
\end{tikzpicture}%
\end{lrbox}%
\begin{tikzpicture}%
\node {\usebox\tph};%
\end{tikzpicture}%
}%
\makeatother
\begin{document}
Test \hrulefill Test

\begin{TikZpicture}%
\draw (0,0) rectangle (\linewidth,0.5);
\node[right] at (0.125,0.25) {foo};
\node[left] at (\linewidth-0.125cm,0.25) {bar};
\end{TikZpicture}

Test \hrulefill Test
\end{document}

u_fischer
17-09-2012, 10:27
Du steckst deine Box doch in einen \node, und \node fügt drumherum zusätzlichen Abstand ein: \node[inner sep=0pt] {\usebox\tph};%

Vergiss auch nicht, dass die Linie eine Dicke hat: Die Hälfte ist sozusagen außerhalb, daher ist dein Rechteck etwas größer als \linewidth.

LuPi
17-09-2012, 10:33
Besten Dank!

inner sep=0pt hatte ich schon versucht, allerdings nur bei der ersten
tikzpicture-Umgebung (warum auch immer hatte ich die zweite übersehen).

Den Einfluss der Linienbreite werde ich noch korrigieren, allerdings ist die
so gering, dass das vermutlich kaum ins Gewicht fällt.