Если пробел не важен тогда, можно использовать символ ESC для записи многострочных строк в коде. Это полезно, если у Вас есть запрос в Вашем коде, например:
string query = @"SELECT whatever
FROM tableName
WHERE column = 1";
Это даст Вам строку с разрывами строки и вкладками, но для запроса, который не имеет значения.
\let\oldfigure\figure
\def\figure{\oldfigure\centering}
Другое решение, которое работает с необязательными аргументами.
Исправлено.
\let\oldfigure\figure
\let\oldendfigure\endfigure
\def\figure{\begingroup \oldfigure}
\def\endfigure{\centering \oldendfigure \endgroup}
Исправлено 2. Он хорошо работает с любыми параметрами и любыми правилами, а также с \ par
внутри.
\makeatletter
\let\oldfigure\figure
\def\figure{\@ifnextchar[\figure@i \figure@ii}
\def\figure@i[#1]{\oldfigure[#1]\centering}
\def\figure@ii{\oldfigure\centering}
\makeatother
Как насчет:
\newenvironment{centeredfigure}{\begin{figure}\begin{center}}{\end{center}\end{figure}}
Примечание: не проверено.
Как отмечено в другом ответе, вы можете ' Я проделал старый трюк, добавив команды в конец макроса \ figure
, потому что это испортит необязательную обработку аргументов.
Если в среде нет аргументов, то она будет работать нормально, но в противном случае нет простого способа сделать это.
Для вашей проблемы с фигурами попробуйте загрузить пакет floatrow:
\usepackage{floatrow}
If автоматически центрирует содержимое ваших фигур.
Обновление: Если вы этого не сделаете. Я хочу загрузить пакет, вот код, который тоже это сделает. Обратите внимание, что это специфично для среды figure
, но основная тема: скопировать исходное определение,fps @ figure перед передачей макросу \ @ float
.