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