mytikz.tikz
我有一张加载的独立图片test.png
。两者都位于文件夹 中pics/
。main.tex
使用 tikzscale 加载 的我的mytikz.tikz
位于父文件夹中。test.png
编译 时,加载 失败,main.tex
因为路径错误。main.tex
需要以某种方式了解pics/
路径。如何实现这一点,同时仍保持standalone
功能性?
pics/mycolors.tex
例如,如果在 中使用了常见的颜色定义,然后通过 加载,mytikz.tikz
也会出现类似的问题\input{mycolors.tex}
。
当尝试绘制文件中的数据时,问题变得更加复杂。在这种情况下,pics/
如何传达正确的路径名?main.tex
内容main.tex
:
%main.tex
\documentclass{book}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{tikzscale}
\usepackage{standalone}
\begin{document}
\begin{figure}
\includegraphics[width=\textwidth]{pics/mytikz.tikz}
\caption{includegraphics full width}
\label{fig:tikz}
\end{figure}
\end{document}
内容pics/mytikz.tikz
:
%mytikz.tikz
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{tikzscale}
%\input{mycolors.tex}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-1,xmax=1,ymin=-1,ymax=1,
]
\addplot graphics [
xmin=0,xmax=1,ymin=0,ymax=1,
] {test.png};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
手动纳入curr文件
\usepackage{currfile}
按照手册中所述,在主文件和图片文件的开头简单地添加currfile
并不能解决我的问题。
我选择在需要\currfiledir
某个文件夹中的相对路径时手动添加pics\
。这保留了独立图片的优点,也可以从主文件编译。
常见的颜色定义存在问题,可能位于父文件夹中。它们必须包含在独立图片中以及编译主文件时。我通过检查是否为空来解决这个问题\parentfiledir
,在这种情况下,文件会像我通常从文件中加载一样加载.tikz
。
结果如下:
内容main.tex
:
%main.tex
\documentclass{book}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{tikzscale}
\usepackage{standalone}
\usepackage{currfile}
\input{mycolors.tex}
\begin{document}
\begin{figure}
\includegraphics[width=\textwidth]{pics/mytikz.tikz}
\caption{includegraphics full width}
\label{fig:tikz}
\end{figure}
\end{document}
内容pics/mytikz.tikz
:
%mytikz.tikz
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{tikzscale}
\usepackage{currfile}
\ifdef{\parentfiledir}{%if
}{%else
\input{../mycolors.tex}%
}%
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-1,xmax=1,ymin=-1,ymax=1,
]
\addplot graphics [
xmin=0,xmax=1,ymin=0,ymax=1,
] {\currfiledir test.png};
\addplot table [x index={0},y index={1}] {\currfiledir data.out};
\end{axis}
\end{tikzpicture}
\end{document}