在序言中包含带有 TikZ 图的文件夹

在序言中包含带有 TikZ 图的文件夹

我正在写博士论文,我刚刚发现了matlab2tikzMATLAB 的脚本,所以我想转换我的图表并将它们放入文档中pgfplots。我的论文已经很大了,编译需要很长时间,所以我想利用包standalone在外部编译图表,以加快进程。matlab2tikz输出一个.tex.tikz文件,其中包含必要的代码,例如:

\begin{tikzpicture}
\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt        
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
\draw   (23,42) .. controls (23,28.19) and (34.19,17) .. (48,17) .. controls (61.81,17) and (73,28.19) .. (73,42) .. controls (73,55.81) and (61.81,67) .. (48,67) .. controls (34.19,67) and (23,55.81) .. (23,42) -- cycle ;
\end{tikzpicture}
\end{tikzpicture}

在这种情况下,我将文件保存为.tex。然后,按照软件包手册的说明standalone,我修改了该文件,如下所示

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt        
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
\draw   (23,42) .. controls (23,28.19) and (34.19,17) .. (48,17) .. controls (61.81,17) and (73,28.19) .. (73,42) .. controls (73,55.81) and (61.81,67) .. (48,67) .. controls (34.19,67) and (23,55.81) .. (23,42) -- cycle ;
\end{tikzpicture}
\end{document}

并将其另存为test.tex。当我尝试编译文档时,我是否有\includestandalone[width=\textwidth]{test}\input{test}我得到Can be used only in preamble错误。我确信这与不在主文档文件夹中的事实有关test.tex,而是在与所有图像相同的文件夹中。因此,我的问题是:序言中应该包含什么来指向包含带有 TikZ 图的文件的文件夹?下面是我的序言,其中包含一个最小的工作示例:

\documentclass[11pt,english,a4paper]{report}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathpazo}
\usepackage{setspace}
\usepackage[acronym,nopostdot,style=index,nogroupskip,nomain]{glossaries-extra}
\usepackage{epsfig}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{booktabs}
\usepackage{tabularx}
\usepackage{ragged2e}
\usepackage{graphicx}
\usepackage{comment,array,url}
\usepackage[font={small,it},center]{caption}
\usepackage[list=true]{subcaption}
\usepackage{multirow}
\usepackage{geometry}
\usepackage{framed}
\usepackage[Conny]{fncychap}
\usepackage[toc,page]{appendix}
\usepackage{bibentry}
\nobibliography*
\usepackage{gensymb}
\usepackage{standalone}
\usepackage{pgfplots}
\usepackage[hidelinks]{hyperref}

\makeglossaries

\setabbreviationstyle[acronym]{long-short}

\loadglsentries{D:/Dropbox/NTU/Research/Resources/03_glossary.tex}

\graphicspath{{D:/Dropbox/NTU/Research/Resources/02_All_images/}{}}

\begin{document}
\begin{figure}
\includestandalone[width=\textwidth]{test}
\caption{Caption}
\end{figure}
\end{document}

答案1

我使用的方法略有不同。我保存全部TikZ 文件仅带有\begin{tikzpicture}\end,然后使用 插入它们\input{fig_TikZ_name}。因此,主文件的前言中必须有\usepackagetikzpgfplots

Can be used only in preamble\usepackage位于 内时,会出现该消息\begin{document}。要编辑这些 TikZ 文件,我使用 TikzEdt 或仅插入我正在编辑的 TikZ 文件的最小 .tex。

该包\adjustbox只是缩放图片的一个选项,不是最好的,也不是万能的,只是在许多场景中有用。

可能仍然可以使用 的方法standalone,但我不知道如何操作或是否可行。很抱歉。

接下来是 MWE。

fig_TikZ_name.tex 文件:

\begin{tikzpicture}
    \draw[blue, ->]   (0,0) -- (10,10);
\end{tikzpicture}

主文件:

\documentclass{article}

\usepackage{tikz}
\usepackage{pgfplots} % Can be used only in preamble. \usepackage

\usepackage{adjustbox}

\begin{document}
\begin{figure}[h]
    \centering
    \input{figTikZname}
    \caption{text}
\end{figure}
\begin{figure}[h]
    {\adjustbox{width = 0.9\linewidth}{\input{figTikZname}}}
    \caption{adjustbox}
\end{figure}
\input{figTikZname}
\end{document}

在此处输入图片描述

答案2

修改生成的代码时要小心。 在您的例子中,您有两个\begin{tikzpicture}但只有一个\end{tikzpicture}

正确的test.tex文件应该是:

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
    \tikzset{every picture/.style={line width=0.75pt}} %set default line width to 0.75pt        
    \begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
        \draw   (23,42) .. controls (23,28.19) and (34.19,17) .. (48,17) .. controls (61.81,17) and (73,28.19) .. (73,42) .. controls (73,55.81) and (61.81,67) .. (48,67) .. controls (34.19,67) and (23,55.81) .. (23,42) -- cycle;
    \end{tikzpicture}
\end{document}

我还从你的 MWE 中删除了不必要的东西:

\documentclass[11pt,english,a4paper]{report}
\usepackage{graphicx}
\usepackage{standalone}
\usepackage{pgfplots}
\usepackage[hidelinks]{hyperref}

\begin{document}
    \begin{figure}
        \includestandalone[width=\textwidth]{test}
        \caption{Caption}
    \end{figure}
\end{document}

编译时没有错误。

输出

相关内容