我真的很沮丧。我想将下表输入到我的 LaTeX 文档中,但第一列和第三列无法缩小,因此太宽了。有人能告诉我我做错了什么吗?如果我能正确格式化,表格应该适合大约半页宽度。谢谢您的帮助。
\begin{table}
\begin{tabular}{|c p{3cm}|c p{2cm}|c p{5cm}|c p{2cm}|}
\hline
& Gene & Protein & Disease \\
\hline
\multirow{3}{*}{Soluble lysozomal enzyme deficiencies} & CLN10 (CTSD) & Cathepsin D & Congenital*, LINCL, JNCL, ANCL \\
& CLN1 & Palmitoyl protein thioesterase 1 (PPT1) & INCL*, LINCL, JNCL, ANCL \\
& CLN2 & Tripeptidyl peptidase 1 (TPP1) & LINCL, JNCL \\
\multirow{5}{*}{Non-enzyme deficiencies} & CLN3 & Transmembrane protein & JNCL* \\
& CLN5 & Soluble; lysosomal & LINCL, JNCL, ANCL \\
& CLN6 & Transmembrane protein; ER & LINCL, ANCL Kuf's Type A \\
& CLN7 (MSFD8) & Transmembrane protein; Endolysosomal transporter & LINCL \\
& CLN8 & Transmembrane protein; ER & LINCL \\
\hline
\end{tabular}
\caption{Classification of NCLs by CLN gene affected \cite{haltia} \\ *indicates main form of NCL associated with the gene}
\label{table1}
\end{table}
答案1
传统的l
eft、c
entre 和r
ight 对齐列不会换行。您应该使用p
aragraph 列来允许/强制换行(或允许其他列类型的其他包,如tabularx
的X
列,比如说)。
对你的表进行以下修改使用
tabularx
具有可调整宽度的列(X
类型)以适应剩余部分\textwidth
;geometry
为您的页面留出更多空间;- 使用指令进行列格式化
>{...}
,由array
包裹(由 加载tabularx
)。
\documentclass{article}
\usepackage[margin=15mm]{geometry}% http://ctan.org/pkg/geometry
\usepackage{multirow}% http://ctan.org/pkg/multirow
\usepackage{tabularx}% http://ctan.org/pkg/tabularx
\begin{document}
\begin{table}
\begin{tabularx}
{\textwidth}
{|X p{3cm}|>{\raggedright\arraybackslash}X >{\raggedright\arraybackslash}p{2cm}|}
\hline
& Gene & Protein & Disease \\
\hline
\multirow{3}{*}{Soluble lysozomal enzyme deficiencies} & CLN10 (CTSD) & Cathepsin D & Congenital*, LINCL, JNCL, ANCL \\
& CLN1 & Palmitoyl protein thioesterase 1 (PPT1) & INCL*, LINCL, JNCL, ANCL \\
& CLN2 & Tripeptidyl peptidase 1 (TPP1) & LINCL, JNCL \\
\multirow{5}{*}{Non-enzyme deficiencies} & CLN3 & Transmembrane protein & JNCL* \\
& CLN5 & Soluble; lysosomal & LINCL, JNCL, ANCL \\
& CLN6 & Transmembrane protein; ER & LINCL, ANCL Kuf's Type A \\
& CLN7 (MSFD8) & Transmembrane protein; Endolysosomal transporter & LINCL \\
& CLN8 & Transmembrane protein; ER & LINCL \\
\hline
\end{tabularx}
\caption{Classification of NCLs by CLN gene affected indicates main form of NCL associated with the gene}
\label{table1}
\end{table}
\end{document}
由于我不熟悉确切的用法/上下文,您可能需要调整您的\multirow
规范。
答案2
我推荐使用tabu
* 包来轻松控制可变宽度的列。在我为您的第一列选择的定义中X[4,l]
,该列的相对宽度为 4(即它是第二列的两倍宽),单元格对齐方式为左对齐**。您可以根据需要通过替换来调整表格宽度。to \textwidth
例如。to 10cm
此外,我已将表格插入到ThreePartTable
环境中以允许表格注释(脚注),并增加了\arraystretch
行距以实现更舒适的行距。您可能需要考虑该booktabs
软件包以获取其他样式建议。
\documentclass{article}
\usepackage{tabu}
\usepackage{threeparttablex}
\renewcommand{\arraystretch}{1.5}
\begin{document}
\begin{table}
\begin{ThreePartTable}
\begin{tabu} to \textwidth {| X[4,l]
X[2,l]
X[3,l]<{\strut}
X[3,l]<{\strut}
|}
\hline
& Gene & Protein & Disease \\
\hline
Soluble lysozomal enzyme deficiencies & CLN10 (CTSD) & Cathepsin D & Congenital\tnote{*}, LINCL, JNCL, ANCL \\
& CLN1 & Palmitoyl protein thioesterase 1 (PPT1) & INCL\tnote{*}, LINCL, JNCL, ANCL \\
& CLN2 & Tripeptidyl peptidase 1 (TPP1) & LINCL, JNCL \\\hline
Non-enzyme deficiencies & CLN3 & Transmembrane protein & JNCL\tnote{*} \\
& CLN5 & Soluble; lysosomal & LINCL, JNCL, ANCL \\
& CLN6 & Transmembrane protein; ER & LINCL, ANCL Kuf's Type A \\
& CLN7 (MSFD8) & Transmembrane protein; Endolysosomal transporter & LINCL \\
& CLN8 & Transmembrane protein; ER & LINCL \\
\hline
\end{tabu}
\begin{tablenotes}
\item[*] indicates main form of NCL associated with the gene
\end{tablenotes}
\caption{Classification of NCLs by CLN gene affected}
\label{table1}
\end{ThreePartTable}
\end{table}
\end{document}
*据我所知,你不能使用\multirow
,tabu
但如果我的答案接近你想要实现的目标,那似乎不是一个限制。
**\strut
需要在包含确定行高的单元格的列中插入 A,以防止间距不正确。
答案3
由于表格仅包含四列,而四列中的三列似乎需要自动换行,以防止表格变得太宽,因此不清楚您通过指定表格来实现什么目的八列:
\begin{tabular}{|c p{3cm}|c p{2cm}|c p{5cm}|c p{2cm}|}
这四种c
类型的列只会带来麻烦。忽略它们,事情就会开始步入正轨。
为了取得进一步进展,我建议您切换到环境tabularx
,将表格的目标宽度设置为\textwidth
,并将修改后的X
列类型版本应用于第 2、3 和 4 列。我还会省略包装\multicolumn
器。或者,删除垂直规则 - 相信我,它们不会被遗漏 - 并使用包的宏booktabs
来获得间距良好的水平规则。
\documentclass{article}
\usepackage{tabularx,ragged2e,booktabs,amsmath}
\newcolumntype{L}[1]{>{\RaggedRight}p{#1}}
\newcolumntype{Z}{>{\RaggedRight}X}
\usepackage[flushleft]{threeparttable}
\hyphenation{endo-lyso-somal pep-tid-ase thio-ester-ase}
\newcommand\mytab[1]{\smash[b]{%
\begin{tabular}[t]{@{}p{\hsize}@{}} #1 \end{tabular}}}
\begin{document}
\begin{table}
\setlength\extrarowheight{2pt}
\setlength\tabcolsep{4pt}
\begin{threeparttable}
\begin{tabularx}{\textwidth}{@{} L{2.25cm} l Z Z @{}}
\toprule
& Gene & Protein & Disease \\
\midrule
\mytab{Soluble lysosomal enzyme deficiencies} & CLN10 (CTSD) & Cathepsin D & Congenital\tnote{*}, LINCL, JNCL, ANCL \\
& CLN1 & Palmitoyl protein thioesterase 1 (PPT1) & INCL\tnote{*}, LINCL, JNCL, ANCL \\
& CLN2 & Tripeptidyl peptidase 1 (TPP1) & LINCL, JNCL \\
\addlinespace
Non-enzyme deficiencies & CLN3 & Transmembrane protein & JNCL\tnote{*} \\
& CLN5 & Soluble; lysosomal & LINCL, JNCL, ANCL \\
& CLN6 & Transmembrane protein; ER & LINCL, ANCL Kuf's Type A \\
& CLN7 (MSFD8) & Transmembrane protein; Endolysosomal transporter & LINCL \\
& CLN8 & Transmembrane protein; ER & LINCL \\
\bottomrule
\end{tabularx}
\smallskip
\begin{tablenotes}
\small
\item[*]indicates main form of NCL associated with the gene
\end{tablenotes}
\caption{Classification of NCLs by CLN gene affected \cite{haltia} }
\label{table1}
\end{threeparttable}
\end{table}
\end{document}