减少表格换行文字间距

减少表格换行文字间距

我正在处理一些表格,并考虑将最左边索引的文本换行到两行。

但是,我希望换行单元格的行距 –Connected components并且Estimated sequence length– 小于文档的整体设置,只是为了清楚地表明我们仍在同一个单元格内。下面举个例子: 在此处输入图片描述

以及相关代码

\documentclass[12pt]{report}


\usepackage[letterpaper,margin=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{float}

\usepackage{longtable,booktabs,siunitx}
\renewcommand{\baselinestretch}{1.5}

\begin{document}

\begin{longtable}{@{\extracolsep{\fill}} p{0.20\linewidth} *{4}{S[table-format=2.2]}}
\caption[\textbf{}]{\textbf{} } 
\label{table:graphs} \\
\toprule
& \multicolumn{4}{c}{\textbf{GRAPH}} \\
\cmidrule{2-5}
& \multicolumn{2}{c}{\texttt{minigraph-CACTUS}}  
& \multicolumn{2}{c}{\texttt{PGGB}} \\
\cmidrule{2-3} \cmidrule{4-5}

& {\textit{GRCh38-only}} & {\textit{CHM13}} & {\textit{GRCh38-only}} & {\textit{CHM13}} \\
\cmidrule{2-5}

\centering\textbf{Node Count} &  \\
\centering\textbf{Edge Count} &  \\
\centering\textbf{Total length} &  \\
\centering\textbf{Dead ends} &  \\
\centering\textbf{Connected components} &  \\
\centering\textbf{Median depth} &  \\
\centering\textbf{Estimated sequence length} &  \\
\midrule[\heavyrulewidth]
\end{longtable}

\end{document}

现在,我尝试了一些选项,但它们都搞乱了单元格之间的间距……有没有办法只对这两个单元格进行本地处理,同时保留整个文档的格式?提前致谢!

答案1

单元格会显示您设置所需的行距\renewcommand{\baselinestretch}{1.5}(我希望您不要只对表格这样做,否则您最好使用\renewcommand{\arraystretch}{1.5})。

您需要恢复。需要\baselinestretch一条命令来确保其有效:\selectfont

\renewcommand{\baselinestretch}{1}\selectfont

例如定义一个新命令:

\newcommand{\smallerbaseline}{\renewcommand{\baselinestretch}{1}\selectfont}

并在需要的地方使用它

\smallerbaseline\textbf{Connected components}

对于表格,您可以将其包含在其定义中:

\begin{longtable}{
  @{\extracolsep{\fill}}
  >{\smallerbaseline} p{0.20\linewidth}
  *{4}{S[table-format=2.2]}
}

完整示例(我还将\centering第一列和正文面设置移入了表格定义中)。

\documentclass[12pt]{report}


\usepackage[letterpaper,margin=1in]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{subcaption}
\usepackage{caption}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{float}

\usepackage{longtable,booktabs,siunitx}
\renewcommand{\baselinestretch}{1.5}

\newcommand{\smallerbaseline}{\renewcommand{\baselinestretch}{1}\selectfont}

\begin{document}

\begin{longtable}{%
    @{\extracolsep{\fill}}
    >{\centering\arraybackslash\smallerbaseline\bfseries} p{0.20\linewidth}
    *{4}{S[table-format=2.2]}
}
\caption[\textbf{}]{\textbf{} }
\label{table:graphs} \\
\toprule
& \multicolumn{4}{c}{\textbf{GRAPH}} \\
\cmidrule{2-5}
& \multicolumn{2}{c}{\texttt{minigraph-CACTUS}}
& \multicolumn{2}{c}{\texttt{PGGB}} \\
\cmidrule{2-3} \cmidrule{4-5}

& {\textit{GRCh38-only}} & {\textit{CHM13}} & {\textit{GRCh38-only}} & {\textit{CHM13}} \\
\cmidrule{2-5}
Node Count &  \\
Edge Count &  \\
Total length &  \\
Dead ends &  \\
Connected components &  \\
Median depth &  \\
Estimated sequence length &  \\
\midrule[\heavyrulewidth]
\end{longtable}

\end{document}

更改第一列的基线

另一种方法是\arraystretch(如果您确实需要文档中更大的基线,请添加)\smallerbaseline\begingroup

\begingroup
\renewcommand{\arraystretch}{1.5}
\begin{longtable}{%
    @{\extracolsep{\fill}}
    >{\centering\arraybackslash\bfseries} p{0.20\linewidth}
    *{4}{S[table-format=2.2]}
}
\caption[\textbf{}]{\textbf{} }
\label{table:graphs} \\
\toprule
& \multicolumn{4}{c}{\textbf{GRAPH}} \\
\cmidrule{2-5}
& \multicolumn{2}{c}{\texttt{minigraph-CACTUS}}
& \multicolumn{2}{c}{\texttt{PGGB}} \\
\cmidrule{2-3} \cmidrule{4-5}

& {\textit{GRCh38-only}} & {\textit{CHM13}} & {\textit{GRCh38-only}} & {\textit{CHM13}} \\
\cmidrule{2-5}
Node Count &  \\
Edge Count &  \\
Total length &  \\
Dead ends &  \\
Connected components &  \\
Median depth &  \\
Estimated sequence length &  \\
\midrule[\heavyrulewidth]
\end{longtable}
\endgroup

答案2

如果您要更改\baselinestretch,最好使用,setspace这样您就有现成的方法来更改它,并且可以减轻一些副作用。但是,您应该知道,当值被全局更改时,标准类可能会出现错误,因为很多事情都依赖于 的值,而\baselinestretch这些方式可能并不明显。setspace这可以稍微改善一些情况,但只是一点点。

singlespace我实际上会在表格单元格中使用环境的修改版本,以避免行之间的间距过大。在下面的代码中,我调用此环境singlespaced并将其应用于第一列(与 和\centering一起\bfseries),使用您已隐式加载的包的>和功能。<array

\documentclass[12pt,letterpaper]{report}
\usepackage[margin=1in]{geometry}
% \usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{subcaption}
% \usepackage{caption}
\usepackage{amsmath}
\usepackage{xcolor}
\usepackage{float}

\usepackage{longtable,booktabs,siunitx}
\usepackage{setspace}
\makeatletter
\newenvironment{singlespaced}{%
  \vskip \baselineskip
  \setstretch {\setspace@singlespace}%
  \vskip -2\baselineskip
}{%
  \par
}
\makeatother
\setstretch{1.5}

\begin{document}

  \begin{longtable}{@{\extracolsep{\fill}} >{\bfseries\centering\singlespaced} p{0.20\linewidth} <{\endsinglespaced} *{4}{S[table-format=2.2]}}
  \caption[\textbf{}]{\textbf{} } 
  \label{table:graphs} \\
  \toprule
  & \multicolumn{4}{c}{\textbf{GRAPH}} \\
  \cmidrule{2-5}
  & \multicolumn{2}{c}{\texttt{minigraph-CACTUS}}  
  & \multicolumn{2}{c}{\texttt{PGGB}} \\
  \cmidrule{2-3} \cmidrule{4-5}
  
  & {\textit{GRCh38-only}} & {\textit{CHM13}} & {\textit{GRCh38-only}} & {\textit{CHM13}} \\
  \cmidrule{2-5}
  
  Node Count &  \\
  Edge Count &  \\
  Total length &  \\
  Dead ends &  \\
  Connected components &  \\
  Median depth &  \\
  Estimated sequence length &  \\
  \bottomrule
\end{longtable}

\end{document}

[由于 Okular/KDE 错误,没有图像,如果不删除,图像会变得非常丑陋,您会惊恐地尖叫。]

相关内容