我试图用 制作表格,pgfplotstable
并通过 将一个 csv 文件附加到另一个 csv 文件\pgfpotstablevertcat
。现在我想用 更改数学字体unicode-math
,但随后出现错误“扫描使用时文件已结束\pgfplotslistpushback
”。我正在使用lualatex
MiKTeX 来编译文档。同样的问题xelatex
。可能是什么问题?这是一个错误还是我遗漏了某些明显的东西?这是一个产生错误的 MWE。
\documentclass{article}
\usepackage{unicode-math}
\usepackage{pgfplotstable}
\begin{filecontents}{dataA.csv}
pH, concentration
1, 1.5
2, -0.5
3, -1.5
\end{filecontents}
\begin{filecontents}{dataB.csv}
pH, concentration
4, -2.5
5, -3.5
6, -4.5
\end{filecontents}
\begin{document}
\pgfplotstableset{col sep=comma}
\pgfplotstablevertcat{\outputa}{dataA.csv} % loads `dataA.csv' -> `\outputa'
\pgfplotstablevertcat{\outputa}{dataB.csv} % appends rows of dataB.csv
\pgfplotstabletypeset[columns={pH, concentration},fixed zerofill]{\outputa};
\end{document}
答案1
\to
被定义,从而破坏了此处使用的 pgf 循环构造。您可以在本地使其再次安全。
\RequirePackage{luatex85}
\documentclass{article}
\usepackage{unicode-math}
\usepackage{pgfplotstable}
\begin{filecontents}{dataA.csv}
pH, concentration
1, 1.5
2, -0.5
3, -1.5
\end{filecontents}
\begin{filecontents}{dataB.csv}
pH, concentration
4, -2.5
5, -3.5
6, -4.5
\end{filecontents}
\begin{document}
$a$
\tracingmacros1
{\let\to\relax
\pgfplotstableset{col sep=comma}
\pgfplotstablevertcat{\outputa}{dataA.csv} % loads `dataA.csv' -> `\output'
\pgfplotstablevertcat{\outputa}{dataB.csv} % appends rows of dataB.csv
\pgfplotstabletypeset[columns={pH, concentration},fixed zerofill]{\outputa};
}
\end{document}
或者一个全局但安全的定义,例如
\RequirePackage{luatex85}
\documentclass{article}
\usepackage{unicode-math}
\protected\def\to{\rightarrow}
\usepackage{pgfplotstable}
\begin{filecontents}{dataA.csv}
pH, concentration
1, 1.5
2, -0.5
3, -1.5
\end{filecontents}
\begin{filecontents}{dataB.csv}
pH, concentration
4, -2.5
5, -3.5
6, -4.5
\end{filecontents}
\begin{document}
$a$
\pgfplotstableset{col sep=comma}
\pgfplotstablevertcat{\outputa}{dataA.csv} % loads `dataA.csv' -> `\output'
\pgfplotstablevertcat{\outputa}{dataB.csv} % appends rows of dataB.csv
\pgfplotstabletypeset[columns={pH, concentration},fixed zerofill]{\outputa};
\end{document}