Re: BEAMER: evidenziare dei numeri all’interno di tabelle.

#95299
Up
0
Down
::

Nevermind” post=94927Premetto il seguente codice:
`
\documentclass{beamer}

%%% Dichiarazione dei pacchetti standard.
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{tabularx}
\usepackage{multicol}
\usepackage{multirow}
\usepackage{booktabs}

%%% Personalizzazione del layout—articolata su cinque livelli.
\usetheme{PaloAlto} % layout complessivo.
%\useinnertheme{default} % layout interno.
%\useoutertheme{default} % layout esterno.
\usecolortheme{dolphin} % schema di colori.
\usefonttheme{structuresmallcapsserif} % schema dei font.
% Inutile dire che se volete tutti i default, potete risparmiarvi gli ultimi
% quattro comandi.

\setbeamercovered{dynamic}

%%% Titolo e autore.
\title{XXX}
\subtitle{XXX}
\author{XXX}
\institute{XXX}
\date{XXX}

\usepackage{mwe} % per immagini campione
\logo{\includegraphics[width=15.6mm]{logo_MED_1}}

% filigrana
\makeatletter
\usepackage{tikz}
\usetikzlibrary{calc}
\setbeamertemplate{background}{%
\ifnum\thepage=1%
\begin{tikzpicture}
\coordinate(origin) at (\beamer@leftsidebar-3.15cm,0);
\coordinate(opposite) at (\paperwidth,\paperheight-\beamer@headheight+3cm);
\useasboundingbox
(origin)
rectangle
(opposite);

\node[opacity=0.13,anchor=center,draw,inner sep=0pt]
at ($(origin)!0.5!(opposite)$) {\includegraphics[scale=0.34]{Logo_UNI}};
\end{tikzpicture}%
\fi%
}
\makeatother

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\section[Sommario]{}
\begin{frame}
\tableofcontents
\end{frame}

\section{Risultati}
\begin{frame}
\frametitle{Risultati}
\framesubtitle{Confronto tra l'andamento della MRD pre e post-TCSE\footnote{0: MRD negativa; PNQ: MRD<10$ ^{-3} $; PA: MRD$ \geq $10$ ^{-3} $}}

\begin{tabular}{ccccc}
\toprule
\multirow{2}*{\textbf{pre-TCSE}} & \multicolumn{4}{c}{\textbf{post-TCSE}} \\
\cmidrule(lr){2-5}
& $\textbf{0}$ & \textbf{PNQ} & \textbf{PA} & \textbf{Totale pazienti} \\

\midrule
$\textbf{0}$ & $16$ & $2$ & $2$ & $20$ \\
\textbf{PNQ} & $1$ & $0$ & $2$ & $3$ \\
\textbf{PA} & $5$ & $2$ & $8$ & $15$ \\
\textbf{Totale pazienti} & $22$ & $4$ & $12$ & $38$ \\
\bottomrule
\end{tabular}
\begin{center}
{\small \emph{p-value=0.03}}
\end{center}
\end{frame}

\begin{frame}
\frametitle{Risultati}
\framesubtitle{Relazione tra il valore della MRD nel pre-TCSE e il decesso dei pazienti\footnote{0: MRD negativa; PNQ: MRD<10$ ^{-3} $; PA: MRD$ \geq $10$ ^{-3} $}}
\begin{tabular}{ccccc}
\toprule
\multirow{2}*{\textbf{DECEDUTO}} & \multicolumn{4}{c}{\textbf{pre-TCSE}} \\
\cmidrule(lr){2-5}
& $\textbf{0}$ & \textbf{PNQ} & \textbf{PA} & \textbf{Totale pazienti} \\

\midrule
\textbf{NO} & $15$ & $1$ & $5$ & $21$ \\
\textbf{SI} & $4$ & $3$ & $7$ & $14$ \\
\textbf{Totale pazienti} & $19$ & $4$ & $12$ & $35$ \\
\bottomrule
\end{tabular}
\begin{center}
{\small \emph{p-value=0.04}}
\end{center}
\end{frame}

\begin{frame}
\frametitle{Risultati}
\framesubtitle{Valutazione della MRD nel post-TCSE in relazione all'evento “morte''\footnote{0: MRD negativa; PNQ: MRD<10$ ^{-3} $; PA: MRD$ \geq $10$ ^{-3} $}}
\begin{center}
\textcolor{red}{Tabella A}
\end{center}
\begin{tabular}{ccccc}
\toprule
\multirow{2}*{\textbf{DECEDUTO}} & \multicolumn{4}{c}{\textbf{1\ap{o} TRIMESTRE}} \\
\cmidrule(lr){2-5}
& $\textbf{0}$ & \textbf{PNQ} & \textbf{PA} & \textbf{Totale pazienti} \\

\midrule
\textbf{NO} & $15$ & $0$ & $4$ & $19$ \\
\textbf{SI} & $2$ & $2$ & $5$ & $9$ \\
\textbf{Totale pazienti} & $17$ & $2$ & $9$ & $28$ \\
\bottomrule
\end{tabular}
\begin{center}
{\small \emph{p-value=0.008}}
\end{center}
\end{frame}

\begin{frame}
\frametitle{Risultati}
\framesubtitle{Valutazione della MRD nel post-TCSE in relazione all'evento “morte''\footnote{0: MRD negativa; PNQ: MRD<10$ ^{-3} $; PA: MRD$ \geq $10$ ^{-3} $}}
\begin{center}
\textcolor{red}{Tabella B}
\end{center}
\begin{tabular}{ccccc}
\toprule
\multirow{2}*{\textbf{DECEDUTO}} & \multicolumn{4}{c}{\textbf{3\ap{o} TRIMESTRE}} \\
\cmidrule(lr){2-5}
& $\textbf{0}$ & \textbf{PNQ} & \textbf{PA} & \textbf{Totale pazienti} \\

\midrule
\textbf{NO} & $14$ & $0$ & $4$ & $18$ \\
\textbf{SI} & $1$ & $2$ & $4$ & $7$ \\
\textbf{Totale pazienti} & $15$ & $2$ & $8$ & $25$ \\
\bottomrule
\end{tabular}
\begin{center}
{\small \emph{p-value=0.008}}
\end{center}
\end{frame}

\end{document}
`

In sostanza ci sono 4 tabelle inserite ciascuna in un frame contenenti numeri.
Di cosa avrei bisogno ❓

[ol]
[li]mi compare la PRIMA tabella e successivamente al mio click, vorrei che si evidenziasse il numero 5 in giallo oppure al mio click mi si formi un cerchio (rettangolo) attorno al numero 5 sempre in giallo;[/li]

  • passo alla SECONDA tabella e e successivamente al mio click, vorrei che si evidenziasse contemporaneamente il numero 5 e il numero 4 in giallo oppure al mio click mi si formi un cerchio (rettangolo) attorno al numero 5 sempre in giallo;
  • arrivo alla TERZA tabella (Tabella A) e successivamente al mio click, vorrei che si evidenziasse prima il numero 4 in giallo e con un ulteriore click, vorrei venissero evidenziati contemporaneamente i numeri 2, 2, 5 (i tre numeri della riga corrispondente a SI) in verde
  • infine arrivo alla QUARTA tabella (Tabella B) e successivamente al mio click, vorrei che si evidenziasse prima il numero 4 in giallo e con un ulteriore click, vorrei venissero evidenziati contemporaneamente i numeri 1, 2, 4 (i tre numeri della riga corrispondente a SI) in verde
  • [/ol]

    Ho letto le guide di Beamer, ma questo aspetto “dinamico” non riesco proprio a risolverlo.
    Per favore, qual è il codice che devo prendere in considerazione 😕

    Vi ringrazio anticipatamente e aspetto un vostro gentile riscontro.

    Se vuoi davvero usare quei colori mi sa che hai proprio intenzione di rendere la vita difficile al tuo pubblico: giallo e verde su sfondo bianco, su un proiettore normale non li vedrà nessuno! Tieni presente questo metodo per nascondere risultati, non per evidenziarli 😉

    Posto il codice in cui nella seconda diapositiva c’è il metodo standard (in giallo 😈 ) e nella terza diapositiva si illustra un metodo “nuovo”, basato su TikZ: `
    \documentclass{beamer}
    \usepackage{lmodern,booktabs,multirow}
    \usepackage{tikz}
    \usetikzlibrary{overlay-beamer-styles}

    \tikzset{h1/.style={
    background text=red,
    },
    h2/.style={%
    background fill=red!20,
    },
    h3/.style={
    circle,
    background default aspect=solid,
    background aspect={dashed, ultra thick},
    background draw=red
    },
    h4/.style={
    background shadedraw={blue}{top color=white, bottom color=cyan!30}
    }
    }

    \newcommand{\thighlight}[2][]{%
    \tikz[baseline=-0.5ex]{\node[#1]{#2};}
    }

    \begin{document}

    \begin{frame}
    \begin{tabular}{ccccc}
    \toprule
    \multirow{2}*{\textbf{pre-TCSE}} & \multicolumn{4}{c}{\textbf{post-TCSE}} \\
    \cmidrule(lr){2-5}
    & $\textbf{0}$ & \textbf{PNQ} & \textbf{PA} & \textbf{Totale pazienti} \\
    \midrule
    $\textbf{0}$ & $16$ & ~\thighlight[h3,draw on=<3>,aspect on=<3>]{$2$} & $2$ & $20$ \\
    \textbf{PNQ} & $1$ & $0$ & ~\thighlight[h2,fill on=<3>] {$2$} & $3$ \\
    \textbf{PA} & \textcolor<2>{yellow}{$5$} & $2$ & $8$ & ~\thighlight[h4,shadedraw on=<3>]{$15$} \\
    \textbf{Totale pazienti} & \thighlight[h1,text on=<3>]{$22$} & $4$ & $12$ & $38$ \\
    \bottomrule
    \end{tabular}
    \end{frame}

    \end{document}
    ` Il risultato:

    [attachment=1033]new-tikztest.gif[/attachment]

    Il metodo “tradizionale” che non necessita di pacchetti particolari utilizza la macro [tt]\textcolor[/tt]: è definita dal pacchetto xcolor automaticamente caricato da Beamer. Come diverse altre macro, anche questa se utilizzata in Beamer assume la caratteristica di essere overlay-aware: impostando il parametro [tt][/tt] sostanzialmente si può decidere in quale diapositiva l’azione della macro ha effetto. Con questo metodo puoi semplicemente cambiare il colore del numero. Per evidenziare in altri modi un numero, ad esempio con un cerchio, dovresti darti da fare perché senza un pacchetto di disegno programmato sarebbe leggermente complicato.

    Usando TikZ, invece, hai a disposizione una libreria abbastanza recente che si chiama [tt]beamer-overlay-styles[/tt]. Con un comando appositamente definito, non solo puoi cambiare il colore del numero, ma hai anche a disposizione altri strumenti per evidenziare come meglio credi gli elementi della tabella. Puoi leggere la documentazione e provare gli esempi che sono lì riportarti per capire meglio come funziona. In questo esempio, ho definito alcuni stili che corrispondono a metodi diversi di mettere in risalto i numeri: nel parametro opzionale del comando devi scegliere lo stile e dichiarare in quale diapositiva avrà effetto. Il parametro obbligatorio è il numero. Attenzione: vedi un [tt]~[/tt] prima di ogni chiamata a [tt]\thighlight[/tt]. Serve sostanzialmente per mantenere incolonnati i numeri. Infatti, per farla breve, creando un nodo con TikZ bisognerebbe stare un pochettino attenti alla dimensione che andrà ad avere (se è solo testo, se è testo più altro, dove altro può essere un riquadro o un riquadro più il bordo e quale tipo di forma avrà il riquadro). Semplificando le cose, metti uno spazio prima ([tt]~[/tt]) se vedi che il risultato non è allineato: è una toppa nemmeno troppo elegante, ma è pratica e funzionale. Trovi più informazioni sulla libreria e in generale su come creare semplici animazioni in un recente articolo per ArsTeXnica 17.

    Il risultato perfetto, senza problemi di allineamenti, lo avresti con un altro pacchetto, hf-tikz. Serve per evidenziare formule matematiche, ma funziona bene anche nel tuo caso. Il prezzo da pagare è in termini di codice perché ogni volta dovresti definire un marcatore prima e dopo del numero da evidenziare e devi ricordarti di compilare almeno due volte. Se dovessi farlo io, userei questa strada.

    Tieni presente, comunque, che questi tipi di effetti devono essere usati con parsimonia: attenzione a non esagerare o corri il rischio di stare tutto il tempo a pigiare tasti sul pc invece di discutere la tua tesi.

    Ciao
    Claudio

    Attachments:
    You must be logged in to view attached files.

    Go to top