La figura de TikZ siempre se coloca en el centro de una página nueva

La figura de TikZ siempre se coloca en el centro de una página nueva

Me encuentro con este problema bastante extraño cuando uso TikZ con LyX 2. Tengo este gráfico programado usando TikZ, y se supone que debe seguir un párrafo de texto y ubicarse en la parte superior de la siguiente página nueva. En cambio, se coloca exactamente en el centro de la nueva página, dejando un espacio entre el texto y él mismo. En mi documento, coloco el código tex de la figura inmediatamente después del texto mismo con un espacio, y el código TikZ es el siguiente.

\usetikzlibrary{shapes}
\usetikzlibrary{fit}
\usetikzlibrary{calc}
\usetikzlibrary{arrows}
\begin{figure}[ht!]
    \centering
    \begin{tikzpicture} [label distance=2mm,
        vertice/.style={circle, fill=gray!30, thick, inner sep=0pt, minimum size=7mm},
        dot/.style={shape=circle, fill=black, minimum size=2pt, inner sep=0pt, outer sep=2pt}]
        \node [vertice] (a) at (0,7) {$t_1$};
        \node [vertice] (b) at (0,6) {$t_2$};
        \node [vertice] (c) at (0,5) {$t_3$};
        \node [dot] (d) at ($(c) + (270:1)$) {};
        \node [dot] (e) at ($(d) + (270:0.5)$) {};
        \node [dot] (f) at ($(e) + (270:0.5)$) {};
        \node[draw, ellipse, label=below:$T$, fit=(a) (b) (c) (d) (e) (f)] {};\node [vertice] (h) at (5,7) {$a_1$};
        \node [vertice] (i) at (5,6) {$a_2$};
        \node [vertice] (j) at (5,5) {$a_3$};
        \node [dot] (k) at ($(j) + (270:1)$) {};
        \node [dot] (l) at ($(k) + (270:0.5)$) {};
        \node [dot] (m) at ($(l) + (270:0.5)$) {};
        \node[draw, ellipse, label=below:$A$, fit=(h) (i) (j) (k) (l) (m)] {};

        \path (h) edge [-stealth, auto, swap] node {$w_1$} (a)
                  edge [-stealth, auto] node[below, sloped] {$w_2$} (e)
            (i) edge [-stealth, auto, swap] node {$w_3$} (b)
            (j) edge [-stealth, auto] node[below, sloped] {$w_4$} (a)
                  edge [-stealth, auto] node[above, sloped] {...} (f)
              (k) edge [-stealth, auto] node[above, sloped] {...} (c)
              (l) edge [-stealth, auto] node[below, sloped] {...} (d)
              (m) edge [-stealth, auto] node {...} (f);
    \end{tikzpicture}
    \caption{A graph $G$}
\end{figure}

¿Alguna sugerencia de cómo se puede solucionar?

Estoy usando la clase de documento Springer LNCS, si eso hace alguna diferencia.

Respuesta1

Si la figura se encuentra en la última página sin texto a continuación, se centra como se ilustra en el MWE a continuación (si comenta la \setlengthlínea).

segúnDiseño vertical de páginas flotantes.los valores que controlan las distancias entre flotadores son:

\@fptopdefine la distancia desde la parte superior de la página hasta la parte superior del primer flotador,

\@fpsepdefine la separación entre flotadores, y

\@fpbotdefine la distancia desde la parte inferior del último flotador de la página hasta la parte inferior de la página.

y los valores predeterminados son:

\@fptop = 0pt + 1fil
\@fpsep = 8pt + 2fil
\@fpbot = 0pt + 1fil

Entonces, configurar \@fptopalgo sin 1fill, logra el resultado deseado.

\documentclass{article}
\usepackage[demo]{graphicx}% Remove [demo] option in real use
\usepackage[showframe]{geometry}
\usepackage{lipsum}

\makeatletter% Set distance from top of page to first float
\setlength{\@fptop}{5pt}
\makeatother

\begin{document}
\lipsum[1-5]
\begin{figure}[ht!]
    \centering
    \includegraphics{foo}
    \caption{A graph $G$}
\end{figure}
\end{document}

información relacionada