我有一个主文档和两个独立的 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
直到独立运行完毕后才会添加。