Изменение существующей среды с сохранением имени

Изменение существующей среды с сохранением имени

В своем документе я хочу следовать совету, который гласит, что кавычки следует делать с отступом и набирать более мелким шрифтом.

Очевидно, это легко сделать с помощью:

\begin{quote}\small
  ...
\end{quote}

Но это не лучшее использование LaTeX, и я могу легко забыть об этом \small... и забывал об этом \smallуже не раз.

Поэтому вместо этого я мог бы определить новую среду — что-то вроде этого:

\newenvironment{myquote}{\begin{quote}\small}{\end{quote}}

И имеют:

\begin{myquote}
  ...
\end{myquote}

Но myquote? Серьёзно? Ничего уникального в myquote, это довольно стандартное поведение. Я бы предпочёл изменить исходное quoteопределение и продолжить использовать:

\begin{quote}
  ...
\end{quote}

(что, по-моему, гораздо более разумное название среды), но измените его так, чтобы он \smallавтоматически устанавливал размер шрифта содержимого.

Итак, я попробовал etoolboxи использовал:

\AtBeginEnvironment{quote}{\small}

Чтобы создать этот MWE:

\documentclass[12pt]{article}
\pagestyle{plain}
\usepackage[margin=1.8cm]{geometry}
\geometry{a4paper}
\usepackage[parfill]{parskip}
\usepackage{etoolbox}

\AtBeginEnvironment{quote}{\small}

\begin{document}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean
commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus
et magnis dis parturient montes, nascetur ridiculus mus. Donec quam
felis, ultricies nec, pellentesque eu, pretium quis, sem.
\begin{quote}
  Nulla consequat massa quis enim. Donec pede justo, fringilla vel,
  aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut,
  imperdiet a, venenatis vitae, justo.
\end{quote}
Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras
dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend
tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac,
enim. Aliquam lorem ante, dapibus in, viverra quis, feugiat a,
tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque
rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue. Curabitur
ullamcorper ultricies nisi. Nam eget dui.

\end{document}

Это хорошо, но это добавляет вертикальное пространство вокруг цитаты:

введите описание изображения здесь

Это не добавляется стандартной quoteсредой:

введите описание изображения здесь

Как же мне тогда изменить его, quoteчтобы автоматически добавить \smallобъявление шрифта, не затрагивая другие аспекты его поведения по умолчанию и не добавляя этот вертикальный пробел, которого, по моему мнению, там быть не должно?

решение1

В LaTeX \begin{foo}и \end{foo}на самом деле вызывают команды \fooи \endfoo. Поэтому один из способов добиться желаемого — просто переопределить \quote:

\documentclass{article}
\usepackage[margin=1.8cm, a4paper]{geometry}
\usepackage[parfill]{parskip}
\usepackage{lipsum}

\let\origquote=\quote
\def\quote{\origquote\small}

\begin{document}
  <what you had>
\end{document}

цитировать

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