在 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
。