如何在 unix (bash) 中从由空格分隔的文本文件创建 LATEX table

How to create a LATEX table from a textfile delimited by spaces in unix (bash)

我有一个格式为(space 分隔,每行一个条目)的文本文件:

row1 val1 val2
row2 val1 val2 

我有数组中 table 的 header 值,比如 fieldArray。

我需要创建一个类似于此的 LATEX table(在下面添加了一个屏幕截图,因为 table 显示不正确):

header 1 header 2 header 3
row1 val1 val2
row2 val1 val2
row3 val1 val2

在上面的table中,header来自数组,'row' & 'val'来自.txt文件中的行。

我需要从我的 shell 脚本中的 .txt 和 fieldArray 制作 table 并将其放入一个名为 'temp.tex' 的文件中,然后我需要使用 pdflatex 来从该 .tex 文件创建 table 的 pdf 并将其命名为 'table.pdf'(全部在一个脚本中)。

不过,在 shell 脚本中,.txt 文件并不总是相同的。 .txt 根据用户在调用脚本时输入的内容而变化。

期望table:

使用pgfplotstable

\documentclass{article}

\usepackage{pgfplotstable}

\begin{document}

\pgfplotstabletypeset[
    columns/0/.style={column name={header 1}},
    columns/1/.style={column name={header 2}},
    columns/2/.style={column name={header 3}},
    header=false,
    string type,
    before row=\hline,
    every last row/.style={after row=\hline},
    column type/.add={|}{},
    every last column/.style={column type/.add={}{|}}
]{test.txt}%


\end{document}


对于任意数量的列,将您的 header 添加到 .txt 文件中,例如

{header 1} {header 2} {header 3}
row1 val1 val2
row2 val1 val2 

pgfplotstable 为您完成工作:

\documentclass{article}

\usepackage{pgfplotstable}

\begin{document}

\pgfplotstabletypeset[
    string type,
    before row=\hline,
    every last row/.style={after row=\hline},
    column type/.add={|}{},
    every last column/.style={column type/.add={}{|}}
]{test.txt}%


\end{document}