![使用导入的带有 pgf 和数据子文件夹的大型文档多文件结构](https://linux22.com/image/412040/%E4%BD%BF%E7%94%A8%E5%AF%BC%E5%85%A5%E7%9A%84%E5%B8%A6%E6%9C%89%20pgf%20%E5%92%8C%E6%95%B0%E6%8D%AE%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E7%9A%84%E5%A4%A7%E5%9E%8B%E6%96%87%E6%A1%A3%E5%A4%9A%E6%96%87%E4%BB%B6%E7%BB%93%E6%9E%84.png)
我的项目文件结构是:
C:\USERS\NAME\MULTIFILE_MWE
│ main.tex
│
├───pgf
│ data.csv
│ pgftikz_fig.tex
│
└───sections
section_import.tex
我的要求是:
main.tex
文件汇集了许多部分。- 每个部分独立编译并调用存储在中的 pgf 代码
./pgf/
。 - 每个 pgf 文件独立编译并读取
.csv
。
我可以pgftikz_fig.tex
独立编译,我可以section_import.tex
独立编译。我无法编译main.tex
。
数据
data.csv
a,b,c,d
1,4,5,1
2,3,1,5
3,5,6,1
4,1,4,9
5,3,4,7
PGF 绘图文件
% pgftikz_fig.tex
\documentclass[crop=false]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table [x=a, y=c, col sep=comma] {./pgf/data.csv};
\end{axis}
\end{tikzpicture}
\end{document}
主文件
% main.tex
\documentclass{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\begin{document}
\import{sections/}{section_import}
\end{document}
节文件
% section_import.tex
\documentclass[crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\begin{document}
\subimport{./pgf/}{pgftikz_fig.tex}
\end{document}
答案1
使用 \subimport 的解决方案
在main.tex
文件中我\subimport
不应该使用\import
% main.tex
\documentclass{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\begin{document}
\subimport{sections/}{section_import}
\end{document}
在section_import.tex
文件中我应该使用正确的文件指针../
而不是./
% section_import.tex
\documentclass[crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\begin{document}
\subimport{../pgf/}{pgftikz_fig}
\end{document}
使用 \input 的解决方案
main.tex
section_import.tex
如果使用\input
而不是,则会编译\subimport
:
\documentclass[crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\begin{document}
\input{./pgf/pgftikz_fig.tex}
\end{document}
但是我更喜欢使用import
包,因为我的完整项目比我提供的最小示例更复杂。在完整项目中,我引用了图表,并且在每个部分中都有引文。input
在这方面,它的功能不如 强大import
。