Игнорировать пробел при определении среды

Игнорировать пробел при определении среды

Предположим, что я хочу переопределить 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. Здесь это не нужно, потому что есть более серьезные проблемы, если содержимое окружения заканчивается вертикальным пробелом. Кавычка в любом случае будет неуместна.

Связанный контент