
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 \setlength
línea).
segúnDiseño vertical de páginas flotantes.los valores que controlan las distancias entre flotadores son:
\@fptop
define la distancia desde la parte superior de la página hasta la parte superior del primer flotador,
\@fpsep
define la separación entre flotadores, y
\@fpbot
define 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 \@fptop
algo 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}