我正在处理一些表格,并考虑将最左边索引的文本换行到两行。
但是,我希望换行单元格的行距 –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 错误,没有图像,如果不删除,图像会变得非常丑陋,您会惊恐地尖叫。]