1.standalone介绍
standalone 是 LaTeX 的一个第三方文档类(也包含一个同名宏包)。它不是像article、book那样的标准类,而是针对特定场景设计的专用工具,其核心设计理念是:一处编写,多处使用
2.standalone工作机制
standalone的设计主要解决一个特定问题:将大型文档拆分成多个可以独立编译和预览的"零件"。其工作机制大致如下
①在子文件中,作为文档类:你把一张图或一个章节的代码放在一个 .tex 文件中,并将文档类设为 standalone。这样,这个子文件就能独立编译,方便反复修改和预览,同时不会影响主文档的编译效率
②在主文件中,作为宏包:在主体文档(如一篇论文)中,通过 \usepackage{standalone} 加载宏包,它就会自动忽略子文件中与主文件重复的"导言区"(\documentclass, \usepackage 等),只把实质内容部分包含进来
3.standalone核心功能
①独立编译与预览:编写包含 TikZ 绘图、表格或任意文本的 .tex 文件时,可以直接将其作为一个独立的文档来编译。所以可以先在独立的.tex 文件中进行调试,确定无误后再集成到主文档中
②自动裁剪与多格式转换:默认standalone 类会自动裁剪掉页面四周多余的空白,使生成的 PDF 尺寸与内容紧密贴合。通过
border 选项还能精细控制边距
③主文档智能包含:在主文档中,可以使用 \includestandalone或\input命令来包含子文件。比如当主文档的导言区加载了\standalone 宏包后,这些命令会自动忽略子文件中的导言区(如\documentclass 和\usepackage 命令),仅提取内容,有效避免了宏包冲突
4.standalone主要应用场景
①创建独立的矢量插图:这是最流行的用法。特别是用 TikZ、PGFPlots 绘制复杂的科学图表或数据可视化时
②模块化管理大型文档:写学位论文或长篇书籍时,可以将每章内容放在一个独立的 standalone 文件中,分别调试和编译,再可通过\input或\include 命令整合到主文档里,项目管理更方便清晰
③加速编译过程:对于计算量大的复杂图表(如函数图像),standalone 可以配置成只编译一次并保存为 PDF 图片,之后主文档编译时直接插入该图片,能显著缩短编译时间
5.standalone类位置及简洁代码示例
·下面位置表示主程序和存放图象的figures文件夹同级(处于同一文件夹下);图象文件名为myplot,处于figures文件夹下



(1)独立图形代码
bash
% 使用 standalone 文档类,并启用 tikz 选项
\documentclass[tikz, border=2pt]{standalone} % 文档类:standalone,自动加载tikz,保留2磅白边
\begin{document}
\begin{tikzpicture}
\draw[fill=blue!20] (0,0) circle (1.5cm); %绘制填充浅蓝色的圆,圆心(0,0),半径1.5cm
\node at (0,0) {Hello}; %在圆心处放置文字节点"Hello"
\end{tikzpicture}
\end{document}
(2)主文档
bash
\documentclass[UTF8]{ctexart}
\usepackage{standalone} %加载standalone宏包,用于智能包含子文件
\usepackage{tikz}
\begin{document}
\section{包含 standalone 图形}
下方图形来自独立文件,可直接用 \verb|\includestandalone| 插入:
\begin{figure}[h] %浮动体环境,[h]表示尽量放在此处
\centering %内容居中
\includestandalone{figures/myplot} % 包含子文件(不写.tex扩展名)
\caption{一个独立的 TikZ 图形} %添加图标题
\end{figure}
\end{document}
经测试可正常运行显示

