最近我发现,在编译某些字体集宽度pgfplotstable
生成.csv
文件时,该文件在其源(在文档前言中)编译的后续更改中不会更改。因此我需要手动将其删除。
我使用(最近的)MikTeX、WinEdt 作为编辑器,并使用 Windows 10 作为操作系统。
一个例子:
\documentclass{article}
\usepackage{pgfplotstable}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{exponent-product={\cdot},
output-decimal-marker={,},
per-mode=symbol}
\begin{filecontents*}{mytable.csv}
Chem.; Avg. Conc.; Avg. Conc. Norm.; Conc. unit; Mass sum; Mass unit;
Ammonium ; 159083.33; 114450.21; \si{\micro\gram\per\liter}; 2839.463; \si{\kilo\gram};
%Ammonium ; 159083.33; 114450.21; \si{\micro\gram\per\liter}; 2839.463; \si{\kilo\gram};
%Ammonium ; 159083.33; 114450.21; \si{\micro\gram\per\liter}; 2839.463; \si{\kilo\gram};
\end{filecontents*}
\begin{document}
Some text here \si{\micro\gram\per\liter}, \si{\kilo\gram},
\captionof{table}{Some caption text}
\pgfplotstabletypeset[%
col sep=semicolon,
read comma as period=true,
header=has colnames,
every head row/.style={
before row=\toprule,
after row=\midrule},
every last row/.style={
after row=\bottomrule},
display columns/0/.style={string type, column type=l},%
display columns/3/.style={string type, column type=l},%
display columns/5/.style={string type, column type=l},%
]{mytable.csv}\par
\end{document}
如果我取消注释行filecontents*
并再次编译上述文件,则表不会更改,直到我手动删除它。我是否需要在 WinEdt 中进行一些特殊设置才能删除旧.cvs
文件,或者这可以通过文档中的某些设置来实现?
答案1
引自filecontents
包,其中引用了ltclass.dtx
(重点是我自己)
环境 filecontents 用于将包、选项或其他文件的内容与单个文件中的文档一起传递。它有一个参数,即要创建的文件的名称。如果该文件已经存在(如果操作系统支持“当前目录”或“默认目录”的概念,则可能仅在当前目录中),则不会发生任何事情(信息消息除外),并且环境主体被绕过。否则,环境主体将逐字写入作为第一个参数给出的文件名,并附带一些关于如何生成的注释。
文档中稍微往下一点的地方,
filecontents 包提供了 filecontents 和 filecontents* 环境的破解版本,可解除上述两个限制
因此,只需加载filecontents
包即可解决您的问题:
\usepackage{filecontents}