LaTeX Table Caption
\caption inside table. Convention: above the table (figures get captions below). \label for cross-referencing.
The standard pattern
\usepackage{booktabs} % for professional rules
\begin{table}[t]
\centering
\caption{Performance comparison across methods.}
\label{tab:results}
\begin{tabular}{l r r}
\toprule
Method & Accuracy & Latency \\
\midrule
Baseline & 75.2 & 12.3 ms \\
Ours & 91.4 & 8.7 ms \\
\bottomrule
\end{tabular}
\end{table}
% Reference in body:
% "Table~\ref{tab:results} shows..."
% Or "As shown in \autoref{tab:results}..."Caption position rule
- Tables: caption goes ABOVE the data
- Figures: caption goes BELOW the image
This is convention across IEEE, ACM, Elsevier, Springer, Nature, and most academic publishers. Place \caption BEFORE \begin{tabular} for tables, AFTER \includegraphics for figures.
Customize with the caption package
\usepackage{caption}
% Settings for tables only
\captionsetup[table]{
font=small, % smaller than body text
labelfont=bf, % bold "Table 1:"
position=top, % enforce caption above
justification=justified,
labelsep=colon, % "Table 1: caption"
}
% Settings for figures (different settings)
\captionsetup[figure]{
font=small,
labelfont=bf,
position=bottom, % caption below figures
}Wide table spanning both columns
% In a two-column document
\begin{table*}[t]
\centering
\caption{A wide table spanning both columns.}
\label{tab:wide}
\begin{tabular}{l c c c c c}
\toprule
Method & Metric A & Metric B & Metric C & Metric D & Metric E \\
\midrule
...
\end{tabular}
\end{table*}Long table that spans pages
\usepackage{longtable}
\begin{longtable}{l c r}
\caption{Table that breaks across pages.}\label{tab:long} \\
\toprule
Header 1 & Header 2 & Header 3 \\
\midrule
\endfirsthead
% Repeated header for continuation pages
\multicolumn{3}{l}{\textit{Continued from previous page}} \\
\toprule
Header 1 & Header 2 & Header 3 \\
\midrule
\endhead
... rows ...
\bottomrule
\end{longtable}longtable doesn't use the table environment — it manages its own captions and floats.
Common mistakes
- Caption below the table. Wrong by convention. Move it above
\begin{tabular}. - Forgetting
\label. Without it, you can't cross-reference. Place\labelright after\caption. - Using
\refalone. Produces '1'. Use\autoref(with hyperref) or write 'Table~\ref'. - Caption inside
\begin{tabular}. Won't work — caption belongs in the table environment, outside tabular. - Two captions in one table. Each table gets one
\caption. For sub-tables, use the subcaption package.
#figure(
table(columns: 3, ...),
caption: [Performance comparison.],
kind: table,
) <results>
// Reference: see @resultsTry TypeTeX free Frequently Asked Questions
Inside the table environment, add \caption{Your caption} before the tabular: \begin{table} \caption{Performance comparison.} \label{tab:results} \begin{tabular}{...} ... \end{tabular} \end{table}. Convention: caption goes ABOVE the table (figures get captions BELOW). Add \label after \caption for cross-referencing.
Above. This is consistent across most journal styles (IEEE, ACM, Elsevier, Springer LNCS, Nature). Place \caption BEFORE \begin{tabular}, not after. The caption package's position=top option enforces this if you use \captionsetup[table]{position=top}.
Move \caption after \end{tabular}. Or set globally with \captionsetup[table]{position=bottom}. Some journals require this — always check the call for papers. Most modern academic conventions put table captions above; some older ones put them below.
Add \label{tab:results} after \caption. Then \ref{tab:results} produces just '1'. \autoref{tab:results} (with hyperref) produces 'Table 1' as a clickable link. Most authors use \autoref or 'Table~\ref{tab:results}' for the explicit form.
Load the caption package: \usepackage{caption}. Then \captionsetup[table]{font=small, labelfont=bf, position=top, justification=justified}. Settings only apply to tables (the [table] qualifier). Use \captionsetup{} without qualifier for both figures and tables.
\caption*{Your caption} (caption package required) produces caption without 'Table N:' prefix and doesn't increment the table counter. Useful for example tables that don't need formal cross-referencing.
\caption[Short version]{Long version}. The short version goes in the List of Tables (printed via \listoftables), the long version stays under the table itself. Useful when the full caption is too long for the LoT.
Two common causes: (1) journal class/template overrides position globally — check for \captionsetup commands; (2) you used a caption-after-tabular pattern in a copy-pasted example. Move \caption before \begin{tabular} and ensure no \captionsetup{position=bottom} is in your preamble.
Use the table* environment: \begin{table*}[t] \caption{...} \label{tab:wide} \begin{tabular}{...} ... \end{tabular} \end{table*}. The * makes it span both columns. Caption above, same as a regular table.