LaTeX表格Ref列使用enumerate自动编号排版异常问题求助
问题原因
- 你将浮动体
table环境嵌套在了enumerate列表环境内部,列表环境默认会给内部内容添加左侧缩进,这就是你实际输出表格整体位置异常的核心原因 \item直接写在tabular的单元格中,无法正常继承列表的编号格式,也不会正确在单元格内渲染出你需要的方括号编号样式
解决方法
我们可以自定义一个LaTeX计数器来实现Ref列的自动枚举,不需要嵌套enumerate环境,修改后的完整可运行代码如下:
\documentclass{article} \usepackage[utf8]{inputenc} \usepackage[english]{babel} \usepackage[table]{xcolor} \usepackage{supertabular} \usepackage{multicol} \usepackage{multirow} \usepackage{hyperref} \usepackage{cleveref} \begin{document} % 自定义计数器实现自动编号 \newcounter{docref} % 定义编号格式为[1]、[2]的样式 \renewcommand{\thedocref}{[\arabic{docref}]} \begin{table} \centering % 让表格居中显示 \small \caption{\textbf{\small{External Documents}}} \begin{tabular}{| p{0.04\linewidth} | p{0.25\linewidth} | p{0.33\linewidth} | p{0.075\linewidth} | p{0.15\linewidth} | p{0.13\linewidth} |} \hline \rowcolor[HTML]{EFEFEF} \textbf{Ref.} & \multicolumn{2}{p{0.6\linewidth}|}{\textbf{Document Title}} & \textbf{Rev.} & \textbf{Date } & \textbf{Author} \\ \hline % 每一行调用refstepcounter让计数器自增,同时输出编号,支持\label交叉引用 \refstepcounter{docref}\thedocref \label{itm:one} & \multirow{5}{1\linewidth}{Bla} & Bla & \multirow{5}{1\linewidth}{Bla} & \multirow{5}{1\linewidth}{Bla} & \multirow{5}{1\linewidth}{Bla} \\ \cline{1-1} \cline{3-3} \refstepcounter{docref}\thedocref \label{itm:two} & & Bla & & & \\ \cline{1-1} \cline{3-3} \refstepcounter{docref}\thedocref \label{itm:three} & & Bla & & & \\ \cline{1-1} \cline{3-3} \refstepcounter{docref}\thedocref \label{itm:four} & & Bla & & & \\ \cline{1-1} \cline{3-3} \refstepcounter{docref}\thedocref \label{itm:five} & & Bla & & & \\ \hline \refstepcounter{docref}\thedocref \label{itm:six} & \multirow{2}{1\linewidth}{Bla} & Bla & Bla & NA & \multirow{3}{1\linewidth}{Bla} \\ \cline{1-1} \cline{3-5} \refstepcounter{docref}\thedocref \label{itm:seven} & & Bla & bla & Bla & \\ \cline{1-5} \refstepcounter{docref}\thedocref \label{itm:eight} & Bla & Bla & Bla & Bla & \\ \hline \end{tabular} \end{table} % 测试交叉引用是否正常,不需要可以删除 引用第一条记录:\ref{itm:one},引用第五条记录:\ref{itm:five} \end{document}
补充说明
- 代码中将原来的Ref列宽度从
0.025\linewidth调整为0.04\linewidth,避免方括号编号太窄导致换行 - 新增的
\centering命令让表格在页面中居中,符合常规排版习惯 - 自定义计数器的方式不会影响原有
\label和\ref/\cref的交叉引用功能
内容的提问来源于stack exchange,提问作者Nour
相关产品推荐
相关产品推荐

