LaTeX 图片双语标题

本案例可能需要使用到的宏包

方式 1:通过计数器

难点:插入图片之后,Latex 是如何知道这张图片是图 2(而不是图 3,图 4)呢?原因在于计数器。通过 figure 环境添加图片之后,计数器自动加一。

如果我们为图片添加了第二个标题的话,第一个标题(中文标题)为图 1,第二个标题(英文标题)就会变为图 2 了,而这两个标题明明是指同一张图片,此时就需要在添加第二个标题之前将计数器再减掉 1。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
\documentclass{ctexart}
\usepackage{graphicx}

\begin{document}
\begin{figure}
\centering
\includegraphics[width=1.5in]{fig/cat2}
\vspace{-10pt} %控制标题与图片之间的垂直距离
\caption{这是一只可爱的猫} %使用ctexart文档类,默认图例为中文“图”
\addtocounter{figure}{-1} %使用caption命令后,figure的计数器默认加一,此时再添加英文的标题,计数器就会变成2了,所以计数器减1,中英文标题计数器仍保持一致
\renewcommand{\figurename}{Fig} %将图例改为英文“Fig”
\vspace{-10pt} %控制第二个标题与第一个标题之间的垂直距离
\caption{This is a cute cat}
\renewcommand{\figurename}{图} %将图例的再次改为中文,修改为默认值,以防影响下方图片的图例
\label{Bigcat}
\end{figure}
\end{document}

01-图片双语标题示例.png

每句代码的意思已经写在注释中了,那么在插入第二章图片试一下是否有问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
\documentclass{ctexart}
\usepackage{graphicx}

\begin{document}
\begin{figure}
\centering
\includegraphics[width=1.5in]{fig/cat2}
\vspace{-10pt} %控制标题与图片之间的垂直距离
\caption{这是一只可爱的猫} %使用ctexart文档类,默认图例为中文“图”
\addtocounter{figure}{-1} %使用caption命令后,figure的计数器默认加一,此时再添加英文的标题,计数器就会变成2了,所以计数器减1,中英文标题计数器仍保持一致
\renewcommand{\figurename}{Fig} %将图例改为英文“Fig”
\vspace{-10pt} %控制第二个标题与第一个标题之间的垂直距离
\caption{This is a cute cat}
\renewcommand{\figurename}{图} %将图例的再次改为中文,修改为默认值,以防影响下方图片的图例
\label{Bigcat}
\end{figure}

以上是本示例的第一张图片:\ref{Bigcat},接下来插入第二章图片:

\begin{figure}[htbp]
\centering
\includegraphics[width=3in]{fig/QHU}
\vspace{-10pt}
\caption{青海大学美景} %使用ctexart文档类,默认图例为中文“图”
\addtocounter{figure}{-1} %使用caption命令后,figure的计数器默认加一,此时再添加英文的标题,计数器就会变成2了,所以计数器减1,中英文标题计数器仍保持一致
\renewcommand{\figurename}{Fig} %将图例改为英文“Fig”
\vspace{-10pt}
\caption{QHU's grand landscape}
\renewcommand{\figurename}{图} %将图例的再次改为中文,修改为默认值,以防影响下方图片的图例
\label{QHU-landscape}
\end{figure}
\end{document}

02-图片双语标题之插入多图示例.png

图片的图例没有问题,可是为什么图 2 会在那段文字的上方去了呢?原因在于 Latex 排版时会自动为我们排版出尽可能少的页面空白,让页面看起来更美观。这或许也正是 figure 环境为浮动体的体现吧
那么可以在第二章图片的 figure 环境后添加 htbp 参数,让 Latex 按照我们的要求进行排版

1
2
3
4
5
6
7
% ...
以上是本示例的第一张图片:\ref{Bigcat},接下来插入第二章图片:

\begin{figure}[htbp]
\centering
% ...

02-图片双语标题之插入多图示例htbp.png

浮动体中有关插图位置的参数,详细规则见文末参考资料 1

  • h: here 将图片插到此处
  • t: top 将图片插到页顶
  • b: bottom 将图片插到页底
  • p: page 插图独立一页
  • H: 将图片固定在此处

一般参数取 h 或 H 就好了,当然也可以写多个参数,如 htbp, 此时参数会按照顺序执行,首先尝试用 h,如果不行再依次使用其他参数 (其实效果和单独一个 h 差不多)。

方式 2:通过 bicaption 宏包

直接使用 bicaption 宏包就比较简单啦,毕竟宏包的开发作者就是针对这个双语标题开发出来的嘛。

1
2
3
4
5
6
7
8
9
10
11
\documentclass{ctexart}
\usepackage{graphicx}
\usepackage{bicaption} %使用双语标题宏包
\begin{document}
\begin{figure}
\centering
\includegraphics[width=1.5in]{fig/cat2}
\bicaption{这是一种可爱的猫}{This is a cute cat}
\label{Bigcat}
\end{figure}
\end{document}

04-使用bicaption宏包图片示例.png

很遗憾,并没有像我们预想的那样,第二个标题的图例还是中文。宏包作者没有直接为我们定义好第二个标题的图例是有原因的,他不针对中文用户,对于其他需求,比如第一个标题为母语,第二个标题为俄语呢,通过我们自己的需求来设置第二个标题的图例是不是更好一些。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
\documentclass{ctexart}
\usepackage{graphicx}
\usepackage{bicaption}

\begin{document}
\captionsetup[figure][bi-second]{name=Fig} %设置图的第二标题图例为Fig
\begin{figure}
\centering
\includegraphics[width=1.5in]{fig/cat2}
\bicaption{这是一种可爱的猫}{This is a cute cat}
\label{Bigcat}
\end{figure}

\end{document}

05-使用bicaption宏包设置第二标题图例.png

参考资料:

  1. CSDN: LaTex 论文排版 | (19) LaTex 中的插图问题 @CoreJT
  2. Latex 官方中文文档: 一份(不太)简短的 LATEX2ε 介绍