删除 \include{} 表后的空格?

删除 \include{} 表后的空格?

我使用 R kableExtra 创建了一个表格。但希望能够在 LATEX 中手动控制表格的注释部分。因此,我使用 \include{table.tex} 命令来引入输出的表格。不幸的是,如果我写:

\documentclass[12pt]{article}
\usepackage{longtable}
\begin{document}
\include{table.tex}\footnotesize{Note: this is a note.}
\end{document}

表格后面出现了一个巨大的缩进,并且仅在下一页上,它显示“这是一个注释”。

table.tex文件如下所示:

\begingroup\fontsize{8}{10}\selectfont

\begin{longtable}{|c|c|c|c|}
\caption{A simple longtable example}\label{tab:thetable}\\
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endfirsthead
\multicolumn{4}{c}%
{\tablename\ \thetable\ -- \textit{Continued from previous page}} \\
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endhead
\hline \multicolumn{4}{r}{\textit{Continued on next page}} \\
\endfoot
\hline
\endlastfoot
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
\end{longtable}
\endgroup{}

我尝试将所有内容包装在 中minipage,但由于我在 中为表格建立了标题和标签kableExtra,因此它位于 table.tex 中。因此,我无法引用该表格,因为我无法在 minipage 中放置表格。

请有人帮忙!

答案1

该命令\include在其内容前后都插入分页符。您需要的命令是\input,而不是\include

单独观察:字体大小更改命令\tiny\scriptsize\footnotesize\small、、、和\normalsize是开关,即它们不接受花括号分隔的参数。因此,您应该更改\large\Large\LARGE\hugeHuge

\footnotesize{Note: this is a note.}

{\footnotesize Note: this is a note.}

在此处输入图片描述

\documentclass[12pt]{article}
\begin{filecontents*}[overwrite]{table.tex}
\begingroup 
\fontsize{8}{10}\selectfont

\begin{longtable}{|c|c|c|c|}
\caption{A simple longtable in \texttt{8pt}}\label{tab:thetable}\\
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endfirsthead

\multicolumn{4}{c}{%
   \tablename\ \thetable\ -- \textit{Continued from previous page}} \\
\hline
\textbf{First entry} & \textbf{Second entry} & \textbf{Third entry} & \textbf{Fourth entry} \\
\hline
\endhead

\hline \multicolumn{4}{r}{\textit{Continued on next page}} \\
\endfoot

\hline
\endlastfoot

1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
\end{longtable}
\endgroup
\end{filecontents*}

\usepackage{longtable}
\begin{document}

Bla bla bla in \texttt{\string\normalsize\ (12pt)}.

%\include{table.tex} % <-- not good!
\input table         % <-- good
{\footnotesize Note: This note is typeset in \texttt{\string\footnotesize\  (10pt)}.}

More bla bla bla in \texttt{\string\normalsize\ (12pt)}.
\end{document}

答案2

@Mico 评论中给出了您问题的解决方案。因此,这里大部分都是离题的解决方案。我会按照以下方式编写您的文档:

  • 主要文件:
\documentclass[12pt]{article}
\usepackage{tabularray}  % <--- new
\usepackage{lipsum}

\begin{document}
\lipsum[1-3]
\input{table.tex}         % <--- changed
\lipsum[4]
\end{document}
  • 表格文件,使用包longtblr中定义的表格tabularray。其中一部分是脚注,我假设您喜欢在表格结束后立即添加脚注:
\begingroup
\fontsize{8}{10}\selectfont
    \begin{longtblr}[
     caption = {A simple longtable example},
       label = {tab:thetable},
remark{Note} = {This is a note}
                    ]{
        rowhead = 1,
        hlines, vlines,
        colspec= {*4{Q[c]}},
        row{1} = {font=\bfseries}
                    }
First entry & Second entry  & Third entry   & Fourth entry  \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\ 1 & 2 & 3 & 4 \\
\end{longtblr}
\endgroup

在此处输入图片描述

答案3

\input我同意使用而不是 的建议\include

尽管如此,如果有充分的理由坚持使用\include,可能为了使用\includeonly,您可以定义一个\include不添加分页符的版本,如下所示:

\usepackage{etoolbox} % for \patchcmd
\makeatletter
\let\includenobreak=\include
\let\@includenobreak=\@include
\patchcmd{\@includenobreak}%
  {\clearpage}{}{}{}
\patchcmd{\includenobreak}%
  {\@include}{\@includenobreak}{}{}
\makeatother

并可\includenobreak用于您的桌子或其他任何东西。

相关内容