定义环境时忽略空间

定义环境时忽略空间

假设我想重新定义quotation环境,将文本设为斜体并将其插入引号之间。我在调整引号开头后和结束前的空间时遇到了一些问题。

通过此代码我获得:

\documentclass{article}

\newenvironment{itquote}
  {\begin{quotation}\itshape``}
  {''\end{quotation}}

\begin{document}


\begin{itquote}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. 
Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
\end{itquote}

\end{document}

在此处输入图片描述

为了修复间距,我显然必须%以这种方式放置两个:

\begin{itquote}%
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. 
Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.%
\end{itquote}

在此处输入图片描述

但是我想在序言中的环境定义中修复它,而不需要%文档中的两个符号,我该怎么做呢?

我也尝试过\unskip但它只在最后起作用:

\newenvironment{itquote}
  {\begin{quotation}\itshape``}
  {\unskip''\end{quotation}}

答案1

\begin您可以使用的部分\ignorespaces(见egreg 的评论),在\end部分中,可以通过以下方式撤消先前的空间\unskip

\documentclass{article}

\newenvironment{itquote}
  {\begin{quotation}\itshape``\ignorespaces}
  {\unskip''\end{quotation}}

\begin{document}

\begin{itquote}
Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis.
Curabitur dictum gravida mauris.
Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna.
\end{itquote}

\end{document}

结果

评论:

  • \unskip删除最后一个跳过空格,也可以删除垂直跳过空格。可以通过 来防止这种情况\ifhmode\unskip\fi。这里不需要它,因为如果环境内容以垂直空格结尾,则会出现更大的问题。无论如何,引号都不合适。

相关内容