在预加载的表格(文本文件)中添加颜色和线条

在预加载的表格(文本文件)中添加颜色和线条

如果这个问题已经被问过了,我提前道歉。我尝试了无数种组合,但都无济于事。我有一个大约 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}

希望能帮助到你 :)

编辑:添加了水平线。

相关内容