Mein Code schafft es nicht, die Zeichnung so auszurichten, dass die Linie SR (Mitte des Graphenausschnitts) in der Mitte der Seite liegt. Es fällt auf, dass die Zeichnung im Vergleich zum Text darüber und zur Bildunterschrift und Seitennummerierung darunter nach links verschoben ist.
\documentclass[12pt, a4paper, oneside]{article}
\usepackage{indentfirst}
\usepackage[margin = 2.5cm]{geometry}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amssymb}
\usetkzobj{all}
\begin{document}
...some text here...
\begin{align*}
\sec{\varphi}=\frac{|OS|}{|OR|}=\frac{|OS|}{1}=|OS|
& & \cot{\varphi}=\frac{|OU|}{|OT|}=\frac{|OU|}{1}=|OU|
\end{align*}
{\centering
\begin{tikzpicture}[scale=4]
\def\costhirty{0.8660256}
\def\secthirty{1.1547}
\def\sinfifteen{-0.258819}
\def\cosfifteen{0.9659258}
\draw[color=gray,dotted,step=1cm] (-0.25,-0.25) grid (2.25,1.25);
\draw (\cosfifteen,\sinfifteen) arc (-15:105:1cm);
\draw[color=gray,dotted] (0,0) -- (30:2.5cm);
\draw[color=gray,dotted] (30:1cm) -- +(-90:0.75cm);
\draw[color=gray,dotted] (30:1cm) -- +(90:0.75cm);
\coordinate (O) at (0, 0);
\coordinate (P) at (\costhirty, 0);
\coordinate (Q) at (30:1cm);
\coordinate (R) at (1, 0);
\coordinate (S) at (30:\secthirty);
\coordinate (T) at (0, 1);
\coordinate (U) at (30:2);
\draw[thick] (O)--(90:1.25);
\draw[thick] (O)--(0:2.25);
\draw[thick] (Q)--(P);
\draw[thick] (O)--(U)--(T);
\draw[thick] (R)--(S);
\tkzLabelPoints[below left](O)
\tkzLabelPoints[below left](P)
\tkzLabelPoints[left = 5pt of Q](Q)
\tkzLabelPoints[below right](R)
\tkzLabelPoints[below right](S)
\tkzLabelPoints[above left](T)
\tkzLabelPoints[above](U)
\tkzMarkAngle[fill = gray, size=0.3cm, opacity = .3](P,O,Q)
\tkzLabelAngle[pos = 0.2](P,O,Q){$\varphi$}
\tkzMarkAngle[fill = gray, size=0.3cm, opacity = .3](T,U,O)
\tkzLabelAngle[pos = -0.2](O,U,T){$\varphi$}
\end{tikzpicture}
\textit{\scriptsize{Figure 2}}
}
\end{document}
Der obige Code führt zu folgender Vorschau. (Die doppelte rote Linie wurde nachträglich hinzugefügt.)
Wie kann ich die Linie SR zentrieren, sodass sie mit dem Rest des Inhalts übereinstimmt, der durch die doppelte rote Linie verläuft?
Antwort1
Ich weiß nicht genau, warum, aber die tkz-euclide
Winkelmarkierungsmakros müssen einige interne Kontrollpunkte verwenden, die über den Begrenzungsrahmen der Grafik hinausgehen.
Die Lösung besteht darin, sie in einer Umgebung einzuschließen pgfinterruptboundingbox
:
\documentclass[12pt, a4paper, oneside]{article}
\usepackage{indentfirst}
\usepackage[margin = 2.5cm]{geometry}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usepackage{amssymb}
\usetkzobj{all}
\begin{document}
...some text here...
\begin{align*}
\sec{\varphi}=\frac{|OS|}{|OR|}=\frac{|OS|}{1}=|OS|
& & \cot{\varphi}=\frac{|OU|}{|OT|}=\frac{|OU|}{1}=|OU|
\end{align*}
{\centering
\begin{tikzpicture}[scale=4]
\def\costhirty{0.8660256}
\def\secthirty{1.1547}
\def\sinfifteen{-0.258819}
\def\cosfifteen{0.9659258}
\draw[color=gray,dotted,step=1cm] (-0.25,-0.25) grid (2.25,1.25);
\draw (\cosfifteen,\sinfifteen) arc (-15:105:1cm);
\draw[color=gray,dotted] (0,0) -- (30:2.5cm);
\draw[color=gray,dotted] (30:1cm) -- +(-90:0.75cm);
\draw[color=gray,dotted] (30:1cm) -- +(90:0.75cm);
\coordinate (O) at (0, 0);
\coordinate (P) at (\costhirty, 0);
\coordinate (Q) at (30:1cm);
\coordinate (R) at (1, 0);
\coordinate (S) at (30:\secthirty);
\coordinate (T) at (0, 1);
\coordinate (U) at (30:2);
\draw[thick] (O)--(90:1.25);
\draw[thick] (O)--(0:2.25);
\draw[thick] (Q)--(P);
\draw[thick] (O)--(U)--(T);
\draw[thick] (R)--(S);
\tkzLabelPoints[below left](O)
\tkzLabelPoints[below left](P)
\tkzLabelPoints[left = 5pt of Q](Q)
\tkzLabelPoints[below right](R)
\tkzLabelPoints[below right](S)
\tkzLabelPoints[above left](T)
\tkzLabelPoints[above](U)
\begin{pgfinterruptboundingbox}
\tkzMarkAngle[fill = gray, size=0.3cm, opacity = .3](P,O,Q)
\tkzLabelAngle[pos = 0.2](P,O,Q){$\varphi$}
\tkzMarkAngle[fill = gray, size=0.3cm, opacity = .3](T,U,O)
\tkzLabelAngle[pos = -0.2](O,U,T){$\varphi$}
\end{pgfinterruptboundingbox}
\end{tikzpicture}
\textit{\scriptsize{Figure 2}}
}
\end{document}
Wenn wir das Beispiel ein wenig verkleinern, wird das Problem mit einigen „Instrumenten“ zum Testen deutlicher:
\documentclass{article}
\usepackage{tkz-euclide}
\usepackage{amsmath}
\usetkzobj{all}
\begin{document}
...some text here... \hrulefill
\begin{align*}
\sec{\varphi}=\frac{|OS|}{|OR|}=\frac{|OS|}{1}=|OS|
& & \cot{\varphi}=\frac{|OU|}{|OT|}=\frac{|OU|}{1}=|OU|
\end{align*}
{\centering
\begin{tikzpicture}[scale=4]
\coordinate (O) at (0, 0);
\coordinate (P) at ({cos(30)}, 0);
\coordinate (Q) at (30:1cm);
\coordinate (R) at (1, 0);
\coordinate (S) at (30:{sec(30)});
\coordinate (T) at (0, 1);
\coordinate (U) at (30:2);
\draw[thick] (Q)--(P);
\draw[thick] (O)--(U)--(T);
\draw[thick] (R)--(S);
\node[red] at (current bounding box.south) {$\vert$};
\begin{pgfinterruptboundingbox}
\tkzMarkAngle[fill = gray, size=0.3cm, opacity = .3](P,O,Q)
\tkzLabelAngle[pos = 0.2](P,O,Q){$\varphi$}
\tkzMarkAngle[fill = gray, size=0.3cm, opacity = .3](T,U,O)
\tkzLabelAngle[pos = -0.2](O,U,T){$\varphi$}
\end{pgfinterruptboundingbox}
\node[blue] at (current bounding box.south) {$\vert$};
\end{tikzpicture}
$\vert$
}
\end{document}
Beachten Sie, wie mit der pgfinterruptboundingbox
Umgebung alle drei \vert
s ausgerichtet sind. Wenn Sie diese Umgebung auskommentieren, wird die Fehlausrichtung angezeigt, die durch die Winkelmarkierungsmakros im Begrenzungsrahmen verursacht wurde.