使用 LaTeX 创建复杂表格

使用 LaTeX 创建复杂表格

我对 LaTeX 还很陌生,我正在尝试创建一个表格。表格应该如下所示:

Enter image description here

我创建了这个代码:

\begin{table}[h!]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{lll}
Path       & \multicolumn{2}{l}{Alice}  \\
Type       & \multicolumn{2}{l}{Client} \\
Parameters &              &
\end{tabular}
\end{table}

但我不知道如何添加参数。它也没有显示表格线。我该怎么办?

答案1

Dan 的回答非常好,教你如何从头开始构建这样的表格。但是,如果你有多个遵循相同模式的表格,最好为它们使用更高级别的语法。

\documentclass{article}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand{\parametertable}{mmm}
 {
  \seq_set_split:Nnn \l_ella_parametertable_parameters_seq { \\ } { #3 }
  \begin{tabular}{|l|p{1in}|p{1in}|}
  \hline
  Name & \multicolumn{2}{l|}{#1} \\
  \hline
  Type & \multicolumn{2}{l|}{#2} \\
  \hline
  Parameters & 
  \seq_use:Nn \l_ella_parametertable_parameters_seq { \\ \cline{2-3} & }
  \\
  \hline
  \end{tabular}
 }
\ExplSyntaxOff

\begin{document}

\parametertable{Alice}{Client}{
  Param1 & Value \\
  Param2 & Value \\
  Param3 & Value
}

\end{document}

enter image description here

当你决定这些规则毕竟很烦人,并且想要切换到时,这种方法的优势就会显现出来。booktabs只需修改主命令的一些细节,全部您的类似表格将会改变格式。

\documentclass{article}
\usepackage{xparse}
\usepackage{booktabs}

\ExplSyntaxOn
\NewDocumentCommand{\parametertable}{mmm}
 {
  \seq_set_split:Nnn \l_ella_parametertable_parameters_seq { \\ } { #3 }
  \begin{tabular}{lp{1in}p{1in}}
  \toprule
  Name & \multicolumn{2}{l}{#1} \\
  \midrule
  Type & \multicolumn{2}{l}{#2} \\
  \midrule
  Parameters & 
  \seq_use:Nn \l_ella_parametertable_parameters_seq { \\ & }
  \\
  \bottomrule
  \end{tabular}
 }
\ExplSyntaxOff

\begin{document}

\parametertable{Alice}{Client}{
  Param1 & Value \\
  Param2 & Value \\
  Param3 & Value
}

\end{document}

请注意,文档代码没有发生任何改变。

enter image description here

答案2

使用\cline你可以做类似这样的事情......

代码:

\documentclass{amsart}
\begin{document}
\begin{tabular}{|p{1in}|p{1in}|p{1in}|}
\hline
Name&\multicolumn{2}{|c|}{Alice}\\\hline
Type&\multicolumn{2}{|c|}{Client}\\\hline
Parameters&Param1&Value\\\cline{2-3}
&Param2&Value\\\cline{2-3}
&Param3&Value\\\hline
\end{tabular}
\end{document}

产量:

enter image description here

答案3

除了丹的精彩回答之外,还有一种完全不同的替代方案。

有一些网站可以让你以所见即所得的方式在线创建 Latex 表格,例如http://www.tablesgenerator.com/。它们是您在学习的同时完成任务的好方法,同时您可以检查他们生成的代码并学习如何自己做。

就您而言,您可以用最小的努力来产生以下结果。

enter image description here

\begin{table}[]
\centering
\caption{My caption}
\label{my-label}
\begin{tabular}{|l|l|l|}
\hline
Name       & \multicolumn{2}{l|}{Alice}  \\ \hline
Type       & \multicolumn{2}{l|}{Client} \\ \hline
Parameters & Param1        & Value       \\ \cline{2-3} 
           & Param2        & Value       \\ \cline{2-3} 
           & Param2        & Value       \\ \hline
\end{tabular}
\end{table}

答案4

我的另一个例子。 enter image description here

\documentclass[a4paper,12pt]{article}
\usepackage{multirow}
\newcommand{\mc}[2]{\multicolumn{#1}{c}{#2}}

\begin{document}

\begin{table}[]
\centering
\caption{My table}
\begin{tabular}{|l|l|l|l|l|}
\hline
Name & \mc{1}{Alice}  &\\ \hline
Type & \mc{1}{Client} &\\ \hline
\multirow{3}{*}{Parameters} & Param1 & Value \\ \cline{2-3} 
 & Param2 & Value \\ \cline{2-3} 
 & Param3 & Value \\ \hline
\end{tabular}
\end{table}



\end{document}

相关内容