我的项目
文件树
- section
- mysection.tex
- tools
- mystandalone_data.csv
- mystandalone.tex
main.tex
平均能量损失
main.tex
\documentclass{article}
\usepackage[mode=buildmissing]{standalone}
\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotsset{width=7cm,compat=1.18}
\usepackage{currfile}
\begin{document}
\input{sections/mysection}
\end{document}
mysection.tex
\documentclass{article}
\usepackage[mode=buildmissing]{standalone}
\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotsset{width=7cm,compat=1.18}
\usepackage{currfile}
\begin{document}
\begin{figure}
\centering
\includestandalone{tools/mystandalone}
\end{figure}
\end{document}
mystandalone.tex
\documentclass{standalone}
\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotsset{width=7cm,compat=1.18}
\usepackage{currfile}
\edef\CurrentFileDir{\currfiledir}%
\pgfplotstableread[col sep = semicolon,header=true]{\CurrentFileDir mystandalone_data.csv}\mydata
\begin{document}
\begin{tikzpicture}
\begin{axis}[table/col sep=semicolon]
\addplot table [x=Oui,y expr=\coordindex]{\mydata};
\end{axis}
\end{tikzpicture}
\end{document}
mystandalone_data.csv
Oui;Non
45;45
21;23
23;45
24;48
30;45
40;48
我的问题
当我编译时:
- 从
mystandalone.tex
,它起作用了 - 从
main.tex
,它起作用了 - 从
mysection.tex
它抛出以下错误
Package standalone Warning: Graphic 'tools/mystandalone.pdf' could not be build.
Shell escape activated? on input line 12.
(/compile/tools/mystandalone.tex
! Undefined control sequence.
\pgfplotstableread@filename ->\mydata
l.15 ...table [x=Oui,y expr=\coordindex]{\mydata};
我尝试过的方法
目前,我已经尝试过:
- 扩大
currfiledir
\edef\CurrentFileDir{\currfiledir}
- 使用/扩展
currfileabsdir
。
这些解决方案均不起作用。
答案1
该standalone
包重新定义了\documentclass
宏,以便\begin{document}
忽略子文件之前的所有内容。
\mydata
宏的定义
\pgfplotstableread[col sep = semicolon,header=true]{\CurrentFileDir mystandalone_data.csv}\mydata
从 以外的其他文件编译时不会被读取mystandalone.tex
。将其移到\begin{document}
和之间\end{document}
。
\documentclass{standalone}
\usepackage{tikz,pgfplots,pgfplotstable}
\pgfplotsset{width=7cm,compat=1.18}
\usepackage{currfile}
\begin{document}
\pgfplotstableread[col sep = semicolon,header=true]{\currfiledir mystandalone_data.csv}\mydata
\begin{tikzpicture}
\begin{axis}[table/col sep=semicolon]
\addplot table [x=Oui,y expr=\coordindex]{\mydata};
\end{axis}
\end{tikzpicture}
\end{document}