如果这个问题已经被问过了,我提前道歉。我尝试了无数种组合,但都无济于事。我有一个大约 60 行 3 列的文本文件。我做的第一件事(成功了)是将它分成两列。接下来,我想在每行/列之间添加水平线和垂直线,并为每隔一行添加颜色(我知道如何用手工制作的表格来做到这一点,但这似乎超出了我目前的能力)。
使用的软件包(其中一些可能是多余的,因为我几乎已经尝试了所有软件包)是:
\documentclass{article}
\usepackage{xpatch}
\usepackage{xcolor}
\usepackage{array}
\usepackage{verbatim}
\usepackage{lipsum}
\usepacage{xcolor}
\usepackage{multicol}
\begin{document}
\rowcolors{2}{green!70!yellow!40}{green!80!yellow!50}
\begin{minipage}\textwidth
\centering
\begin{tabular}{ |m{14cm}|m{14cm}|m{14cm}| }
\begin{multicols}{2}
\VerbatimInput{textadin.txt}
\end{multicols}
\end{tabular}
\captionof{table}{Charge dependence}
\end{minipage}
\end{document}
根据评论中的建议,以下是文本文件的一小部分:
1 895 2.30329E-07
2 892 2.43065E-07
3 925 2.46525E-07
4 934 2.56787E-07
5 938 2.68926E-07
6 963 2.75502E-07
7 997 2.7988E-07
8 1021 2.87446E-07
9 1003 3.07749E-07
10 1021 3.17971E-07
11 1042 3.27689E-07
12 1102 3.25885E-07
13 1092 3.45891E-07
14 1093 3.6346E-07
15 1099 3.80185E-07
16 1129 3.89238E-07
17 1150 4.01908E-07
18 1186 4.09879E-07
19 1209 4.22892E-07
20 1239 4.34011E-07
答案1
-command\VerbatimInput
在 -package 中定义fancyvrb
。但是,它不会生成实际的 LaTeX 表,而是包含“原样”或“逐字”文本。相反,我会使用逗号分隔值 ( .csv
)。这意味着在您的文本文件中:将所有空格替换为逗号,如下面的代码所示(我还添加了标题,它将在下面的代码中被覆盖)
idx,num,rat
1,895,2.30329E-07
2,892,2.43065E-07
3,925,2.46525E-07
4,934,2.56787E-07
5,938,2.68926E-07
6,963,2.75502E-07
7,997,2.7988E-07
8,1021,2.87446E-07
9,1003,3.07749E-07
10,1021,3.17971E-07
11,1042,3.27689E-07
12,1102,3.25885E-07
13,1092,3.45891E-07
14,1093,3.6346E-07
15,1099,3.80185E-07
16,1129,3.89238E-07
17,1150,4.01908E-07
18,1186,4.09879E-07
19,1209,4.22892E-07
20,1239,4.34011E-07
现在我将使用\csvreader
来自csvsimple
包使其成为一个实际的表格,然后改变\csvifoddrow
颜色,像这样(来自的修改示例csvsimple 文档):
\documentclass{article}
\usepackage{csvsimple}
\usepackage[table]{xcolor}
\begin{document}
\csvreader[head to column names,tabular=|l|l|l|,
% Set header names
table head=\hline\rowcolor{red!50!black}\color{white}\#%First is the hash-sign (#)
& \color{white}Number%
& \color{white}Ratio,%
late after head=\\\hline\rowcolor{yellow!50},%What to do after header line
late after line=\csvifoddrow{\\\rowcolor{yellow!50}}{\\\rowcolor{red!25}}\hline]%After every line, check if odd line, and if not
{textadin.txt}{}{\csvcoli&\csvcolii&\csvcoliii}%Print col 1,2 and 3
\end{document}
希望能帮助到你 :)
编辑:添加了水平线。