我想创建一个表www.overleaf.com 带有编译器 pdfLaTeX TeX Live 版本 2022。
这是代码。
\documentclass[journal]{IEEEtran}
\begin{document}
\begin{table}[h]
\captionof{table}{Table of $q$ and $z$}
\label{tab:table_q_and_z}
\noindent
\begin{tabularx}{\columnwidth} { | c | c | >{\raggedright\arraybackslash}X |}
\hline
\textbf{Steps} & \textbf{$q_i$} & \textbf{Definition of $z_i$} \\
\hline
\multirow{$i \leq (n-1)$} & $q_i$ = 0 & $z_i$ = number of \emph{emptied} chambers at the \emph{cleaning} place $i \leq (n-1)$ \\
\cline{2-3}
& \centering $q_i$ = 1 & $z_i$ = number of \emph{loaded} chambers at the \emph{processing} place $i \leq (n-1)$ \\
\hline
$i=n$ & $q_{n}$ = 0 & $z_n$ = number of \emph{loaded} chambers at the \emph{processing} place $n$ \\
\cline{2-3}
& $q_{n}$ = 1 & $z_{n}$ = number of \emph{emptied} chambers at the \emph{cleaning} place $n$ \\
\hline
\end{tabularx}
\end{table}
\end{document}
出现错误:“未定义的控制序列”,如下所示。
但是表格打印效果如下。
有人能告诉我代码需要修改什么吗?
谢谢。
答案1
有几个问题。
首先,宏\captionof
是在caption
包中定义的,但这个包没有在序言中加载。由于该caption
包与文档类不完全兼容IEEEtran
,所以最好不要加载它。补救措施?只需替换
\captionof{table}{Table of $q$ and $z$}
和
\caption{Table of $q$ and $z$}
其次,您没有加载tabularx
和multirow
包,它们分别定义tabularx
环境和\multirow
宏,它们也出现在您的测试文档中。
第三,你使用不\multirow
正确。它需要 3 个参数,而不是一个。
修复这些问题并执行更多清理工作(例如删除杂散\centering
指令、删除不必要的\noindent
指令以及在标题行中更改为\textbf{$q_i$}
)$\bm{q}_i$
将产生以下输出。
最后不是错误本身,但有一个相当突出的风格问题:IEEEtran
文档类使用 Times Roman 作为主要文本字体系列,但使用 Computer Modern 作为主要数学字体系列。从美学上讲,Times Roman 和 Computer Modern 的融合并不特别好。您可能需要考虑运行
\usepackage{newtxtext,newtxmath}
在序言中采用互相兼容的 Times Roman 文本和数学字体系列。
\documentclass[journal]{IEEEtran}
\usepackage{tabularx,multirow,bm}
\renewcommand\tabularxcolumn[1]{m{#1}}
\begin{document}
\begin{table}[h]
\caption{Table of $q$ and $z$}
\label{tab:table_q_and_z}
% \noindent % <-- has no effect
\begin{tabularx}{\columnwidth} { | c | c | >{\raggedright\arraybackslash}X |}
\hline
\textbf{Steps} & $\bm{q}_i$ & \textbf{Definition of $\bm{z}_i$} \\
\hline
\multirow{3}{*}{$i \leq (n-1)$}
& $q_i$ = 0
& $z_i$ = number of \emph{emptied} chambers at the \emph{cleaning} place $i \leq (n-1)$ \\
\cline{2-3}
& $q_i$ = 1
& $z_i$ = number of \emph{loaded} chambers at the \emph{processing} place $i \leq (n-1)$ \\
\hline
\multirow{3}{*}{$i=n$}
& $q_{n}$ = 0
& $z_n$ = number of \emph{loaded} chambers at the \emph{processing} place $n$ \\
\cline{2-3}
& $q_{n}$ = 1
& $z_{n}$ = number of \emph{emptied} chambers at the \emph{cleaning} place $n$ \\
\hline
\end{tabularx}
\end{table}
\end{document}
答案2
使用tabularray
包后表代码简单而简短:
\documentclass[journal]{IEEEtran}
\usepackage{tabularray}
\usepackage{bm}
\begin{document}
\begin{table}[ht]
\caption{Table of $q$ and $z$}
\label{tab:table_q_and_z}
\begin{tblr}{hlines, vlines,
colspec = { *{2}{Q[c, mode=math]} X[j, m, cmd=\hangindent 1.5em\hangafter 1]},
cell{even[2]}{1} = {r=2}{},
row{1} = {font=\bfseries, mode=text}
}
Step & $\bm{q}_i$ & Definition of $\bm{z}_i$ \\
i \leq (n-1) & q_i = 0 & $z_i$: number of \emph{emptied} chambers at the \emph{cleaning} place $i \leq (n-1)$ \\
& q_i = 1 & $z_i$: number of \emph{loaded} chambers at the \emph{processing} place $i \leq (n-1)$ \\
i=n & q_{n} = 0 & $z_n$: number of \emph{loaded} chambers at the \emph{processing} place $n$ \\
& q_{n} = 1 & $z_n$: number of \emph{emptied} chambers at the \emph{cleaning} place $n$ \\
\end{tblr}
\end{table}
\end{document}
或不带cmd=\hangindent 1.5em\hangafter 1
第三列规格选项: