TikZ: centrar una imagen

TikZ: centrar una imagen

Mi código no logra alinear el dibujo de modo que la línea SR (centro del extracto del gráfico) esté en el medio de la página. Se nota que el dibujo está desplazado hacia la izquierda en comparación con el texto de arriba y el título y la paginación debajo del dibujo.

\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}

El código anterior da como resultado la siguiente vista previa. (La doble línea roja se agregó posteriormente).

Dibujo

¿Cómo puedo tener la línea SR centrada para que quede alineada con el resto del contenido que pasa por la doble línea roja?

Respuesta1

No sé exactamente por qué, pero las tkz-euclidemacros de marcado de ángulos deben usar algunos puntos de control internos que van fuera del cuadro delimitador del gráfico.

La solución es encerrarlos dentro de un pgfinterruptboundingboxentorno:

\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}

ingrese la descripción de la imagen aquí


Minimizar un poco el ejemplo muestra el problema más claramente con alguna "instrumentación" para realizar pruebas:

\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}

ingrese la descripción de la imagen aquí

Observe cómo, con el pgfinterruptboundingboxmedio ambiente, las tres \vertestán alineadas. Al comentar este entorno se mostrará la desalineación introducida en el cuadro delimitador por las macros de marcado de ángulos.

información relacionada