我有一个独立的 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
\bigfont
FIGG.tex
Undefined control sequence ... \bigfont
解决办法有两种:
- 如果要将其
FIGG
作为源文件包含,则\usepackage[subpreambles]{standalone}
在主 tex 文件中使用并编译两次。 - 如果要插入
FIGG
图像,则在主 tex 文件中使用类似buildmissing
或的模式buildnew
(如\usepackage[mode=<mode>]{standalone}
(需要-shell-escape
))。检查文档standalone
以了解哪种模式最适合您的需要。