通常不会产生任何空格。但是,在from包之后使用\label
时会产生空格。\label
\phantomsubcaption
subcaption
- 为什么?
- 我怎样才能摆脱这个空白?
以下是 MWE:
\documentclass{article}
\usepackage{subcaption}
\begin{document}
\section{a}
a\label{sec:a}b% no white space between `a' and `b'
\begin{figure}
\centering
{a\phantomsubcaption\label{fig:a}}%
{b\phantomsubcaption\label{fig:b}}
\caption{With label}% undesired white space between `a' and `b'
\end{figure}
\begin{figure}
\centering
{a\phantomsubcaption}%
{b\phantomsubcaption}
\caption{Without label}% no white space between `a' and `b'
\end{figure}
\end{document}
答案1
第 87 行有错误subcaption.sty
:
87 \newcommand*\subcaption@label{
88 \caption@withoptargs\subcaption@@label}
在第 87 行的末尾,括号后%
缺少 a。
如果你在加载后添加到序言中subcaption
,
\makeatletter
\renewcommand*\subcaption@label{%
\caption@withoptargs\subcaption@@label}
\makeatother
输出将是正确的,没有任何虚假空间。
请让软件包维护者知晓这一点。
答案2
\phantomsubcaption
并且\phantomcaption
没有任何参数。此外,它们不会生成任何输出,但会为您提供一个\label
命令的锚点,该命令可以随后放置。此外,它会增加子图和/或子表计数器。值得注意的是,就像\subcaption
命令\phantomsubcaption
必须在其内部应用一样自己的团体,盒子, 或者环境。
在您的代码中,由于您没有使用任何subfigure
环境,因此您可以将\phantomsubcaption
类似 放在括号内{\phantomsubcaption}
。
\documentclass{article}
\usepackage{subcaption}
\begin{document}
\section{a}
a\label{sec:a}b% no white space between `a' and `b'
\begin{figure}
\centering
{a{\phantomsubcaption}\label{fig:a}}%
{b{\phantomsubcaption}\label{fig:b}}
\caption{With label}% undesired white space between `a' and `b'
\end{figure}
\begin{figure}
\centering
{a\phantomsubcaption}%
{b\phantomsubcaption}
\caption{Without label}% no white space between `a' and `b'
\end{figure}
\end{document}
或者你也可以\ignorespaces
使用
{a\phantomsubcaption\ignorespaces\label{fig:a}}%
完整代码:
\documentclass{article}
\usepackage{subcaption}
\begin{document}
\section{a}
a\label{sec:a}b% no white space between `a' and `b'
\begin{figure}
\centering
{a\phantomsubcaption\ignorespaces\label{fig:a}}%
{b\phantomsubcaption\label{fig:b}}
\caption{With label}% undesired white space between `a' and `b'
\end{figure}
\begin{figure}
\centering
{a\phantomsubcaption}%
{b\phantomsubcaption}
\caption{Without label}% no white space between `a' and `b'
\end{figure}
\end{document}