如何消除LaTeX表格中第一行与第二行的垂直间距?
问题原因与解决办法
你遇到的A.和B.之间的间距问题,主要是两个原因:
- 加载的
cellspace包会自动给表格单元格上下添加默认垂直间距,导致行与行之间出现额外空隙。 - 列定义里误用了
\center命令(这是环境,不能在列格式里使用),正确命令应为\centering。
下面给你几种解决方式:
方式一:移除cellspace包(若不需要它的功能)
直接删掉代码里的cellspace,同时修正列格式的错误命令:
\documentclass[a4paper, 11pt]{article} \usepackage[spanish]{babel} \usepackage[utf8x]{inputenc} \usepackage{comment} \usepackage{booktabs} \usepackage{float} \usepackage[table, svgnames, dvipsnames]{xcolor} \usepackage{makecell, caption} % 移除cellspace \usepackage{array} \usepackage[lmargin=2.0cm, rmargin=1.0cm,tmargin=1.5cm,bmargin=2.50cm]{geometry} \begin{document} \begin{table}[H] \centering \caption{Calendario de Actividades} % 修正列格式:将\center替换为\centering\arraybackslash \begin{tabular}{| >{\centering\arraybackslash}m{2cm}| >{\raggedright\arraybackslash}m{14cm}|} Mes & \makecell{Actividades} \\\midrule May & A. \\ & B.\\ & C. \\ & D. \\ June & A. \\ & B.\\ & C. \\ & D. \\ \bottomrule \end{tabular} \end{table} \end{document}
方式二:保留cellspace但取消默认间距
如果需要使用cellspace的其他功能,添加命令关闭它的自动间距:
\documentclass[a4paper, 11pt]{article} \usepackage[spanish]{babel} \usepackage[utf8x]{inputenc} \usepackage{comment} \usepackage{booktabs} \usepackage{float} \usepackage[table, svgnames, dvipsnames]{xcolor} \usepackage{makecell, cellspace, caption} \usepackage{array} \usepackage[lmargin=2.0cm, rmargin=1.0cm,tmargin=1.5cm,bmargin=2.50cm]{geometry} % 取消cellspace的默认垂直间距 \cellspacetoplimit=0pt \cellspacebottomlimit=0pt \begin{document} \begin{table}[H] \centering \caption{Calendario de Actividades} \begin{tabular}{| >{\centering\arraybackslash}m{2cm}| >{\raggedright\arraybackslash}m{14cm}|} Mes & \makecell{Actividades} \\\midrule May & A. \\ & B.\\ & C. \\ & D. \\ June & A. \\ & B.\\ & C. \\ & D. \\ \bottomrule \end{tabular} \end{table} \end{document}
方式三:用multirow优化排版(更规范的做法)
同一月份的多行内容,建议用multirow合并第一列单元格,避免第一列出现空行,排版更整齐:
\documentclass[a4paper, 11pt]{article} \usepackage[spanish]{babel} \usepackage[utf8x]{inputenc} \usepackage{comment} \usepackage{booktabs} \usepackage{float} \usepackage[table, svgnames, dvipsnames]{xcolor} \usepackage{makecell, caption} \usepackage{array} \usepackage{multirow} % 加载multirow包 \usepackage[lmargin=2.0cm, rmargin=1.0cm,tmargin=1.5cm,bmargin=2.50cm]{geometry} \begin{document} \begin{table}[H] \centering \caption{Calendario de Actividades} \begin{tabular}{| >{\centering\arraybackslash}m{2cm}| >{\raggedright\arraybackslash}m{14cm}|} Mes & \makecell{Actividades} \\\midrule % 用multirow合并4行单元格 \multirow{4}{*}{May} & A. \\ & B.\\ & C. \\ & D. \\ \multirow{4}{*}{June} & A. \\ & B.\\ & C. \\ & D. \\ \bottomrule \end{tabular} \end{table} \end{document}
内容的提问来源于stack exchange,提问作者Eric Sánchez
相关产品推荐
相关产品推荐

