使用多列和多行表命令很困难

使用多列和多行表命令很困难

我正在尝试在 LaTeX 中实现下表(见图)。由于它包含多列和多行表命令,因此我在编写代码时遇到了困难。如果你们能帮助我,我将不胜感激:

尝试接近这一点:

这是使用多列和多行的代码的初始部分,我不明白我哪里错了:

\begin{table}[tp]
\toprule
\renewcommand{\arraystretch}{1.3}
\setlength{\arrayrulewidth}{0.15mm}
\setlength{\doublerulesep}{0.12mm}
\caption{VSI Parameters}  
\label{tab:2}
\centering
\begin{tabular}{t|t|t|t}
\hline
\hline
\multicolumn{2}{*}{\textbf{VSI Controller}  \\
                       \textbf{Parameters} \\
&  \textbf{Minimum}  &  \textbf{Maximum}   \\
&    \textbf{Value}  &   \textbf{Value}    \\\otoprule
\hline
\hline
\multirow{4}{*}{Outer Control Loops} & \math{k_{p1}} & \SI{0.002}{} \\
& \math{T_{i1}} & \SI{0.0001}{} \\
& \math{k_{p2}} & \SI{0.01}{} \\
& \math{T_{i2}} & \SI{0.0001}{} \\ \hline  



\end{tabular}
\end{table}

编辑:@Bernard:我真的很喜欢你的格式;如果我选择它来制作我的所有表格,那么我的脚本中下表的修改代码是什么:

\begin{table}[tp]
\toprule
\renewcommand{\arraystretch}{1.3}
\setlength{\arrayrulewidth}{0.15mm}
\setlength{\doublerulesep}{0.12mm}
\caption{Step Changes}
\label{tab:1}
\centering
\begin{tabular}{t|t|t}
\hline
\hline
Step Change   &  Initial &  Final \\
Number        &    $\math{(W)}$  &   $\math{(W)}$ \\\otoprule
\hline
\hline
\SI{1}{}   &   \SI{0}{}  &   \SI{500}{}\\
\hline
\SI{2}{}    &   \SI{500}{}    &   \SI{250}{}\\
\hline
\SI{3}{}    &   \SI{250}{}    &   \SI{750}{}\\
\hline
\hline
\end{tabular}
\end{table} 

答案1

这是一个解决方案,使用makecell, siunitx, captionbooktabs。我删除了所有垂直规则以获得更专业的外观:

\documentclass{article}

\usepackage{makecell, caption, booktabs, multirow, siunitx}
\renewcommand\theadfont{\bfseries}
\renewcommand\cellalign{lc}
\newcommand{\otoprule}{\midrule[\heavyrulewidth]}
\usepackage{lipsum, fancyvrb}

\begin{document}

\lipsum[3]

\begin{table}[tp]

  \renewcommand{\arraystretch}{1.3}
  \caption{VSI Parameters}
  \label{tab:2}
  \centering
  \begin{tabular}{@{}p{25mm}>{$}c<{$}@{\hskip1.5em}S[table-format=1.4]S[table-format=1.1]@{}}
    \toprule
    \multicolumn{2}{@{}l}{\bfseries\makecell{VSI Controller\\ Parameters}} & {\thead{Minimum\\Value}} & {\thead{Maximum\\Value}} \\
    \otoprule
    \multirowcell{4}{Outer Control \\ Loops} & k_{p_1} & 0.002 & 5 \\
                                   & T_{i_1} & 0.0001 & 0.5 \\
                                   & k_{p_2} & 0.01 & 3 \\
                                   & T_{i_2} & 0.0001 & 0.5 \\
    \midrule
    \multirowcell{4}{Inner Control \\ Loops} & k_{p_3} & 0.1 & {\Verb+15+} \\
                                   & T_{i_3} & 0.001 & 0.5 \\
                                   & k_{p_4} & 0.1 & {\Verb+10+} \\
                                   & T_{i_4} & 0.001 & 0.5 \\
    \bottomrule
  \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

答案2

类似这样的内容?请注意,我不得不对您的代码进行大量更改,因为我不知道一半的命令是用来做什么的,也不知道在哪里可以找到它们。例如,我使用了c列类型,$...$删除了\otoprule和(这在with\toprule之外没有任何意义,而且我不知道还有什么可以定义它)等。tabularbooktabs

\documentclass[conference]{IEEEtran}
\usepackage{siunitx,array,multirow}

\begin{document}
\begin{table}[tp]
% \toprule% you can only use this within a tabular and if you load booktabs
\renewcommand{\arraystretch}{1.3}
\setlength{\arrayrulewidth}{0.15mm}
\setlength{\doublerulesep}{0.12mm}
\caption{VSI Parameters}
\label{tab:2}
\centering
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{2}{|c|}{\textbf{VSI Controller}}  &\textbf{Minimum}  &  \textbf{Maximum}   \\
\multicolumn{2}{|c|}{\textbf{Parameters}} & \textbf{Value}  &   \textbf{Value}    \\%\otoprule
\hline
\multirow{4}{*}{Outer Control Loops} & $k_{p1}$ & \SI{0.002}{} &\\
& $T_{i1}$ & \SI{0.0001}{} &\\
& $k_{p2}$ & \SI{0.01}{} &\\
& $T_{i2}$ & \SI{0.0001}{} &\\ \hline

\end{tabular}
\end{table}
\end{document}

虽然它不是一个特别专业的表格,但至少可以编译:

非专业表

但是,如果您使用指定类别提交,则无论如何您都应该遵循其表格格式指南。(如果他们有的话。)

答案3

编辑:我将其更改为您给定的文档类。

好的,为了帮助您开始准备您的表格,请参阅以下 MWE:

%\documentclass[a4paper,12pt]{article}
\documentclass[conference]{IEEEtran}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{booktabs}
\usepackage{multirow,array}
\usepackage{siunitx}


\begin{document}
Test
\begin{table}

\renewcommand{\arraystretch}{1.3}
\caption{VSI Parameters}  
\label{tab:2}
\centering
\begin{tabular}{p{4cm}ccc}
\toprule
\multicolumn{2}{c}{\textbf{VSI Controller}} &  \textbf{Minimum}  &  \textbf{Maximum}   \\
                 &                          &    \textbf{Value}  &   \textbf{Value}    \\
\midrule
\multirow{4}{*}{Outer Control Loops} % first colum for 4 rows
                 & ${k_{p1}}$               & \SI{0.002}{}       & 5 \\
                 & ${T_{i1}}$               & \SI{0.0001}{}      & 0.5\\
                 & ${k_{p2}}$               & \SI{0.01}{}        & 3\\
                 & ${T_{i2}}$               & \SI{0.0001}{}      & 5\\ 
\bottomrule
\end{tabular}
\end{table}
\end{document}

我做了一些漂亮的打印,使表格在创作时更加清晰可见。

命令\multicolumn{2}{c}{\textbf{VSI Controller}}跨越两列并使文本居中。您的代码中}缺少结尾。

命令\multirow{4}{*}{Outer Control Loops}为您案例中的 4 行定义了第一列。第二列写在通常的后面&。在接下来的几行中,让第一列为空(请研究给定的表格代码)。

如何继续取决于您的代码和使用的包。但此代码是准备表格的开始。我不喜欢表格线,所以我删除了它们以向您展示替代方案...

结果为article

在此处输入图片描述

结果为IEEEtran

在此处输入图片描述

相关内容