Latex中的图表中英文标题

目前两个宏包能实现这个功能,分别是ccaption和bicaption,下面分别讲解


使用ccaption宏包

在引言中使用

\usepackage{ccaption}

引入ccaption宏包,之后在figure或者table环境中使用\bicaption命令生成中英文双语标题即可

\begin{figure}
    \centering
    \includegraphics{image}
    \bicaption{图}{中文标题}{Figure}{English title}
\end{figure}

即可。

但这个宏包与caption宏包相互不兼容,如果同时使用会提示

LaTeX Error: Command \captionwidth already defined

解决这个问题的方案就是第二个宏包。

使用bicaption宏包

bicaption是一个基于caption的宏包,所以同时使用caption和bicaption宏包。bicaption官方文档通过babel宏包进行语言配置,这相对繁琐,对于中文排版不是十分友好,所以本文bicaption的使用部分是基于ctex宏包的基础上进行配置的。

首先需要引入ctex宏包,可以使用\usepackage命令或者直接在\documentclass中使用ctex定义好的几种样式(ctexart etc.)。之后引入caption和bicaption宏包并配置图表编号前缀

\usepackage{ctex} %引入CTEX宏包
\usepackage{caption}
\usepackage{bicaption}
\captionsetup[figure][bi-second]{name=Figure} %设置图的英文编号前缀
\captionsetup[table][bi-second]{name=Table} %设置表的英文编号前缀

现在在figure或者table环境中使用\bicaption命令生成中英文双语标题即可

\begin{figure}
    \centering
    \includegraphics{image}
    \bicaption{中文标题}{English title}
\end{figure}

请注意两个宏包的\bicaption定义不同,不要用混。

如果希望将中文标题放到后面,只需要更改\captionsetup如下

\captionsetup[figure][bi-first]{name=Figure} %设置图的英文编号前缀
\captionsetup[table][bi-first]{name=Table} %设置表的英文编号前缀

然后在使用\bicaption时将两个参数调换顺序

\bicaption{English title}{中文标题}

就可以实现。


参考文献:

[1] LaTeX_Fun. LaTeX技巧225:图表中英文双标题的使用技巧. 2010.01.17. http://blog.sina.com.cn/s/blog_5e16f1770100gvt9.html

[2] Google Groups.
Using caption package with ccaption package: ! LaTeX Error: Command \captionwidth already defined. https://groups.google.com/forum/#!topic/comp.text.tex/e5hBDHlncr4

[3]  Axel Som­mer­feldt. bicaption – Support for bilingual captions. 2012.04.10. https://ctan.org/pkg/bicaption

发表评论