如何让代码中的表格更易读

如何让代码中的表格更易读

在 Latex 中创建和更新表格的最佳做法是什么?我正在使用 Texmaker,但我发现很难更新表格,例如添加条目或添加列。我必须计算条目,这有点繁琐。最好先在 excel 类型的程序中创建一个表格,然后在完成后导入它吗?示例:

\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|}
\hline 
Study & Year & Method & • & • & • & • & • & o & Result num. & Result \\ 
\hline 
 • & • & autor & autor et al & autor. & autor & autor\cite{autor} & 

答案1

我总是以漂亮的打印形式编写表格,以便能够识别 LaTeX 代码中的列和行。

我的最佳实践是:

  • 我在代码的一行中写一行(如果我需要 200 个字符)
  • 我把所有内容都写&在彼此下面,这样我就可以在代码中看到表格的列。即使我必须使用宏\multirow或,我也会保留此结构\multicolumn
  • 我将一行的末尾 ( \\) 写在彼此的下方。
  • 我将表格保存在我的 TeX 文档中

一个例子:

\begin{tabular}{r@{:}l*{5}c}
\toprule
\multicolumn{1}{c}{}    &       & \multicolumn{5}{c}{Node ID}                                                          \\ 
\cmidrule{3-7}
\multicolumn{2}{c}{Date | Time} & 25             & 28             & 29             & 31              & 32              \\
\midrule
9/29/2007 00            &00     & \ding{108}     & \ding{108}     & \ding{108}     & \ding{108}      & \ding{108}      \\
9/29/2007 01            &00     & \ding{109}     & \ding{109}     & \ding{109}     & \ding{109}      & \ding{109}      \\
9/29/2007 23            &00     & \ding{108}     & \ding{108}     & \ding{109}     & \ding{108}      & \ding{109}      \\
\midrule
9/29/2007 23            &00     & \textbullet    & \textbullet    & \textbullet    & \textopenbullet & \textopenbullet \\
\midrule
9/29/2007 23            &00     & $\blacksquare$ & $\blacksquare$ & $\blacksquare$ & $\square$       & $\square$       \\
Columns: 1              & 2     & 3              & 4              & 5              & 6               & 7               \\
\bottomrule
\end{tabular}

以这种方式编写表格可以让你更好地更改行或列。稍加练习,你就会发现它很有用...

我所有的表格都是这样写的。

答案2

这是我针对多列表格编写的代码风格。

  • 将表放入单独的文件中,如下所示。它可以是不可编译的文件(不使用standalone类)或可编译的文件(使用standalone类)。优点:(1)您可以将表重复用于许多项目,(2)您的主输入文件将更紧凑,易于维护,(3)使用standalone类时,您可以将每个表转换为 PDF,然后可以从主输入文件中将其作为图像导入\includegraphics(不要忘记使用\usepackage{graphicx}),等等。
% not-compilable-table.tex
\begin{tabular}{|*{11}{c|}}
\hline 
    Study
& Year
& Method
& % 4
& % 5
& % 6
& % 7
& % 8
& % 9
& Result num. 
& Result
\\\hline %------- Row End ---------
  \LaTeX %Study
& 2012 %Year
& Brute Force %Method
& % 4
& % 5
& % 6
& % 7
& % 8
& % 9
& 99 
& Good
\\\hline %------- Row End ---------
\end{tabular}

或者

% compilable-table.tex
\documentclass[preview,border=12pt]{standalone}
\usepackage{array}

\begin{document}
\begin{tabular}{|*{11}{c|}}
\hline 
    Study
& Year
& Method
& % 4
& % 5
& % 6
& % 7
& % 8
& % 9
& Result num. 
& Result
\\\hline %------- Row End ---------
  \LaTeX %Study
& 2012 %Year
& Brute Force %Method
& % 4
& % 5
& % 6
& % 7
& % 8
& % 9
& 99 
& Good
\\\hline %------- Row End ---------
\end{tabular}
\end{document}
  • 将每个条目以 为前缀&(每行中的第一个条目除外,它不以 为前缀)排列在一行中,&以方便数据输入。至少,您不再需要水平滚动。为每个条目添加列号或列名作为注释(例如,,,,等)也将方便插入、编辑%2数据%3%Study%Year

  • 使用主输入文件导入表文件\input如下。

% main-input-file.tex
\documentclass{article}
\usepackage{standalone}
\begin{document}
\input{<table-filename>}
\end{document} 

答案3

我更喜欢将大型表格存储为 CSV 文件,并使用 pgfplotstable 对其进行打字。这里有一个关于这个包的很好的介绍,以及更简单的 csvsimple:http://texblog.org/2012/05/30/generate-latex-tables-from-csv-files-excel/

答案4

我更喜欢水平对齐单元格。我使用 ViM(Vi Improved)中的一项功能,称为表格。可以在github上找到。

https://github.com/godlygeek/tabular

在我的代码中,.vimrc我只需添加以下代码将其分配给 F8 键并使其使用 & 符号作为分隔符:

function! Tabularize( delim )
endfunction
map <F8> :call Tabularize( '/&' )

还有一个很棒的视频演示:

http://vimcasts.org/episodes/aligning-text-with-tabular-vim/


你也可以使用 Github 的 Atomwww.atom.io并安装该atom-alignment软件包。

我是这样设置的:

在此处输入图片描述

选择表格中的行并按下ctrl alt a在 Windows 或 MacOS 上执行ctrl cmd a

相关内容