`figure`-`tikzpicture` 和 `caption` 之间的空格太多

`figure`-`tikzpicture` 和 `caption` 之间的空格太多

figure-tikzpicture和之间的空格太多caption。而且,\centering似乎无法正常工作,因为它将图形放在了最左边。

就好像tikz绘图比实际显示的要大,左侧和下方都有空白。

实际结果

预期的结果是保持正常的中心,并且没有破坏文档美观的额外空间,例如:

预期结果

我是否缺少了某些东西来实现这一点?我可以在图形和/或图片上放置一个框架tikz来查看它们所占的空间吗?

我尝试实现的代码如下:

\documentclass{article}
\usepackage{tikz}
\begin{document}
La variable de tipo puntero se utilizan para almacenar en ellas la dirección de memoria de otra variable. El puntero, como variable que es tiene asociado su dirección de memoria y su contenido será la dirección de memoria de otra variable (véase figura \ref{puntero}).

\begin{figure}[h]
    \centering
    \begin{tikzpicture}
        \draw[-] (0,0) -- (7.5,0) 
            node at (1.5,0.5) {DIR MEM} 
            node at (4,0.5) {VAR}
            node at (6,0.5) {VALOR};
        \draw[-] (3,0) -- (3,-1.9) 
            node at (1.5,-0.5) {0xFFFFFFF0} 
            node at (4,-0.5) {\textit{num1}} 
            node at (6,-0.5) {5} 
            node at (1.5,-1) {0xFFFFFFF1}
            node at (4,-1) {\textit{punt}} 
            node at (6.3,-1) {0xFFFFFFF0} 
            node at (1.5,-1.5) {0xFFFFFFF2};
        \draw[-stealth,gray] (6.3,-1.3) to[out=300, in=180] (0.2,-0.5);
    \end{tikzpicture}
    \caption{Ejemplo de puntero \textit{punt} que referenciua a la dirección de memoria 0xFFFFFFF0 que es, a su vez, la variable entera \textit{num1} que almacena el valor 5.}
    \label{puntero}
\end{figure}

Los punteros pueden apuntar a variables previamente declaradas o a variables dinámicas.La potencia de los punteros reside en poder crear (reservar memoria) y destruir (liberar memoria) una variable (dinámica) en tiempo de ejecución.
\end{document}

答案1

您可以使用该overlay选项来确保箭头不会影响图片的大小:

\documentclass{article}
\usepackage{tikz}
\begin{document}
La variable de tipo puntero se utilizan para almacenar en ellas la dirección de memoria de otra variable. El puntero, como variable que es tiene asociado su dirección de memoria y su contenido será la dirección de memoria de otra variable (véase figura \ref{puntero}).

\begin{figure}[h]
    \centering
    \begin{tikzpicture}
        \draw[-] (0,0) -- (7.5,0) 
            node at (1.5,0.5) {DIR MEM} 
            node at (4,0.5) {VAR}
            node at (6,0.5) {VALOR};
        \draw[-] (3,0) -- (3,-1.9) 
            node at (1.5,-0.5) {0xFFFFFFF0} 
            node at (4,-0.5) {\textit{num1}} 
            node at (6,-0.5) {5} 
            node at (1.5,-1) {0xFFFFFFF1}
            node at (4,-1) {\textit{punt}} 
            node at (6.3,-1) {0xFFFFFFF0} 
            node at (1.5,-1.5) {0xFFFFFFF2};
        \draw[-stealth,gray,overlay] (6.3,-1.3) to[out=300, in=180] (0.2,-0.5);
    \end{tikzpicture}
    \caption{Ejemplo de puntero \textit{punt} que referenciua a la dirección de memoria 0xFFFFFFF0 que es, a su vez, la variable entera \textit{num1} que almacena el valor 5.}
    \label{puntero}
\end{figure}

Los punteros pueden apuntar a variables previamente declaradas o a variables dinámicas.La potencia de los punteros reside en poder crear (reservar memoria) y destruir (liberar memoria) una variable (dinámica) en tiempo de ejecución.
\end{document}

在此处输入图片描述

相关内容