有关此示例的详细信息

有关此示例的详细信息

我如何创建像这样的表格: 在此处输入图片描述

答案1

一般来说,我们不是文档创建服务。为了获得最佳解决方案,您最好向我们展示您能做什么。此外,通常不是仅需一种方式即可创建特定外观:即使是一张桌子也可以通过多种方式创建。

不管怎样,也许您甚至不知道如何开始。所以,我将在这里为您提供一些基本工具来帮助您前进。但是,这不是一个“解决方案”,而是一个起点。使用我在此处提供的详细信息,您将拥有创建所需表格所需的工具。

使用环境创建表tabular

环境tabular是开始创建表(如您与我们分享的表)的好地方。基本语法如下:

\begin{tabular}{<column_configuration_identifiers>}
  .... column content where individual columns are
       separated by `&` and each row ends with `\\`
\end{tabular}

以下示例说明了其中一些细节

在此处输入图片描述

它是用以下代码创建的:

\documentclass{article}
\usepackage[margin=1in]{geometry}

\begin{document}

\begin{tabular}{|l|c|r|}\hline
  Header 1 & Header 2 & Header 3 \\\hline
  \parbox[t]{2in}{%%
  ARMA virumque cano, Troiae qui primus ab oris
  Italiam, fato profugus, Laviniaque venit
  litora, multum ille et terris iactatus et alto
  vi superum saevae memorem Iunonis ob iram;
  multa quoque et bello passus, dum conderet urbem,
  inferretque deos Latio, genus unde Latinum,
  Albanique patres, atque altae moenia Romae.}
  &
  \parbox[t]{2in}{%%
    Musa, mihi causas memora, quo numine laeso,
    quidve dolens, regina deum tot volvere casus
    insignem pietate virum, tot adire labores
    impulerit.  Tantaene animis caelestibus irae?}
  & 
  \parbox[t]{2in}{\centering
    Urbs antiqua fuit, Tyrii tenuere coloni,
    Karthago, Italiam contra Tiberinaque longe
    ostia, dives opum studiisque asperrima belli;
    quam Iuno fertur terris magis omnibus unam
    posthabita coluisse Samo; hic illius arma,
    hic currus fuit; hoc regnum dea gentibus esse,
    si qua fata sinant, iam tum tenditque fovetque.
  }
  \\\hline  
\end{tabular}

\end{document}

当然,它并不完全是您想要的外观,但它确实向您展示了您可以做什么。

有关此示例的详细信息

有多种列样式标识符:

  • l将给定列中每个单元格的内容左对齐。
  • c将列中的所有条目居中
  • r将列中每个单元格的内容右对齐。
  • |表示应在列之间画一条垂直线

还有一些其他的风格,但我将在下面暂时不提。

您的表格内容似乎在每一列中都有“段落”信息。处理此问题的一种方法是使用\parbox。它的基本语法是

\parbox[<optional_alignment_identifier>]{<width>}{<content>}

在标题\parbox指定的对齐方式中tabular被忽略。

有一个列标识符p,指示列中的每个单元格将被格式化为段落。语法是

p{<width>}

可以使用以下代码创建上述表格:

\begin{tabular}{|p{2in}|p{2in}|p{2in}|}\hline
  Header 1 & \hspace{\fill} Header 2 \hspace{\fill} & \hspace{\fill} Header 3 \\\hline
    ARMA virumque cano, Troiae qui primus ab oris
    Italiam, fato profugus, Laviniaque venit
    litora, multum ille et terris iactatus et alto
    vi superum saevae memorem Iunonis ob iram;
    multa quoque et bello passus, dum conderet urbem,
    inferretque deos Latio, genus unde Latinum,
    Albanique patres, atque altae moenia Romae.
  &
    Musa, mihi causas memora, quo numine laeso,
    quidve dolens, regina deum tot volvere casus
    insignem pietate virum, tot adire labores
    impulerit.  Tantaene animis caelestibus irae?
  & 
    Urbs antiqua fuit, Tyrii tenuere coloni,
    Karthago, Italiam contra Tiberinaque longe
    ostia, dives opum studiisque asperrima belli;
    quam Iuno fertur terris magis omnibus unam
    posthabita coluisse Samo; hic illius arma,
    hic currus fuit; hoc regnum dea gentibus esse,
    si qua fata sinant, iam tum tenditque fovetque.
  \\\hline  
\end{tabular}

创建列表

阅读列表环境非常值得。我会举例说明enumitem

在序言中,你可以调用该包

\usepackage{enumitem}

然后您可以创建一个新的列表,如下所示:

\newlist{mylist}{itemize}{4}
\setlist[mylist]{%%
  label=$\diamond$,
  topsep=0pt,
  itemsep=0pt,
  parsep=0pt, 
  labelwidth=*,
  leftmargin=8pt,
  labelindent=6pt,
 }

使用这个我可以创建如下列表:

hic currus fuit; hoc regnum dea gentibus esse,
si qua fata sinant, iam tum tenditque fovetque.
\begin{mylist}
  \item Hello
  \begin{mylist}
    \item apple
    \item banana
    \item carp
  \end{mylist}
  \item world
\end{mylist}

这将创建:

在此处输入图片描述

怎么办?

现在,您已拥有创建所需表格所需的所有工具。看看您能将哪些东西组合在一起。

如果仍然陷入困境该怎么办

发布新问题并向我们展示您能解决的问题。我们很乐意为您提供帮助。

答案2

在这样的表格中输入内容可能会很无聊,因此定义一个方便的语法会更有趣。

标题作为 的参数给出\begin{columntabular}。接下来输入每一列,每一项都以 为前缀,\lv[<number>]表示缩进级别。

在列的末尾\nextcolumn应该插入命令。

\documentclass{article}
\usepackage{xparse,environ}

\ExplSyntaxOn

\NewEnviron{columntabular}[1]
 {% #1 is the list of headers
  \egreg_coltab:nV { #1 } \BODY
 }

\NewDocumentCommand{\lv}{O{0}}
 {
  \bool_if:NTF \l_egreg_coltab_start_bool
   { \bool_set_false:N \l_egreg_coltab_start_bool }
   { \\ \hspace*{#1em} }
  \ignorespaces
 }

\bool_new:N \l_egreg_coltab_start_bool
\seq_new:N \l_egreg_coltab_header_seq
\seq_new:N \l_egreg_coltab_columns_seq
\seq_new:N \l_egreg_coltab_body_seq

\cs_new_protected:Nn \egreg_coltab:nn
 {
  \cs_set_eq:NN \par \scan_stop:
  % gather the header
  \seq_set_split:Nnn \l_egreg_coltab_header_seq { & } { #1 }
  % gather the body
  \seq_set_split:Nnn \l_egreg_coltab_columns_seq { \nextcolumn } { #2 }
  % massage the body
  \seq_clear:N \l_egreg_coltab_body_seq
  \seq_map_inline:Nn \l_egreg_coltab_columns_seq
   {
    \seq_put_right:Nn \l_egreg_coltab_body_seq
     {
      \begin{tabular}[t]{@{}l@{}}
      \bool_set_true:N \l_egreg_coltab_start_bool
      ##1
      \end{tabular}
     }
   }
  % produce the table
  \begin{tabular}{| *{\seq_count:N \l_egreg_coltab_header_seq}{l|}}
  \hline
  \seq_use:Nn \l_egreg_coltab_header_seq { & } \\
  \hline
  \seq_use:Nn \l_egreg_coltab_body_seq { & } \\
  \hline
  \end{tabular}
 }
\cs_generate_variant:Nn \egreg_coltab:nn { nV }

\ExplSyntaxOff

\begin{document}

\begin{columntabular}{Representation & Evaluation & Optimization}
\lv[0] Instances
\lv[1] $K$-nearest neighbor
\lv[1] Support vector machines
\lv[0] Hyperplanes
\lv[1] Naive Bayes
\lv[1] Logistic regression
\nextcolumn
\lv[0] Accuracy/Error rate
\lv[0] Precision and recall
\lv[0] Squared error
\nextcolumn
\lv[0] Continuous optimization
\lv[1] Unconstrained
\lv[2] Gradient descent
\lv[2] Conjugate gradient
\lv[1] Constrained
\lv[2] Linear programming
\end{columntabular}

\end{document}

在此处输入图片描述

相关内容