这是我关于 Latex 的第一个问题。我在下面提供了一个代码示例。请注意,变量名不是我的真实变量名,关联表也不是真实的。但是,就小数和变量名长度而言,这正是我的关联的样子。
问题:
在编译文档时,发现顶部和底部的线条没有完全沿着列延伸 [自行编译或查看图片] -> 有没有办法使这些线条更长并与列一样长 [查看带有所需结果/红线的图片]。
由于可读性原因,较小的字体不是一个好的选择
背景:
- 这些表格是使用 Stata 中的 estout 包生成的
- 标题名称被更改:在普通关联表中,标题名称应等于行名称。但是,这会使表太大。因此,我选择将标题名称更改为相应的数字
- 编辑:请注意,此表是整个文档的一部分,其前后页面仅包含常规文本。
\documentclass{article}
\usepackage[utf8]{inputenc}
%Formatting tables
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{dcolumn}
\usepackage{rotating}
\title{Sidewas ytest}
\author{x.y }
\date{June 2019}
\begin{document}
\maketitle
\section{Introduction}
\newpage
\thispagestyle{empty}
%Table
\newpage
\thispagestyle{empty}
\begin{sidewaystable}
\centering
\scriptsize
\caption{Sample A: Correlation Matrix\label{tab:corr2}}
\begin{tabular*}{1\hsize}{@{\hskip\tabcolsep\extracolsep\fill}l*{15}{c}}
\toprule
&(1)&(2)&(3)&(4)&(5)&(6)&(7)&(8)&(9)&(10)&11)&(12)&(13)&(14)&(15)\\
\midrule
(1) Variable name (\%)& 1.000& & & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(2) Variable name (\%)& 0.5& 1.000& & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(3) Variable name (\%)& 0.5& 0.051& 1.000& & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(4) Variable name (\%)& -0.1& 0.005& 0.005& 1.000& & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(5) Variable name (\%)& -0.5& -0.005& -0.005& -0.005& 1.000& & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(6) Variable name (100s)& -0.005& -0.005& -0.005& -0.005& -0.000& 1.000& & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(7) Variable name & -0.005& 0.012& -0.004& 0.008& -0.000& -0.005& 1.000& & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(8) Very Long Variable name & 0.005& -0.071& -0.045& -0.161& -0.104& -0.005& -0.003& 1.000& & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(9) Variable name & -0.005& -0.005& -0.005& -0.005& -0.005& 0.005& -0.005& 0.005& 1.000& & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(10) Variable name & -0.005& -0.005& -0.005& 0.005& 0.056& -0.005& -0.005& -0.005& 0.005& 1.000& & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(11) Variable name & -0.045& -0.005& 0.005& 0.005& 0.005& -0.005& 0.009& -0.005& -0.005& 0.005& 1.000& & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(12) Variable name & -0.133& 0.005& 0.005& 0.005& 0.005& 0.005& 0.005& -0.005& -0.005& -0.005& 0.005& 1.000& & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(13) Longer Variable name & 0.005& -0.099& 0.033& -0.000& 0.006& -0.005& 0.005& 0.050& -0.005& -0.005& -0.025& -0.000& 1.000& & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(14) Long Variable name & 0.005& 0.005& -0.005& -0.005& -0.005& 0.197& -0.005& 0.005& 0.005& -0.005& -0.005& -0.005& -0.038& 1.000& \\
& & & & & & & & & & & & & & & \\
\addlinespace
(15) Variable name & -0.005& 0.005& -0.005& 0.005& -0.005& 0.049& 0.018& -0.085& -0.005& 0.005& -0.005& 0.005& 0.005& 0.026& 1.000\\
& & & & & & & & & & & & & & & \\
\bottomrule
\end{tabular*}
\end{sidewaystable}
\end{document}
答案1
这里的问题是您的桌子不适合可用的长度\textheight
(旋转桌子时长度也会改变!)。
showframe
为了直观地展示这一点,我在代码中添加了包。这些行仅位于表的有效空间内:
为了使您的表格合适,您可以尝试以下可能性(现已评论):
\begin{tabular*}{1\hsize}{@{\hskip\tabcolsep\extracolsep\fill}l*{15}{c}} % original
%\begin{tabular*}{1\hsize}{@{\hskip\tabcolsep\extracolsep\fill}p{2cm}*{15}{c}} % <=========
%\setlength{\tabcolsep}{4pt} % <=========================================
%\begin{tabular*}{1\hsize}{p{3.5cm}*{15}{c}} % <=========================
请在本文末尾查看完整内容...
下一个可能性是使用p{2cm}
你的来代替,l
从而得到结果:
显示较小的(2cm)第一列(参见红色箭头),最后一列未超出打字区域
但是现在表格太长了,因为第一列中的一些条目需要两行才能完全打印出来。
下一个可能性是使用
\setlength{\tabcolsep}{4pt} % <=========================================
\begin{tabular*}{1\hsize}{p{3.5cm}*{15}{c}} % <=========================
使所有列之间的空间更小,并为第一列使用更大的空间p{3.5cm}
:
这似乎就是您想要的,但是现在我们仍然有两个可能的问题:如果第一列中的变量名需要更多位置,会发生什么情况?如果表格再次进入边距,会发生什么情况?
为了自动计算第一列的宽度,您可以使用包tabularx
和环境tabularx
来解决这个问题。X
标记要计算的列的宽度:
\usepackage{ragged2e} % for a better linebreaking and hyphenation in \RaggedRight
\usepackage{tabularx}
\begin{tabularx}{\linewidth}{>{\RaggedRight}X*{15}{c}}
要获得跨越多页的表格,您可以使用longtable
,如果需要tabularx
,longtable
一起使用包ltxtable
...但我没有测试是否longtable
正在ltxtable
工作sidewaystable
......
答案2
以下是关于如何使表格适合文本宽度的三种不同建议:
- 通过使用减少相邻列之间的空白
\setlenghth{\tabcolsep}{4pt}
- 通过将字体大小替换
\scriptsize
为\tiny
(正如 MadyYuvi 在评论中所建议的那样) - 使用 在第一列引入自动换行
tabularx
。
您可以在以下 MWE 中找到所有三个建议的完整代码:
\documentclass{article}
\usepackage[utf8]{inputenc}
%Formatting tables
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{dcolumn}
\usepackage{rotating}
%%%%% Only needed for suggestion 3 %%%%%
\usepackage{tabularx}
\usepackage{ragged2e}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\title{Sidewas ytest}
\author{x.y }
\date{June 2019}
\begin{document}
\maketitle
\section{Introduction}
\newpage
\thispagestyle{empty}
%Table
\newpage
\thispagestyle{empty}
\begin{sidewaystable}
\centering
\scriptsize
\setlength{\tabcolsep}{4pt}
\caption{Sample A: Correlation Matrix\label{tab:corr1}}
\begin{tabular*}{1\hsize}{@{\hskip\tabcolsep\extracolsep\fill}l*{15}{c}}
\toprule
&(1)&(2)&(3)&(4)&(5)&(6)&(7)&(8)&(9)&(10)&11)&(12)&(13)&(14)&(15)\\
\midrule
(1) Variable name (\%)& 1.000& & & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(2) Variable name (\%)& 0.5& 1.000& & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(3) Variable name (\%)& 0.5& 0.051& 1.000& & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(4) Variable name (\%)& -0.1& 0.005& 0.005& 1.000& & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(5) Variable name (\%)& -0.5& -0.005& -0.005& -0.005& 1.000& & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(6) Variable name (100s)& -0.005& -0.005& -0.005& -0.005& -0.000& 1.000& & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(7) Variable name & -0.005& 0.012& -0.004& 0.008& -0.000& -0.005& 1.000& & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(8) Very Long Variable name & 0.005& -0.071& -0.045& -0.161& -0.104& -0.005& -0.003& 1.000& & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(9) Variable name & -0.005& -0.005& -0.005& -0.005& -0.005& 0.005& -0.005& 0.005& 1.000& & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(10) Variable name & -0.005& -0.005& -0.005& 0.005& 0.056& -0.005& -0.005& -0.005& 0.005& 1.000& & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(11) Variable name & -0.045& -0.005& 0.005& 0.005& 0.005& -0.005& 0.009& -0.005& -0.005& 0.005& 1.000& & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(12) Variable name & -0.133& 0.005& 0.005& 0.005& 0.005& 0.005& 0.005& -0.005& -0.005& -0.005& 0.005& 1.000& & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(13) Longer Variable name & 0.005& -0.099& 0.033& -0.000& 0.006& -0.005& 0.005& 0.050& -0.005& -0.005& -0.025& -0.000& 1.000& & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(14) Long Variable name & 0.005& 0.005& -0.005& -0.005& -0.005& 0.197& -0.005& 0.005& 0.005& -0.005& -0.005& -0.005& -0.038& 1.000& \\
& & & & & & & & & & & & & & & \\
\addlinespace
(15) Variable name & -0.005& 0.005& -0.005& 0.005& -0.005& 0.049& 0.018& -0.085& -0.005& 0.005& -0.005& 0.005& 0.005& 0.026& 1.000\\
& & & & & & & & & & & & & & & \\
\bottomrule
\end{tabular*}
\end{sidewaystable}
\begin{sidewaystable}
\centering
\tiny
\caption{Sample A: Correlation Matrix\label{tab:corr2}}
\begin{tabular*}{1\hsize}{@{\hskip\tabcolsep\extracolsep\fill}l*{15}{c}}
\toprule
&(1)&(2)&(3)&(4)&(5)&(6)&(7)&(8)&(9)&(10)&11)&(12)&(13)&(14)&(15)\\
\midrule
(1) Variable name (\%)& 1.000& & & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(2) Variable name (\%)& 0.5& 1.000& & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(3) Variable name (\%)& 0.5& 0.051& 1.000& & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(4) Variable name (\%)& -0.1& 0.005& 0.005& 1.000& & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(5) Variable name (\%)& -0.5& -0.005& -0.005& -0.005& 1.000& & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(6) Variable name (100s)& -0.005& -0.005& -0.005& -0.005& -0.000& 1.000& & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(7) Variable name & -0.005& 0.012& -0.004& 0.008& -0.000& -0.005& 1.000& & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(8) Very Long Variable name & 0.005& -0.071& -0.045& -0.161& -0.104& -0.005& -0.003& 1.000& & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(9) Variable name & -0.005& -0.005& -0.005& -0.005& -0.005& 0.005& -0.005& 0.005& 1.000& & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(10) Variable name & -0.005& -0.005& -0.005& 0.005& 0.056& -0.005& -0.005& -0.005& 0.005& 1.000& & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(11) Variable name & -0.045& -0.005& 0.005& 0.005& 0.005& -0.005& 0.009& -0.005& -0.005& 0.005& 1.000& & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(12) Variable name & -0.133& 0.005& 0.005& 0.005& 0.005& 0.005& 0.005& -0.005& -0.005& -0.005& 0.005& 1.000& & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(13) Longer Variable name & 0.005& -0.099& 0.033& -0.000& 0.006& -0.005& 0.005& 0.050& -0.005& -0.005& -0.025& -0.000& 1.000& & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(14) Long Variable name & 0.005& 0.005& -0.005& -0.005& -0.005& 0.197& -0.005& 0.005& 0.005& -0.005& -0.005& -0.005& -0.038& 1.000& \\
& & & & & & & & & & & & & & & \\
\addlinespace
(15) Variable name & -0.005& 0.005& -0.005& 0.005& -0.005& 0.049& 0.018& -0.085& -0.005& 0.005& -0.005& 0.005& 0.005& 0.026& 1.000\\
& & & & & & & & & & & & & & & \\
\bottomrule
\end{tabular*}
\end{sidewaystable}
\begin{sidewaystable}
\centering
\scriptsize
\caption{Sample A: Correlation Matrix\label{tab:corr3}}
\begin{tabularx}{\linewidth}{>{\RaggedRight}X*{15}{c}}
\toprule
&(1)&(2)&(3)&(4)&(5)&(6)&(7)&(8)&(9)&(10)&11)&(12)&(13)&(14)&(15)\\
\midrule
(1) Variable name (\%)& 1.000& & & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(2) Variable name (\%)& 0.5& 1.000& & & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(3) Variable name (\%)& 0.5& 0.051& 1.000& & & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(4) Variable name (\%)& -0.1& 0.005& 0.005& 1.000& & & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(5) Variable name (\%)& -0.5& -0.005& -0.005& -0.005& 1.000& & & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(6) Variable name (100s)& -0.005& -0.005& -0.005& -0.005& -0.000& 1.000& & & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(7) Variable name & -0.005& 0.012& -0.004& 0.008& -0.000& -0.005& 1.000& & & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(8) Very Long Variable name & 0.005& -0.071& -0.045& -0.161& -0.104& -0.005& -0.003& 1.000& & & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(9) Variable name & -0.005& -0.005& -0.005& -0.005& -0.005& 0.005& -0.005& 0.005& 1.000& & & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(10) Variable name & -0.005& -0.005& -0.005& 0.005& 0.056& -0.005& -0.005& -0.005& 0.005& 1.000& & & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(11) Variable name & -0.045& -0.005& 0.005& 0.005& 0.005& -0.005& 0.009& -0.005& -0.005& 0.005& 1.000& & & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(12) Variable name & -0.133& 0.005& 0.005& 0.005& 0.005& 0.005& 0.005& -0.005& -0.005& -0.005& 0.005& 1.000& & & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(13) Longer Variable name & 0.005& -0.099& 0.033& -0.000& 0.006& -0.005& 0.005& 0.050& -0.005& -0.005& -0.025& -0.000& 1.000& & \\
& & & & & & & & & & & & & & & \\
\addlinespace
(14) Long Variable name & 0.005& 0.005& -0.005& -0.005& -0.005& 0.197& -0.005& 0.005& 0.005& -0.005& -0.005& -0.005& -0.038& 1.000& \\
& & & & & & & & & & & & & & & \\
\addlinespace
(15) Variable name & -0.005& 0.005& -0.005& 0.005& -0.005& 0.049& 0.018& -0.085& -0.005& 0.005& -0.005& 0.005& 0.005& 0.026& 1.000\\
& & & & & & & & & & & & & & & \\
\bottomrule
\end{tabularx}
\end{sidewaystable}
\end{document}