标题使 statsoc 类中的表格移动

标题使 statsoc 类中的表格移动

我正在工作statsoc.cls(你可以找到它这里)。这里我向你展示了我在论文中遇到的问题的工作文件。

我有一张表格,上面有一个较长的标题(2-3 行)。每次我编译.tex文件时,表格都会向页面右侧移动一点。我认为这是因为标题在某个时候停止换行。

\documentclass{statsoc}

%%%% Packages to be used
\usepackage[a4paper]{geometry}
\usepackage{amssymb, amsmath}

\usepackage{graphicx}
\usepackage[caption = false]{subfig} 
\usepackage{enumerate}
\usepackage{comment}
\usepackage{natbib, float}

\title{``Table keeps moving every time I compile''}
\begin{document}

\maketitle

\begin{table}
  \caption{Table moves a little everytime I compile. I think this is because I have a long caption, but I cannot figure out how to resolve this problem. As you can see I am using statsoc.cls. I can reset the table if I delete the .aux file and recompile}
  \fbox{%
    \begin{tabular}{c c c c c c c c c c c c c c c c c c}
    \hline
    1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5 & 1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5\\
    1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5 & 1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5\\
    1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5& 1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5\\
    \hline
    \end{tabular}}
\end{table}
\end{document}

当我删除 .aux 文件并重新编译时,它以如下方式启动:

在此处输入图片描述

然后经过一次编译后变成

在此处输入图片描述

然后经过许多

在此处输入图片描述

当我重新编译时,我没有在表环境内做任何更改,而是在表环境之外工作。我相信问题和我的完全一样,但是问题被关闭了。

我不确定您是否需要更多信息。如果需要,请告诉我。

有一位 overleaf 用户写道这里

请注意,如果您的文档包含其他 LaTeX 错误,表格将无法正确处理。因此,如果您收到有关等的错误消息Missing number\statsocwidth@b请先注释掉表格并更正代码中的其他错误。然后取消注释表格代码,并点击错误/警告消息窗口底部的“从头开始重新编译”。

因此显然,每次出现错误时,表格就会变得混乱,您需要删除辅助文件。

答案1

这是一个非常隐蔽的错误,因为在某个我无法找到的地方插入了一个虚假的空格。由于这个虚假的空格,每次编译文档时,分配给标题的宽度都会增加 3.65pt,这正好是所选字体中正常单词间空格的宽度。

这是一个解决方法。

\documentclass{statsoc}

%%%% Packages to be used
\usepackage[a4paper]{geometry}
\usepackage{amssymb, amsmath}
\usepackage{etoolbox}

\makeatletter
\patchcmd{\@makecaption}
  {\parbox}
  {\advance\@tempdima-\fontdimen2\font\parbox} % decrease the width!
  {}{}
\makeatother  

\usepackage{graphicx}
\usepackage[caption = false]{subfig} 
\usepackage{enumerate}
\usepackage{comment}
\usepackage{natbib, float}

\title{``Table keeps moving every time I compile''}
\author{Don't move!}
\begin{document}

\maketitle

\begin{table}
\caption{Table moves a little everytime I compile. 
  I think this is because I have a long caption, 
  but I cannot figure out how to resolve this problem.
  As you can see I am using statsoc.cls. I can reset
  the table if I delete the .aux file and recompile}
  \fbox{%
    \begin{tabular}{c c c c c c c c c c c c c c c c c c}
    \hline
    1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5 & 1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5\\
    1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5 & 1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5\\
    1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5& 1 & 2 & 3 & 4 & 5 & 2 & 3 & 4 & 5\\
    \hline
    \end{tabular}}
\end{table}
\end{document}

在此处输入图片描述

相关内容