可能有更好的方法可以做到这一点,但这是我的 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 中完成此操作,我很乐意听取建议。但我最终希望每个公司在其文件夹中都有多个文档。