我想制作一个没有垂直线的表格,我使用了以下代码:
\begin{table}[H]
\centering
\caption{Annualized Sharpe ratios for the mean reversion strategies.}\label{tab:1}
\begin{tabular}{p{1.1in} p{0.5in} p{0.6in} p{0.4in} p{0.3in} p{0.5in}}
~ & \textbf{CMSTNO } & \textbf{RS-CMSTNO} & \textbf{HRP} & \textbf{MSR} & \textbf{S\&P500} \\
Annualized mean & 16.47\% & 17.43\% & 8.72\% & 7.18\% & 11.38\% \\
Annualized st. deviation & 12.93\% & 12.70\% & 10.46\% & 8.78\% & 16.44\% \\
Skewness & -1.46 & -1.46 & -1.41 & -0.62 & -0.94 \\
Kurtosis & 5.53 & 5.27 & 7.76 & 4.07 & 8.01 \\
Volatility Skewness & 0.92 & 0.87 & 0.83 & 1.08 & 0.95 \\
Sharpe Ratio & 1.3 & 1.42 & 0.8 & 0.8 & 0.64 \\
Sortino Ratio & 0.24 & 0.26 & 0.16 & 0.162 & 0.133 \\
\hline
\end{tabular}
\end{table}
然而,一些列名最终会重叠在一起(特别是列名 1 和 2),并且第二行的名称“年化标准差”会打印在两行上。
关于如何不将行名打印在两行/列名打印在彼此之上,您有什么想法吗?
非常感谢。
答案1
与原版相比的变化:
l
p
在第一列中输入 column 而不是以避免换行S
键入列表格siunitx
以改善列中数字的对齐方式- 包装上的水平线
booktabs
,而不是\hline
为了改善水平线周围的间距 caption
用于改善标题和表格之间间距的包tabular*
结合\setlength{\tabcolsep}{0pt}
和@{\extracolsep{\fill}}
以确保表格适合文本宽度。(可能不需要,取决于文档类别/可用空间)- 删除列标题中的粗体以节省空间
- 在第一列中缩写条目以节省空间
- 删除重复内容
\%
并将该信息添加到第一列,以避免重复/节省空间。
\documentclass{article}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{caption}
\begin{document}
\begin{table}
\caption{Annualized Sharpe ratios for the mean reversion strategies.}\label{tab:1}
\setlength{\tabcolsep}{0pt}
\begin{tabular*}{\linewidth}{@{\extracolsep{\fill}}l *{3}{S[table-format=-2.2]} *{2}{S[table-format=-2.3]}}
\toprule
& {CMSTNO} & {RS-CMSTNO} & {HRP} & {MSR} & {S\&P500} \\
\midrule
Annualized mean (\%) & 16.47 & 17.43 & 8.72 & 7.18 & 11.38 \\
Annualized st. dev. (\%) & 12.93 & 12.70 & 10.46 & 8.78 & 16.44 \\
Skewness & -1.46 & -1.46 & -1.41 & -0.62 & -0.94 \\
Kurtosis & 5.53 & 5.27 & 7.76 & 4.07 & 8.01 \\
Volatility Skewness & 0.92 & 0.87 & 0.83 & 1.08 & 0.95 \\
Sharpe Ratio & 1.3 & 1.42 & 0.8 & 0.8 & 0.64 \\
Sortino Ratio & 0.24 & 0.26 & 0.16 & 0.162 & 0.133 \\
\bottomrule
\end{tabular*}
\end{table}
\end{document}