\ignorespaces & \ignorespacesafterend
Синопсис:
\ignorespaces
или
\ignorespacesafterend
Обе команды заставляют LaTeX игнорировать пробелы (т.е. символы с кодом категории 10, такие как пробел или табуляция) после окончания команды до первой строки или символа, отличного от пробела. Первая — команда из обычного TeX, а вторая — специфичная для LaTeX.
Команда \ignorespaces часто используется при определении команд с помощью \newcommand, или \newenvironment, или \def. Приведённый ниже пример иллюстрирует это. Он позволяет пользователю показывать значения баллов за вопросы викторины в поле слева, но это неудобно, так как, как показано в списке enumerate, пользователи не должны вставлять пробел между командой и текстом вопроса.
\newcommand{\points}[1]{\makebox[0pt]{\makebox[10em][l]{#1~pts}}
\begin{enumerate}
\item\points{10}no extra space output here
\item\points{15} extra space between the number and the `extra'
\end{enumerate}
Решение состоит в переходе к этому.
\newcommand{\points}[1]{%
\makebox[0pt]{\makebox[10em][l]{#1~pts}}\ignorespaces}
Второй пример демонстрирует удаление пробелов в начале текста. Команды ниже позволяют пользователю единообразно добавлять заголовок к именам. Однако, если заголовок случайно начнётся с пробела, то \fullname воспроизведёт его.
\newcommand{\honorific}[1]{\def\honorific{#1}} % remember title
\newcommand{\fullname}[1]{\honorific~#1} % put title before name
\begin{tabular}{|l|}
\honorific{Mr/Ms} \fullname{Jones} \\ % no extra space here
\honorific{ Mr/Ms} \fullname{Jones} % extra space before title
\end{tabular}
Чтобы исправить это, измените на \newcommand{\fullname}[1]{\ignorespaces\honorific~#1}.
Команда \ignorespaces также часто используется в \newenvironment в конце условия begin, как в \begin{newenvironment}{env
name}{... \ignorespaces}{...}.
Чтобы удалить пробелы в конце окружения, используйте \ignorespacesafterend. Пример: это создаст гораздо больший вертикальный зазор между первым и вторым окружениями, чем между вторым и третьим.
\newenvironment{eq}{\begin{equation}}{\end{equation}}
\begin{eq}
e=mc^2
\end{eq}
\begin{equation}
F=ma
\end{equation}
\begin{equation}
E=IR
\end{equation}
Размещение символа комментария % сразу после \end{eq} устранит вертикальный зазор, но это неудобно. Решение — изменить на \newenvironment{eq}{\begin{equation}}{\end{equation}\ignorespacesafterend}.
© 2007–2018 Karl Berry
Public Domain Software
http://latexref.xyz/_005cignorespaces-_0026-_005cignorespacesafterend.html