Bash 文件使用来自不同文件夹中的 CSV 的不同变量来编译多个文档?

Bash 文件使用来自不同文件夹中的 CSV 的不同变量来编译多个文档?

可能有更好的方法可以做到这一点,但这是我的 MWE 尝试,我无法让它发挥作用。

我想从.csv如下文件中编译多封格式信件:

 company,   dept
World of Cheese Inc,    Accounting Department
Big Ham LLC,    Tax Division

这将有助于

\documentclass{letter}

\renewcommand{\department}{}
\renewcommand{\company}{}

\begin{document}
\begin{letter}

Hello,
I am writing \company{} to inquire about the \department.

\end{letter}
\end{document}

我想将主.tex文件保存在一个文件夹中,然后创建一个以 LaTeX 文档将在其中编译的每个公司命名的子文件夹(最终文件夹中将有几个要编译的文档)。

#!/bin/bash
# Name of the csv file to loop through.
INPUTFILE="mwe.csv"

while IFS=$',' read -r schl dept

echo "starting $company"
echo "for $dept"

# 1 make new directory with school name 
    mkdir -p "$company"  

cp lettermwe.tex  "$company"
cd "$company"

# 2 build document   
pdflatex -jobname=mwe_"$company"  -no-shell-escape '\def\newcommand{\company}{$company} \def\newcommand{\department{$dept} \input{lettermwe.tex}'  &

cd -
done < "$INPUTFILE"

我收到此错误:

LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

<*> \def\newcommand{\company}{company} 
\def\newcommand{\department{dept^^M}\in..

第一次提问,所以我很乐意澄清。或者不确定这是否更适合 linux/bash 堆栈。

另外,如果可以在 LaTeX 中完成此操作,我很乐意听取建议。但我最终希望每个公司在其文件夹中都有多个文档。

相关内容