Note a piè di pagina per le tabelle in LaTeX


87

Quando lo faccio \footnote{}per un valore in una tabella, la nota a piè di pagina non viene visualizzata. Come posso farlo apparire? Inoltre, è possibile visualizzarlo in fondo alla tabella anziché in fondo alla pagina?


Risposte:


72

Questa è una difficoltà classica in LaTeX.

Il problema è come eseguire il layout con float (figure e tabelle, oggetti simili) e note a piè di pagina. In particolare, è difficile scegliere un posto per un galleggiante con la certezza che fare spazio per le note a piè di pagina associate non causerà problemi. Quindi lo standard tabulare gli figureambienti non ci provano nemmeno.

Cosa sai fare:

  1. Fai finta. Metti semplicemente un salto verticale hardcoded nella parte inferiore della didascalia e poi scrivi la nota a piè di pagina (usa \footnotesizeper la dimensione). Devi anche gestire i simboli o il numero con i tuoi \footnotemark. Semplice, ma non molto accattivante, e la nota a piè di pagina non compare in fondo alla pagina.
  2. Utilizzare il tabularx, longtable, threeparttable[x](complimenti a Giuseppe ) o ctableche supportano questo comportamento.
  3. Gestiscilo a mano. Usa [h!](o [H]con il pacchetto float) per controllare dove apparirà il float e \footnotetextsulla stessa pagina per mettere la nota a piè di pagina dove vuoi. Di nuovo, usa \footnotemarkper installare il simbolo. Fragile e richiede strumenti manuali in ogni istanza.
  4. Il footnotespacchetto fornisce l' savenoteambiente, che può essere utilizzato per farlo.
  5. Minipage (codice rubato a titolo definitivo e in tal caso leggi la dichiarazione di non responsabilità sui testi dei sottotitoli lunghi):
    \ begin {figure}
      \ begin {minipage} {\ textwidth}
        ...
        \ caption [Caption for LOF]%
          {Didascalia reale \ footnote {blah}}
      \ end {minipage}
    \ end {figure}

Riferimento aggiuntivo: elemento FAQ TeX Note a piè di pagina nelle tabelle .


texblog.org/2012/02/03/using-footnote-in-a-table mi sembra una bella alternativa
Pio

1
@dmckee È possibile ottenere threeparttable in xtable: qualcosa come print.xtable (df, tabular.environment = "threeparttable")?
Anusha

@Pio link è un ottimo riferimento. L'uso del pacchetto note a piè di pagina ha risolto il mio problema.
JOHN

61

Il modo migliore per farlo senza problemi è usare il \tablefootnotecomando dal tablefootnotepacchetto. Aggiungi quanto segue al tuo preambolo:

\usepackage{tablefootnote}

Funziona solo senza la necessità di trucchi aggiuntivi.


18
Nel mio caso l'uso di \ tablefootnote ha fatto apparire la nota a piè di pagina, ma sfortunatamente nella pagina precedente a quella con la tabella.
Nu-hin

1
Hai un esempio per dimostrare questo comportamento?
Francesquini

2
C'è un modo per portare la nota a piè di pagina sulla stessa pagina della tabella?
Anusha

3
Questo non funziona per me nelle tabelle nidificate (le note a piè di pagina vengono ripetute tante volte quante sono le tabelle nidificate)
fffred

1
Sto lavorando per me usando il pacchetto float e [H] per la tabella in modo da avere le note a piè di pagina sulla stessa pagina della tabella.
mao95

17

Un metodo forse non così elegante, che penso sia solo una variazione di ciò che hanno detto altre persone, è semplicemente codificarlo. Molte riviste hanno un modello che in qualche modo consente le note a piè di pagina, quindi cerco di mantenere le cose piuttosto semplici. Tuttavia, ci sono davvero alcuni pacchetti incredibili già là fuori, e penso che questo thread faccia un buon lavoro nel sottolinearlo.

\documentclass{article}
\begin{document}
\begin{table}[!th]
\renewcommand{\arraystretch}{1.3} % adds row cushion
\caption{Data, level$^a$, and sources$^b$}
\vspace{4mm}
\centering
\begin{tabular}{|l|l|c|c|}
  \hline      
  \textbf{Data}  & \textbf{Description}   & \textbf{Level} & \textbf{Source} \\
  \hline      
  \hline
  Data1  &  Description. . . . . . . . . . . . . . . . . .   &  cnty & USGS \\
  \hline
  Data2  &  Description. . . . . . . . . . . . . . . . . .   &  MSA & USGS \\
  \hline
  Data3  &  Description. . . . . . . . . . . . . . . . . .   &  cnty & Census  \\
  \hline  
\end{tabular}
\end{table}
\footnotesize{$^a$ The smallest spatial unit is county, $^b$ more details in appendix A}\\
\end{document}

Uscita dal codice precedente


11

Se la tua tabella sta già lavorando tabular, la cosa più semplice è cambiarla longtable, ricordandoti di aggiungere

\usepackage{longtable}

Per esempio:

\begin{longtable}{ll}
  2014--2015 & Something cool\footnote{first footnote} \\
  2016-- & Something cooler\footnote{second footnote}
\end{longtable}

2
Non ha funzionato per me. Ancora non compare. C'è qualcos'altro che devo cambiare tranne l'aggiunta di quella riga?
Emanuel Berg

2
Aha, anche il comando di inizio / fine della tabella deve essere modificato. Gotcha.
Emanuel Berg

1
Potete fornire un esempio completo per favore? Non riesco a farlo funzionare
user2808117

7

Usa l'ambiente minipage. Ecco un esempio:

\begin{minipage}{6cm}
\begin{tabular}{|l|c|c|}
    \hline
    A & 1 & 2 \footnote{This is a footnote.} \\
    \hline
    B & 2 & 1 \\
    \hline
    C & 3 & 3 \\
    \hline
\end{tabular}
\end{minipage}

1
Nel mio caso, stampa la nota a piè di pagina due volte e invece di stare in fondo alla pagina, si trova proprio sotto il tavolo al centro della pagina.
kakyo


2

Nelle tabelle ho usato \ footnotetext.


2
\begin{figure}[H]
\centering
{\includegraphics[width=1.0\textwidth]{image}}
\caption{captiontext\protect\footnotemark}
\label{fig:}
\end{figure}
\footnotetext{Footnotetext} 

0

Cosa ha detto @dmckee.

Non è difficile scrivere un codice personalizzato per l'accodamento delle note a piè di pagina. Quello che devi fare è:

  1. Scrivere codice per accodare codice Latex - come un hook in emacs: tecnica molto standard, se non tutti gli hacker Latex possono effettivamente farlo bene;
  2. Ridefinisci temporaneamente \footnoteper aggiungere una macro di note a piè di pagina alla coda;
  3. Assicurati che l'hook venga chiamato quando la tabella / figura esce e torniamo alla normale modalità verticale.

Se questo è interessante, mostro del codice che lo fa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.