Перезапись стиля среды

Перезапись стиля среды

Как изменить стиль элемента в LaTeX?

Я хотел бы сделать некоторые базовые изменения в некоторых средах. Например, изменить размер текста в quotation, поля в verbatimили межстрочный интервал в itemizeблоках.

Я хочу, чтобы изменения были внесены в каждый блок документа.

Как мне переписать некоторые определения стилей?

решение1

Обычно вы можете написать свою собственную среду, которая будет обертывать ту, которую вы хотите изменить. Например

\newenvironment{quotingalt}
  {% \begin{quotingalt}
   \large% Change font size
   \begin{quote}%
  }{% \end{quotingalt}
   \end{quote}%
  }

На самом деле, именно так написаны многие среды по умолчанию в стандартных классах. Например, рассмотрим среду quoteизarticle.cls:

\newenvironment{quote}
               {\list{}{\rightmargin\leftmargin}%
                \item\relax}
               {\endlist}

Приведенный выше код инициирует listсреду с помощью \listи завершает ее с \endlistпомощью формы quote.

Поскольку среда имеет некоторую область действия, изменения локализуются, поэтому вам не придется беспокоиться об их сбросе.environупаковкаобеспечивает более интуитивный командный интерфейс для окружения, предоставляя \BODYдоступ к захваченному контенту внутри него:

\usepackage{environ}% http://ctan.org/pkg/environ
\NewEnviron{quotingalt}{%
  \large% Change the font size
  \begin{quote}\BODY\end{quote}%
}

Альтернативные подходы включают сохранение исходного имени и его изменение с помощью патча (сetoolboxи друзья) или полное переосмысление с добавлением вашего стиля.

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