【Latex第三方文档类standalone】standalone类介绍及应用

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}                               

经测试可正常运行显示

相关推荐
明朝百晓生1 小时前
强化学习 [chapter10] [page3 ]Actor-Critic Methods
算法
peterfei2 小时前
一个 Tauri + Rust AI 编辑器是怎么同时适配 5 家 AI 大厂的?IfAI v0.4.3 架构拆解
人工智能·算法·架构
Via_Neo2 小时前
桶排序算法
算法·排序算法
码界筑梦坊2 小时前
94-基于Python的商品物流数据可视化分析系统
开发语言·python·mysql·信息可视化·数据分析·毕业设计·fastapi
斯维赤2 小时前
每天学习一个小算法:快速排序
java·python·学习·算法·排序算法
王老师青少年编程2 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【区间贪心】:雷达安装
c++·算法·贪心·csp·信奥赛·区间贪心·雷达安装
elseif1232 小时前
分组背包1
c++·学习·算法
im_AMBER3 小时前
Leetcode 160 最小覆盖子串 | 串联所有单词的子串
开发语言·javascript·数据结构·算法·leetcode
狐璃同学3 小时前
数据结构(1)三要素
数据结构·算法