Re: Affiancare una figura e una tabella

#97557
Liverpool
Partecipante
    Up
    0
    Down
    ::

    lorenzo.pantieri” post=97070Come vedete, le sottodidascalie non sono perfettamente allineate: “Alcuni valori” è più in basso di “Grafico”. La differenza è evidente, si nota anche a occhio nudo, senza ingrandire il PDF. Soluzioni?

    Usare TikZ per allineare la figura e la tabella, mettendo quest’ultima in un nodo di TikZ.
    `\documentclass{article}
    \usepackage{tikz,pgfplots,booktabs,subfig}
    \begin{document}

    \begin{figure}
    \centering
    \subfloat[][Grafico.]{
    \begin{tikzpicture} [baseline=-6mm, font=\small]
    \begin{axis} [width=0.7\textwidth,
    anchor=origin,
    axis lines=middle,
    xmin=-5,xmax=5,ymin=0,ymax=16,
    enlargelimits,
    xtick={-4,…,4},
    ytick={0,…,16},
    xlabel=$x$,
    ylabel=$y$]
    \addplot [domain=-4:4, samples=500,smooth,very thick,blue] {2^x};
    \addplot [only marks, samples at={-4,-3,-2,-1,0,1,2,3,4}, blue] {2^x};
    \end{axis}
    \end{tikzpicture}
    }
    \quad
    \subfloat[][Alcuni valori.]{
    \begin{tikzpicture} [baseline=-6mm]
    \node [above, inner sep=0pt, outer sep=-0.04em] {
    \begin{tabular}{rl}
    \toprule
    $x$ & $y=2^x$ \\
    \midrule
    $-4$ & $2^{-4} = 1/16$ \\
    $-3$ & $2^{-3} = 1/8$ \\
    $-2$ & $2^{-2} = 1/4$ \\
    $-1$ & $2^{-1}= 1/2$ \\
    $0$ & $2^{0} = 1$ \\
    $1$ & $2^1 = 2$ \\
    $2$ & $2^2 = 4$ \\
    $3$ & $2^3 = 8$ \\
    $4$ & $2^4 = 16$ \\
    \bottomrule
    \end{tabular}
    };
    \end{tikzpicture}
    }
    \caption{La funzione $y=2^x$.}
    \label{fig:esponenzialecrescente}
    \end{figure}

    \end{document}`

    Spiegazione:
    1) [tt]baseline=-6mm[/tt] dice che in entrambi i disegni la linea che si trova 6 mm sotto l’origine del disegno corrisponde alla linea di base del testo. Il valore di 6 mm è scelto arbitrariamente (sicuramente si può calcolare automaticamente)
    2) [tt]anchor=origin[/tt] dice che l’origine del grafico corrisponde anche all’origine del disegno. Mi serve per allineare l’asse x con la linea inferiore della tabella
    3) [tt]above, inner sep=0pt, outer sep=-0.04em[/tt] dicono che l’origine del disegno si trova sulla linea inferiore della tabella. In particolare il valore 0.04em tiene conto del fatto che la linea della tabella è spessa 0.08em per default e in questo modo l’origine viene a trovarsi a metà spessore della linea.

    Riepilogando, abbiamo detto che l’asse x deve corrispondere alla linea inferiore della tabella e che la linea di base del testo deve trovarsi 6 mm più in basso.

    Sicuramente c’è un modo di farlo senza usare TikZ.
    Ciao

    Go to top