独立:外包 TikZ,同时放宽预定义长度

独立:外包 TikZ,同时放宽预定义长度

我有一个主文档和两个独立的 tikz 图片文件,如下所示这个答案。我需要\newlength在主文档和所有独立文件中拥有,以便能够单独运行任何文档,而无需每次都更改主文档结构。

然而,如图所示的放松长度这个答案对我来说不起作用。那么,如何才能将这两种情况整合在一起,完美地工作呢?

主要文件

\documentclass{article}
\usepackage{tikz}
\usepackage[subpreambles=true]{standalone}% I need subpreambles to be true
\begin{document}

% I need to keep the following definitions
\newlength{\mylength}
\setlength{\mylength}{1cm}
\let\mylength\relax

\begin{figure}
  \includestandalone[width=\textwidth]{myfrsttikz}
  \caption{My First TikZ picture}
\end{figure}

\begin{figure}
    \includestandalone[width=\textwidth]{mysecondtikz}
    \caption{My Second TikZ picture}
\end{figure}
\end{document}

第一个独立的 TikZ 文件

% myfrsttikz.tex %

\documentclass{standalone}
\newlength{\mylength}
\setlength{\mylength}{2cm}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) -- (\mylength,\mylength);
\end{tikzpicture}
\end{document}

第二个独立 TikZ 文件

% mysecondtikz.tex %
\documentclass{standalone}
\newlength{\mylength}
\setlength{\mylength}{5cm}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw (0,0) -- (\mylength,\mylength);
\end{tikzpicture}
\end{document}

答案1

将定义从主源传输到其他文件的最简单方法是使用filecontents\input\includestandalone这似乎是不必要的复杂化。

主要来源:

\begin{filecontents}{data}
\newlength{\mylength}
\setlength{\mylength}{1cm}
\end{filecontents}
%
\documentclass{article}
\usepackage{tikz}
%\usepackage[subpreambles=true]{standalone}% I need subpreambles to be true
\begin{document}

\begin{figure}
  \includegraphics[width=\textwidth]{test5}% renamed
  \caption{My First TikZ picture}
\end{figure}

\end{document}

第一个独立:

\documentclass{standalone}
\usepackage{tikz}

\input{data}

\begin{document}
\begin{tikzpicture}
  \draw (0,0) -- (\mylength,\mylength);
\end{tikzpicture}
\end{document}

当然,实际上\includegraphics直到独立运行完毕后才会添加。

相关内容