50 在使用bicaption时,如何同时实现「caption悬挂缩进」、「手动指定换行」同时「实现caption居中」?

发布于 2025-07-07 21:09:04

如题,预期实现的效果:

image.png

要求同时满足三个要求:

  • format=hang实现caption的悬挂缩进
  • 对于整个caption,要求整体居中
  • 允许通过\\手动指定较长\bicaption的换行点

对于下面的MWE:

不手动指定\\换行,使用format=hang,justification=centering:

\documentclass{ctexart}
\usepackage{showframe}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{format=hang,justification=centering}
\usepackage{bicaption}
\captionsetup[figure][bi-first]{name=图}
\captionsetup[figure][bi-second]{name=Fig.}
\usepackage{lipsum,zhlipsum}
\begin{document}
\lipsum[2]
\begin{figure}[h]
\centering
\includegraphics[width=.5\textwidth]{example-image}
\bicaption{中文中文中文中文中文中文中文中文中文}{English text English text English text English text English text English text text text}
\end{figure}
\zhlipsum[2]
\end{document}

image.png

如果手动加上\\, 此时centeringhang似乎无法同时生效:

\documentclass{ctexart}
\usepackage{showframe}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{format=hang,justification=centering}
\usepackage{bicaption}
\captionsetup[figure][bi-first]{name=图}
\captionsetup[figure][bi-second]{name=Fig.}
\usepackage{lipsum,zhlipsum}
\begin{document}
\lipsum[2]
\begin{figure}[h]
\centering
\includegraphics[width=.5\textwidth]{example-image}
\bicaption{中文中文中文中文中文中文中文中文中文}{English text English text English text\\ English text English text English text text text}
%注意上一行手动换行,且上短下长,`hang`失效了....
\end{figure}
\zhlipsum[2]
\end{document}

image.png

问题

是否有仅使用\captionsetup的方式,同时实现上述效果呢?

查看更多

关注者
0
被浏览
89
1 个回答
Sagittarius Rover
Sagittarius Rover 23小时前
我要成为Typst糕手/(ㄒoㄒ)/~~

给一种基于varwidth(或者说盒子)的「不得体之术」:

\documentclass{ctexart}
\usepackage{showframe}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{justification=centering}
\usepackage{bicaption}
\captionsetup[figure][bi-first]{name=图}
\captionsetup[figure][bi-second]{name=Fig.}
\usepackage{lipsum,zhlipsum}
\usepackage{varwidth}
\begin{document}
\lipsum[2]

\begin{figure}[h]
\centering
\includegraphics[width=.5\textwidth]{example-image}
\bicaption{中文中文中文中文中文中文中文中文中文}{\begin{varwidth}[t]{.8\linewidth}English text English text English text English text\\ English text English text text text \end{varwidth}}
\end{figure}

\zhlipsum[2]
\end{document}

image.png

是否有更好的利用caption包的办法而不是抖机灵呢?

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览