将包含节点和大字体功能的 tikz 图片导入到 tex 文件中

将包含节点和大字体功能的 tikz 图片导入到 tex 文件中

我有一个独立的 tikzpicture,描述如下,效果很好:

\documentclass{standalone}
\usepackage{tikz}
\usepackage{anyfontsize}
\newcommand{\bigfont}{\usefont{T1}{cmr}{m}{n}\fontsize{100}{\baselineskip} \selectfont}
\begin{document}

\begin{tikzpicture}
\draw [line width=1](-1.5,-1.6) rectangle (1.5,1.6) (1.5,1.6);
\node at ( 0,0) {\bigfont{O}};
\end{tikzpicture}

\end{document}

当用pdflatex运行时我们得到以下图片:

在此处输入图片描述

我将独立文件保存为 FIGG.tex,并在书中调用它,如下所示:

\documentclass{book}

\usepackage{caption}
\usepackage{tikz}
\usepackage{standalone}
\usepackage{biblatex}
\usepackage{filecontents}
\usepackage{mdframed}
\mdfdefinestyle{exampledefault}{linewidth=1pt}
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem{my_TEXT}{TEXT}

\begin{document}
\begin{mdframed}[style=exampledefault]
\begin{my_TEXT}\textbf{[NICE]}
\begin{center}
\includestandalone[width=.5\textwidth]{FIGG}
\captionof{figure}{MY FIGURE}
\end{center}
\end{my_TEXT}
\end{mdframed}
\end{document}

但是这个主 tex 文件不喜欢显示图形,从而给我一个错误:

10 未定义的控制序列。l.10 \node at (0,0) {\bigfont {O}}; 您知道如何修复此问题以便能够在主 tex 文件中调用 FIGG 吗?

答案1

在您的示例中,standalone的默认设置mode=tex生效。在此模式下,的\includestandalone工作方式与包含\input文件相同,但会跳过其前导码。因此,会跳过前导码中的 定义,从而引发错误。FIGG.tex\bigfontFIGG.texUndefined control sequence ... \bigfont

解决办法有两种:

  • 如果要将其FIGG作为源文件包含,则\usepackage[subpreambles]{standalone}在主 tex 文件中使用并编译两次。
  • 如果要插入FIGG图像,则在主 tex 文件中使用类似buildmissing或的模式buildnew(如\usepackage[mode=<mode>]{standalone}(需要-shell-escape))。检查文档standalone以了解哪种模式最适合您的需要。

相关内容