![总体理解](https://linux22.com/image/328539/%E6%80%BB%E4%BD%93%E7%90%86%E8%A7%A3.png)
总体理解
基本上,我试图简化为一篇或多篇科学论文创建表格的整个过程。最终目标是找到一种通用的表格样式,即(常规)表格和长表格的草稿/框架。应该说,我想涵盖严格的科学表格。
我很清楚,提出的问题应该有明确的答案,而不是引发讨论。尽管如此,这里还是出现了一系列“最佳实践问题”,但像这样的问题从未真正得到解决。我阅读了很多表格排版基础知识、科学规则和与表格相关的软件包;以下是我发现最有帮助的内容:
- A相当全面的表格指南,包含许多示例
- 最佳实践排版和各种科学建议还有很多
- 一个概述包,以及类似建议/最佳实践
然而,我想更进一步,讨论一下用户如何实际使用包和代码来创建表。
最重要的是,我希望这些类型的表格尽可能看起来相同。
可以解决的问题:
- 你使用什么软件包?(是否有更复杂、更有意义的软件包,例如 tabu 等?)
- 您如何缩放到文本宽度或其他内容?(就我个人而言,我发现调整大小/缩放框方法非常有吸引力,因为与离散字体大小相比,它为您提供了连续的可扩展性。无论如何,我也看到了一些缺陷,它不适用于长表,对吗?或者,您总是使用类似 tabularx 等的东西。)
- 在什么情况下您会进入横向模式?
- 您如何选择对齐列?是否有合理的方法来对齐“56 (16%)”之类的内容,或者您会选择两列吗?
- 如何在表格中包含公式/方程式?
- 如何实现普通桌子和长桌子之间的风格一致?(就我而言,标准设计似乎非常不同)
- 您如何格式化表格注释? 嘿,与常规文本大小相比,表格内容和注释的最小字体大小应该是多少?
- +几乎任何你能想到的
- 如何确保使用这种标准化的表格设置?我已经创建了包含环境名称/定义的 .xml 文件,但也看到了序言中定义的新环境。
无论如何,总而言之,我正在寻找的是您个人如何格式化表格这个问题的答案。
为了帮助您了解情况,下面我将发布常规表和长表的 MWE:
MWE/环境
序言/套餐
\usepackage{longtable}
\usepackage{ifthen}
\usepackage{array}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{booktabs}
\usepackage[flushleft]{threeparttable}
\usepackage{threeparttablex}
\usepackage{dcolumn}
\usepackage[labelfont=bf,format=plain,labelsep=colon,textformat=period,font={small,singlespacing},justification=justified,singlelinecheck=false,skip=6pt,belowskip=-6pt]{caption}
标准表
\begin{table}[htb]
\newcolumntype{.}{D{.}{.}{}}
\scalebox{1}{
\begin{threeparttable}
\begin{tabular}{ll}
\toprule
\midrule
\bottomrule
\end{tabular}
\begin{tablenotes}
\footnotesize
\item\quad
\end{tablenotes}
\end{threeparttable}}
\caption{}
\label{tab:}
\end{table}
长桌
\begin{ThreePartTable}
\begin{TableNotes}
\vspace{-12pt}
\scriptsize\singlespacing
\item[a]
\end{TableNotes}
\begin{longtable}{ll}
\toprule
\toprule
\multicolumn{4}{c}{\textbf{Two-Stage Cross-Sectional Regressions}}\\
\endfirsthead
\multicolumn{4}{c}
{{\bfseries\tablename\ \thetable{}} -- {\itshape continued}}\\ \\
\endhead
%\midrule
%\multicolumn{3}{|r|}{{Continued~on~next~page}}
%\\
%\midrule
\endfoot
\endlastfoot
%Tablecontents
%&//* &//
\insertTableNotes\\
\caption{}
\label{tab:}
\end{longtable}
\end{ThreePartTable}
我很高兴,我将接受其他有关将数据自动纳入 Latex 表的技巧。此外,我将尽一切努力使这个主题尽可能井井有条。请考虑将其保持开放一段时间,也许我可以从中创建一个指南。
编辑:
好的,似乎有必要进一步澄清我的目标。由于我试图弄清楚最佳实践(无论是一般的还是出于个人目的)应该是什么样的,所以我想看到更多“表格实践”的片段。因此,如果有人使用某种标准化方法,而不仅仅是在一些基本的表格环境中打字,并且愿意分享它,请这样做!
答案1
好的,到目前为止我想到的以及基本满足我的要求的是以下内容:
这将设置一个通用的 tablenotesize:
\makeatletter
\g@addto@macro\TPT@defaults{\scriptsize}
\makeatother
然后我通常使用扩展到文本宽度的表格。因此在长桌环境中必须手动调整注释的宽度。此外,我将注释拉近到靠近表格的位置,并修改代码,以防注释没有引用表格中的标记,从而避免缩进。
\begin{ThreePartTable}
\singlespacing
\setlength\LTleft{0pt}
\setlength\LTright{0pt}
\renewcommand\TPTminimum{\textwidth}
\begin{TableNotes}
\vspace{-0.5em}
\item \leavemode\kern-\scriptspace\kern-\labelsep Notes:
%\item[a]
\end{TableNotes}
{%\fontsize
\begin{longtable}{@{\extracolsep{\fill}}ll}
\toprule
%Heading\\
\midrule
\endfirsthead
\multicolumn{#columns}{c}
{\small{\bfseries\tablename\ \thetable{}} -- {\itshape continued}} \vspace{6pt}\\
\toprule
%Heading on following pages
\endhead
\midrule
%\multicolumn{#columns}{c}{{Continued~on~next~page}}
\\
\midrule
\endfoot
\endlastfoot
%Tablecontents
\insertTableNotes\\
\caption{}
\label{tab:}
\end{longtable}
\end{ThreePartTable}
然后,对于列对齐,我使用 dcolumn 包并定义以下列类型和定义或类似内容。根据表中的数字,要对齐的列类型可能如下所示:
\newcolumntype{.}{D{.}{.}{2.2}}
\newcolumntype{j}{D{.}{.}{1.2}}
我通常直接在表格环境中定义它们。此外,我在可预置部分中加入了以下内容,以便以方便的方式在表格中使用和对齐粗体数字。但请确保粗体多列单元格的列类型在尺寸上必须与一般列定义一致:例如 {2.2} 到 {2.2}
\makeatletter
\newcolumntype{B}[3]{>{\boldmath\DC@{#1}{#2}{#3}}c<{\DC@end}}
\newcolumntype{Z}[3]{>{\mathversion{nxbold}\DC@{#1}{#2}{#3}}c<{\DC@end}}
\makeatother
\newcommand\mcb[1]{\multicolumn{1}{Z{.}{.}{2.2}}{#1}} % shortcut macro
我还没搞清楚的是,如何使用 mathptmx 包等在表格中显示加粗扩展数字。在这种情况下,可以参考非扩展版本,即上述代码的 Z-columntype。