抑制环境末尾的空格

抑制环境末尾的空格

这个问题肯定之前已经回答过了,但恐怕我找不到了。我正在定义一个环境,并且希望在内容结束后立即格式化结束块,而不插入水平空间。这是一个 MWE:

\documentclass{article}
\newenvironment{example}{[\textit{Example} --- }{]}
\begin{document}
\begin{example}
This is an example.
\end{example}
\end{document}

%显然,我可以通过在内容行末尾添加一个来实现这一点,例如

\begin{example}
This is an example.%
\end{example}

... 但这并不实用,因为我只能控制环境定义,而不能使用它。我是否可以在环境定义中添加任何内容来消除原本会插入的水平空间?

答案1

\unskip在环境定义的结束部分之前使用]。这将占用 之前的所有空格字符]

编辑以注意 Barbara 的评论,删除破折号后面的杂散空格。正如她所指出的,前面不能有空行,\end{example}否则会自动引入段落分隔符。

\documentclass{article}
\newenvironment{example}{[\textit{Example} ---}{\unskip]}
\begin{document}
\begin{example}
This is an example.
\end{example}
\end{document}

在此处输入图片描述

此外,如果您希望没有空白结尾部分],你\ignorespacesafterend需要

\documentclass{article}
\newenvironment{example}{[\textit{Example} ---}{\unskip]\ignorespacesafterend}
\begin{document}
\begin{example}
This is an example.
\end{example}
xxx
\end{document}

在此处输入图片描述

答案2

我不确定您是否真的想要一个这样的环境。但是,您可以(滥用)使用environ

\documentclass{article}
\usepackage{environ}

\NewEnviron{example}{%
  [\textit{Example} --- \BODY]%
}

\begin{document}

\begin{example}
This is an example.
\end{example}

\end{document}

在此处输入图片描述

相关内容