如何删除空白的标题行

如何删除空白的标题行

我正在从用多标记语言编写的长文档自动生成 LaTex,该文档由名为 Scrivener 的软件包编译。这是一个运行良好的工作流程,但这是我遇到的问题之一。我不想每次编译为 LaTex 时都必须替换/删除大量标题命令。

下面的 MWE 说明了这个问题。

Figure n:从包含的图形中删除了标题。但是,它留下了一个空白行,这使得图像间距显得笨拙。有没有一种简单的方法可以删除空白行,而无需在每次使用图形时插入间距调整?谢谢。

\documentclass{memoir}

\usepackage{mwe}                    %   for dummy images
\usepackage[labelformat=empty]{caption} %   remove figure captions

\begin{document}

 \begin{figure}[!ht]
  \centering
  \includegraphics[width=0.5\textwidth]{image}                   
  \caption{}
  \end{figure}
   This is first text after caption.

\end{document}

答案1

memoir提供了自己的字幕管理接口,与caption(参见章节10.13 类与caption包(及其朋友),第 206 页memoir用户手册)。

但是,您可以更新\caption以获取其内容,评估参数是否为空,并进行相应的条件:

在此处输入图片描述

\documentclass{memoir}

\usepackage{mwe}                    %   for dummy images
\usepackage[labelformat=empty]{caption} %   remove figure captions

% http://tex.stackexchange.com/a/58638/5764
\makeatletter
\def\ifemptyarg#1{%
  \if\relax\detokenize{#1}\relax % H. Oberdiek
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi}
\makeatother

\let\oldcaption\caption
\AtBeginDocument{%
  \renewcommand{\caption}[2][]{%
    \ifemptyarg{#2}{}{\oldcaption[#1]{#2}}%
  }%
}

\begin{document}

\begin{figure}[!ht]
  \centering
  \includegraphics[width=0.5\textwidth]{image}                   
  \caption{}
\end{figure}
This is first text after caption.

\newpage

\begin{figure}[!ht]
  \centering
  \includegraphics[width=0.5\textwidth]{image}                   
  \caption{Some caption}
\end{figure}
This is first text after caption.

\end{document}

\caption如果您在工作流程中没有使用可选参数,那么重新定义可能会更简单一些:

\AtBeginDocument{%
  \renewcommand{\caption}[1]{%
    \ifemptyarg{#1}{}{\oldcaption{#1}}%
  }%
}

答案2

如果您确实不在任何地方使用标题,请重新定义\caption为不执行任何操作。

\renewcommand{\caption}{}

我认为它会满足你的要求。

相关内容