
Ich schreibe derzeit einen APS-Artikel und verwende:
\documentclass[%
reprint,
amsmath,amssymb,
aps,nofootinbib,
]{revtex4-1}
%
\usepackage{graphicx}
\usepackage{dcolumn}
\usepackage{bm}
\PassOptionsToPackage{linktocpage}{hyperref}
\usepackage[hyperindex,breaklinks]{hyperref}
\usepackage{tabularx}
\usepackage{enumitem}
\usepackage{slashed}
\usepackage{array}
Meine Bildunterschriften sind wie vorgesehen linksbündig ausgerichtet. Die Tabellenunterschriften werden jedoch zentriert, wenn ich den folgenden Code verwende:
{\renewcommand{\arraystretch}{1.2}
\begin{table*}[t]
\centering
\begin{tabular*}{\textwidth}{l @{\extracolsep{\fill}} l l}
\hline
\hline
\multicolumn{1}{c}{ \rule{0pt}{3ex} ...} & \multicolumn{1}{c}{...} & \multicolumn{1}{c}{...} \\
\hline
... & ... & ... \\
\hline
\hline
\end{tabular*}
\caption{Centered caption.}\label{tab:1}
\end{table*}
}
Wie kann ich die Tabellenüberschriften ebenfalls linksbündig ausrichten (und über und nicht unter der Tabelle)?
Antwort1
Die revtex4-1
Dokumentklasse bietet keine Möglichkeit, das unerwünschte Verhalten abzuschalten, d.h. kurze Überschriften werden immer zentriert. Und da das caption
Paket noch nicht angepasst ist, revtex
muss man den verantwortlichen Code selbst patchen, z.B.:
\long\def\@makecaption#1#2{%
\par
\vskip\abovecaptionskip
\begingroup
\small\rmfamily
\sbox\@tempboxa{%
\let\\\heading@cr
\@make@capt@title{#1}{#2}%
}%
\@ifdim{\wd\@tempboxa >\hsize}{%
\begingroup
\samepage
\flushing
\let\footnote\@footnotemark@gobble
\@make@capt@title{#1}{#2}\par
\endgroup
}{%
\global \@minipagefalse
\hb@xt@\hsize{\hfil\unhbox\@tempboxa\hfil}%
}%
\endgroup
\vskip\belowcaptionskip
}%
könnte gepatcht werden auf:
\long\def\@makecaption#1#2{%
\par
\vskip\abovecaptionskip
\begingroup
\small\rmfamily
\begingroup
\samepage
\flushing
\let\footnote\@footnotemark@gobble
\@make@capt@title{#1}{#2}\par
\endgroup
\endgroup
\vskip\belowcaptionskip
}
Als vollständiges Beispieldokument:
\documentclass[%
reprint,
amsmath,amssymb,
aps,nofootinbib,
]{revtex4-1}
\makeatletter
\renewcommand\@makecaption[2]{%
\par
\vskip\abovecaptionskip
\begingroup
\small\rmfamily
\begingroup
\samepage
\flushing
\let\footnote\@footnotemark@gobble
\@make@capt@title{#1}{#2}\par
\endgroup
\endgroup
\vskip\belowcaptionskip
}
\makeatother
\begin{document}
Some text...
\begin{table}
Test
\caption{Test}
\end{table}
Some text...
\end{document}
Eine elegantere Lösung \patchcmd
bietet das etoolbox
Paket [1]:
\documentclass[%
reprint,
amsmath,amssymb,
aps,nofootinbib,
]{revtex4-1}
\usepackage{etoolbox}
\makeatletter
\patchcmd{\@makecaption}{\@ifdim{\wd\@tempboxa >\hsize}}{\@firstoftwo}{}{}
\makeatother
\begin{document}
Some text...
\begin{table}
Test
\caption{Test}
\end{table}
Some text...
\end{document}
Beachten Sie jedoch, dass das Patchen der internen Komponenten von Dokumentklassen oder Paketen im Allgemeinen keine gute Idee ist, da die internen Komponenten in zukünftigen Versionen der gepatchten Dokumentklasse oder des gepatchten Pakets geändert werden können.
[1] Siehe auch:Bitte unterrichten Sie die Verwendung von patchcmd und xpatch