Chú thích cho các bảng trong LaTeX


87

Khi tôi thực hiện \footnote{}cho một giá trị trong bảng, chú thích cuối trang không hiển thị. Làm cách nào để nó hiển thị? Ngoài ra, có thể làm cho nó hiển thị ở cuối bảng thay vì cuối trang không?


Câu trả lời:


72

Đây là một khó khăn kinh điển trong LaTeX.

Vấn đề là làm thế nào để bố trí với float (hình và bảng, một đối tượng tương tự) và chú thích. Đặc biệt, thật khó để chọn một vị trí cho phao vì chắc chắn rằng việc nhường chỗ cho các chú thích liên quan sẽ không gây rắc rối. Vì vậy, tiêu chuẩn tabularfiguremôi trường thậm chí không thử.

Bạn có thể làm gì:

  1. Làm giả nó. Chỉ cần đặt một dấu bỏ qua theo chiều dọc được mã cứng ở cuối chú thích và sau đó tự viết chú thích (sử dụng \footnotesizecho kích thước). Bạn cũng phải tự quản lý các ký hiệu hoặc số \footnotemark. Đơn giản, nhưng không hấp dẫn lắm, và chú thích không xuất hiện ở cuối trang.
  2. Sử dụng tabularx, longtable, threeparttable[x](thanh danh cho Joseph ) hoặc ctablecó hỗ trợ hành vi này.
  3. Quản lý nó bằng tay. Sử dụng [h!](hoặc [H]với gói float) để kiểm soát vị trí float sẽ xuất hiện và \footnotetexttrên cùng một trang để đặt chú thích ở nơi bạn muốn. Một lần nữa, sử dụng \footnotemarkđể cài đặt biểu tượng. Dễ vỡ và yêu cầu dụng cụ thủ công trong mọi trường hợp.
  4. Các footnotesgói cung cấp savenotemôi trường, có thể được sử dụng để làm điều này.
  5. Giảm thiểu nó (mã bị đánh cắp hoàn toàn và đọc tuyên bố từ chối trách nhiệm về văn bản phụ đề dài trong trường hợp đó):
    \ begin {figure}
      \ begin {minipage} {\ textwidth}
        ...
        \ caption [Chú thích cho LOF]%
          {Chú thích thực \ footnote {blah}}
      \ end {minipage}
    \ end {figure}

Tham khảo thêm: Mục Câu hỏi thường gặp TeX Chú thích trong bảng .


texblog.org/2012/02/03/using-footnote-in-a-table đối với tôi dường như là một sự thay thế tốt
Pio

1
@dmckee Có thể lấy threeparttable trong xtable: somethin g như print.xtable (df, tabular.enosystem = "threeparttable") không?
Anusha

Liên kết @Pio là một tài liệu tham khảo tuyệt vời. Sử dụng gói cước chú giải quyết vấn đề của tôi.
JOHN

Tại sao câu trả lời được bình chọn nhiều nhất lại không đứng đầu?
Eduardo Reis

59

Cách tốt nhất để làm điều đó mà không phải đau đầu là sử dụng \tablefootnotelệnh từ tablefootnotegói. Thêm phần sau vào phần mở đầu của bạn:

\usepackage{tablefootnote}

Nó chỉ hoạt động mà không cần thêm thủ thuật.


17
Trong trường hợp của tôi, việc sử dụng \ tablefootnote làm cho chú thích cuối trang hiển thị, nhưng không may là trên trang trước trang có bảng.
Nu-hin

Bạn có một ví dụ để chứng minh hành vi này?
Francesquini

2
Có cách nào để lấy chú thích trên cùng một trang với bảng không?
Anusha

3
Điều này không làm việc cho tôi trong các bảng lồng nhau (chú thích được lặp đi lặp lại nhiều lần như bảng lồng nhau)
fffred

1
Làm việc cho tôi bằng cách sử dụng gói float và [H] cho bảng để có chú thích cuối trang trên cùng một trang của bảng.
mao95

15

Một phương pháp có thể không quá thanh lịch, mà tôi nghĩ chỉ là một biến thể của những gì người khác đã nói, là chỉ cần mã hóa nó. Nhiều tạp chí có một mẫu mà theo một cách nào đó cho phép ghi chú cuối trang, vì vậy tôi cố gắng giữ cho mọi thứ khá cơ bản. Mặc dù, thực sự có một số gói đáng kinh ngạc đã xuất hiện và tôi nghĩ rằng chủ đề này làm rất tốt việc chỉ ra điều đó.

\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}

Đầu ra từ mã trên


11

Nếu bảng của bạn đã hoạt động tabular, thì dễ nhất là chuyển nó sang longtable, hãy nhớ thêm

\usepackage{longtable}

Ví dụ:

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

2
Điều đó không hiệu quả với tôi. Nó vẫn không hiển thị. Có điều gì khác tôi phải thay đổi ngoại trừ việc thêm dòng đó không?
Emanuel Berg

2
Aha, lệnh bắt đầu / kết thúc của bảng cũng phải được thay đổi. Gotcha.
Emanuel Berg

1
Bạn có thể cung cấp một ví dụ đầy đủ xin vui lòng? Tôi không thể có được điều này để làm việc
user2808117

7

Sử dụng môi trường minipage. Đây là một ví dụ:

\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
Trong trường hợp của tôi, nó in chú thích cuối trang hai lần, và thay vì nằm ở cuối trang, nó nằm ngay dưới bàn ở giữa trang.
kakyo

5

Có lẽ giải pháp tốt nhất là xem xét các gói threeparttable / threeparttablex.


1
Dưới đây là một số thông tin về cách sử dụng threeparttable. Nó đã làm việc cho tôi! dound.com/2009/06/…
Veridian

2

Trong bảng tôi đã sử dụng \ footnotetext.


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

0

@Dmckee đã nói gì.

Không khó để viết mã xếp hàng chú thích cuối trang riêng của bạn. Những gì bạn cần làm là:

  1. Viết mã để xếp hàng mã Latex - giống như hook trong emacs: kỹ thuật rất chuẩn, nếu không phải hacker Latex thực sự có thể làm đúng như vậy;
  2. Tạm thời xác định lại \footnoteđể thêm macro chú thích cuối trang vào hàng đợi của bạn;
  3. Đảm bảo rằng hook được gọi khi bảng / hình vẽ thoát ra và chúng tôi quay lại chế độ dọc thông thường.

Nếu điều này là thú vị, tôi hiển thị một số mã thực hiện điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.