以下代码定义了一个环境,该环境垂直偏移文本(上下偏移 5pt)并水平偏移文本(左侧偏移 2em)。\hspace{2em}
但是,与简单的相比,您会发现该环境引入了神秘的(不需要的)水平空间。是什么原因造成的?如何消除?
\documentclass{article}
\setlength{\parindent}{0pt}
\newenvironment{offset}
{\par\vspace{5pt}\hspace{2em}}{\par\vspace{5pt}}
\begin{document}
Surrounding text.
\begin{offset}
Foo
\end{offset}
Surrounding text
\hspace{2em}Foo %for comparison
\end{document}
附言:我曾经\par
在没有回车符的情况下强制换行。
附言:如果我对环境的目标能够更加优雅地实现,我将非常感激您的推荐。
答案1
添加一个\ignorespaces
作为“开始”定义的一部分。虚假空格源自宏\begin{offset}
:
\documentclass{article}
\setlength{\parindent}{0pt}
\newenvironment{offset}
{\par\vspace{5pt}\hspace{2em}\ignorespaces}
{\par\vspace{5pt}}
\begin{document}
Surrounding text.
\begin{offset}
Foo
\end{offset}
Surrounding text
\hspace{2em}Foo %for comparison
\end{document}
当您使用时,您还会看到空间也被删除了\begin{offset}%
。