文档类 apa6 中的居中表格

文档类 apa6 中的居中表格

我正在以该模式使用该apa6课程doc来完成我的论文。

现在,当我创建一个表格并尝试将其置于页面中央时,表格就正确居中了。但是,标题仍然浮动在页面左侧表格原来的位置。

它看起来是这样的:

表格标题位置不正确

我希望标题与表格左侧对齐。

这基本上就是我的 .tex 文件的样子:

\documentclass[doc]{apa6}

\usepackage[american,ngerman]{babel}
\usepackage[style=apa,sortcites=true,sorting=nyt]{biblatex}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\shorttitle{Some title}

\begin{document}

\begin{table}[htbp]
    \center
    \caption{Some caption}
    \label{table1}
    \begin{tabular}{lcc}
        \toprule
        Test1 & 1 & 2\\
        Test2 & 1 & 2\\
        Test3 & 1 & 2\\
        \bottomrule
    \end{tabular}
\end{table}

\end{document}

答案1

caption包由类加载apa6,因此您可以使用其命令来设置标题格式。添加:

\captionsetup{justification=centering}

将导致标题居中。但是,这似乎不是您想要的确切格式。您想要的是左对齐标题,与表格的自然宽度对齐。正如 Axel Sommerfeldt 在评论中指出的那样,包中有一个命令caption允许您将表格及其标题放在一个框中。这将允许您非常轻松地完成您想要的操作。该命令尚未进入caption(v3.2) 的文档。

该命令的语法是:

\captionbox[⟨list entry⟩]{⟨heading⟩}[⟨width⟩][⟨inner-pos⟩]{⟨contents⟩}
\captionbox*{⟨heading⟩}[⟨width⟩][⟨inner-pos⟩]{⟨contents⟩}

(引用subcaption同一作者的包:)

参数⟨list entry⟩&⟨heading⟩将用于排版\caption⟨width⟩是结果的宽度 \parbox;默认值是内容的宽度。

⟨inner-pos⟩指定内容在结果 中的对齐方式\parbox;它可以是c(对于\centering)、l(对于 \raggedright)、r(对于\raggedleft)或s(对于无特殊对齐)。默认值为c。(但您\DeclareCaptionJustification也可以使用 定义的任何对齐方式,例如 centerlast。)

\documentclass[doc]{apa6}

\usepackage[american,ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\shorttitle{A title}
\begin{document}
Example of a table:

\begin{table}[htbp]
  \centering
  \captionbox{Some caption\label{table1}}{%
    \begin{tabular}{lcc}
        \toprule
        Test1 & 1 & 2\\
        Test2 & 1 & 2\\
        Test3 & 1 & 2\\
        \bottomrule
    \end{tabular}
  }
\end{table}
\end{document}

在此处输入图片描述

除非您有非常严格的格式要求,否则我会坚持使用居中字幕而不是这样做。

(感谢 Werner 和 Axel 对这个答案的评论。)

答案2

您可以加载zref包裹使用savepos模块。这允许您使用保存页面上的\zsavepos{<label>}(x,y) 坐标的模块,可通过和中的caled oints(或)检索。这至少需要两次编译。<label>\zposx{<label>}\zposy{<label>}spsp

通过 zref 的 \zsavepos 将标题调整为表格宽度

\documentclass[doc]{apa6}% http://ctan.org/pkg/apa6

%\usepackage[american,ngerman]{babel}% http://ctan.org/pkg/babel
%\usepackage[style=apa,sortcites=true,sorting=nyt]{biblatex}% http://ctan.org/pkg/biblatex
%\usepackage[utf8]{inputenc}% http://ctan.org/pkg/inputenc
%\usepackage[T1]{fontenc}% http://ctan.org/pkg/fontenc
\usepackage[savepos]{zref}% http://ctan.org/pkg/zref

\shorttitle{Some title}

\begin{document}

\begin{table}[htbp]
  \centering
  \begin{minipage}{\dimexpr\zposx{tabR}sp-\zposx{tabL}sp\relax}
    \caption{Some caption}
    \label{table1}
    \zsavepos{tabL}\begin{tabular}{lcc}% Save tabular LEFT coordinate
        \toprule
        Test1 & 1 & 2\\
        Test2 & 1 & 2\\
        Test3 & 1 & 2\\
        \bottomrule
    \end{tabular}\zsavepos{tabR}% Save tabular RIGHT coordinate
  \end{minipage}
\end{table}

\end{document}

你在环境的左边放置一个标签tabular(比如tabL),在右边放置一个标签(比如tabR)。然后,给出和\dimexpr\zposx{tabR}sp-\zposy{tabL}sp\relax之间的精确水平距离,你将其用作 的长度限制。tabLtabRminipage

您需要为每个tabular要强制执行的方式设置不同的标签。可以通过定义您自己的环境(例如)mytable和 来自动执行此过程mytabular,您可以使用它们来代替table

相关内容