
一般理解
基本上,我想做的是簡化為一篇或可能多篇科學論文創建表格的整個過程。最終目標是找到類似桌子的通用樣式,即(常規)桌子和長桌子的粗略草稿/框架。應該說,我想涵蓋嚴格的科學表格。
我很清楚這樣一個事實:人們提出的問題應該是為了得到明確的答案而不是引發討論。然而,這裡出現了一系列“最佳實踐問題”,但像這樣的問題從未被真正處理。我讀了很多表格排版的基礎、科學規則和與表格相關的套件;這是我發現最有幫助的:
- A非常全面的表格指南,有很多例子
- 最佳排版實踐和各種科學建議還有很多
- 一個概述包包,以及類似的東西推薦/最佳實踐
然而,我想更進一步,並解決用戶如何實際使用套件和程式碼來建立表。
最重要的是,我希望這些類型的表格看起來盡可能相同。
可以解決的問題:
- 你使用什麼包? (有沒有更複雜、更有意義的東西,例如禁忌等?)
- 你如何縮放到文字寬度或其他? (就我個人而言,我發現調整大小/縮放框方法非常有吸引力,因為與離散字體大小相比,它為您提供了連續的可擴展性。無論如何,我也看到了其中的陷阱,它不適用於長表,對嗎?
- 在什麼情況下您會進入橫向模式?
- 您如何選擇對齊列?有沒有一種合理的方法來對齊“56 (16%)”之類的內容,或者您會選擇兩列?
- 如何在表格中包含公式/方程式?
- 如何實現常規桌和長桌風格的一致性? (就我而言,標準設計似乎很不一樣)
- 如何格式化表格筆記? Iyo,與常規文字大小相比,表格內容和註釋的最小字體大小應該是多少?
- +幾乎任何你想到的
- 您如何確保使用這種標準化的餐桌佈置?我已經使用環境名稱/定義建立了 .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
好吧,到目前為止我所想出的以及基本上滿足我要求的內容如下:
這設定了一個通用的表大小:
\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-package 並定義以下列類型和定義或類似的內容。根據表中的數字以及想要對齊的列類型,可能如下所示:
\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-package 在表格中顯示粗體擴展數字。在這種情況下,我們始終可以引用非擴充版本,也就是上述程式碼的 Z 列類型。