尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

LaTeX图表双语标题进阶:从基础配置到自定义样式与子图排版

LaTeX图表双语标题进阶:从基础配置到自定义样式与子图排版 1. LaTeX双语图表标题基础配置第一次用LaTeX写论文时最让我头疼的就是图表标题的中英文对照问题。记得当时为了赶deadline硬是用笨办法手动添加了两行标题结果格式乱七八糟。后来才发现原来LaTeX早就为我们准备好了专业的解决方案。最常用的两种实现方式是bicaption宏包和ccaption宏包。bicaption是caption的扩展包专门用于双语标题场景。它的基本配置非常简单\usepackage{caption} \usepackage{bicaption} \captionsetup[figure][bi-second]{nameFigure} % 设置英文标题前缀 \captionsetup{labelsepspace} % 将默认冒号改为空格实际使用时在figure环境中这样写\begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{example.png} \bicaption{中文标题}{English Title} \label{fig:example} \end{figure}ccaption则是另一种选择语法略有不同\usepackage{ccaption} \begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{example.png} \bicaption{图}{中文标题}{Fig}{English Title} \label{fig:example} \end{figure}我个人的经验是如果文档中同时使用了其他caption相关功能建议选择bicaption因为它与caption包的兼容性更好。曾经有个项目混用ccaption和caption导致编译报错调试了半天才发现是宏包冲突。2. 标题样式深度定制2.1 字体与对齐控制caption宏包提供了极其丰富的样式定制选项。比如我们实验室要求图表标题必须使用小字号加粗字体并且居中对齐可以这样设置\captionsetup{ fontsmall, labelfontbf, justificationcentering }这几个参数的含义是fontsmall正文小一号的字号labelfontbf标签部分如图1加粗显示justificationcentering整体居中对齐如果需要对图和表分别设置不同样式可以这样写\captionsetup[figure]{fontsmall, labelfontbf} \captionsetup[table]{fontfootnotesize, labelfontbf}2.2 间距与缩进调整论文排版中最容易忽视的就是间距细节。通过caption宏包可以精确控制skip10pt标题与图表内容的间距margin2cm标题与页面边距的距离indent0.5cm首行缩进量我常用的配置模板\captionsetup{ skip12pt, margin1.5cm, singlelinecheckfalse % 强制单行标题也居中 }2.3 标签格式定制标签格式如图1这部分也有多种玩法labelformatparens→ (图1)labelformatbrace→ {图1}labelsepquad→ 增加间距labelsepnone→ 完全取消分隔符有个实用技巧是自定义分隔符。比如需要全角冒号\DeclareCaptionLabelSeparator{fullcolon}{} \captionsetup{labelsepfullcolon}3. 子图环境双语标题处理3.1 subcaption宏包基础用法处理子图时subcaption宏包是首选方案。它完美支持双语环境而且与caption宏包无缝兼容\usepackage{subcaption} \begin{figure}[htbp] \centering \begin{subfigure}[b]{0.45\textwidth} \includegraphics[width\textwidth]{sub1.png} \bicaption{子图1中文}{Subfig 1 English} \label{fig:sub1} \end{subfigure} \begin{subfigure}[b]{0.45\textwidth} \includegraphics[width\textwidth]{sub2.png} \bicaption{子图2中文}{Subfig 2 English} \label{fig:sub2} \end{subfigure} \bicaption{总标题中文}{Main Title English} \label{fig:main} \end{figure}3.2 子图引用技巧子图引用时需要特别注意\ref{fig:main}→ 返回主图编号如图3\subref{fig:sub1}→ 返回子图编号如(a)\ref{fig:sub1}→ 返回完整编号如图3(a)在交叉引用时我习惯在文中使用完整格式如图\ref{fig:main}所示其中\subref{fig:sub1}展示了...而\subref{fig:sub2}则...3.3 复杂子图布局对于多行多列的子图排列可以结合minipage实现\begin{figure}[htbp] \centering \begin{minipage}{\textwidth} \centering \begin{subfigure}[b]{0.3\textwidth} % 第一行子图1 \end{subfigure} \begin{subfigure}[b]{0.3\textwidth} % 第一行子图2 \end{subfigure} \\ % 换行 \begin{subfigure}[b]{0.3\textwidth} % 第二行子图1 \end{subfigure} \begin{subfigure}[b]{0.3\textwidth} % 第二行子图2 \end{subfigure} \end{minipage} \bicaption{多行子图示例}{Multi-row Subfigures} \label{fig:multirow} \end{figure}4. 常见问题解决方案4.1 双语标题顺序调整有些期刊要求英文标题在前只需修改配置\captionsetup[figure][bi-first]{nameFigure} % 英文作为第一语言 \captionsetup[table][bi-first]{nameTable} % 使用时顺序相应调整 \bicaption{English Title}{中文标题}4.2 标题换行处理长标题自动换行时建议启用hang格式\captionsetup{formathang}手动指定换行点可以用\bicaption{第一行中文\\第二行中文}{First Line\\Second Line}4.3 与hyperref宏包兼容当文档中使用超链接时需要在hyperref之后加载caption\usepackage{hyperref} \usepackage{caption}如果出现引用格式异常可以尝试\usepackage{caption} \usepackage[hypcaptrue]{hyperref}4.4 中英文字体分别设置通过fontspec可以分别指定中英文字体\captionsetup{ font{Microsoft YaHei}, % 中文字体 fontTimes New Roman % 追加英文字体 }5. 实战案例演示5.1 学术论文标准配置结合我最近发表的论文配置完整示例\usepackage{ctex} \usepackage{caption} \usepackage{bicaption} \usepackage{subcaption} % 基础设置 \captionsetup{ fontsmall, labelfontbf, labelsepspace, justificationcentering } % 双语设置 \captionsetup[figure][bi-second]{nameFigure} \captionsetup[table][bi-second]{nameTable} % 子图设置 \renewcommand{\thesubfigure}{(\alph{subfigure})}5.2 技术报告优化方案对于企业技术报告我推荐这样配置\usepackage{xcolor} \usepackage{caption} \captionsetup{ font{colorblue, small}, labelfont{colorred, bf}, margin2cm, formathang }5.3 毕业论文特殊需求处理毕业论文时常见的特殊要求图表目录双语显示\bicaption[中文短标题]{中文完整标题}[Eng Short]{English Full Title}各章节独立编号\usepackage{chngcntr} \counterwithin{figure}{section}标题悬挂缩进\captionsetup{formathang, indent2em}在最近指导的毕业设计中有个学生遇到了子图编号混乱的问题。排查后发现是因为在文档中混用了subfigure和subcaption环境导致的。统一使用subcaption后问题解决这也提醒我们在复杂文档中保持宏包使用的一致性非常重要。
返回列表