Можно ли изменить команды TeX/LaTeX так, чтобы определенные команды выполнялись до/после абзаца? Например, мы знаем, что когда компилятор LaTeX видит команду \par или строку пробела, он заканчивает текущий абзац и переходит в вертикальный режим (?).
Итак, я ищу команду, которую я мог бы изменить так, чтобы я мог ввести
%redefine some commands up here
\begin{document}
Paragraph 1
Paragraph 2
\end{document}
и заставить его выдавать тот же результат, что и
\begin{document}
$\triangle$Paragraph 1
$\triangle$Paragraph 2
\end{document}
Другим связанным вопросом будет также создание выходных данных, подобных
\begin{document}
Paragraph 1$\square$
Paragraph 2$\square$
\end{document}
решение1
Переопределять \par
глобально очень опасно. Но ограничено средой, можно добавить некоторые элементы без написания какой-либо команды. Пример:
(не гарантия безопасности в реальном документе)
\documentclass{article}
\usepackage{xcolor}
\newenvironment{crazypar}{%at begin
\smallskip
\def\par{%
\pdfprimitive\par\noindent\rule{\textwidth}{0.4mm}%
\pdfprimitive\par\makebox[-2em][c]{\color{red}$\triangle$}\hspace{1.5em}
}}%
{%at end
\newline\noindent\rule{\textwidth}{0.4mm}
}
\begin{document}
This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text.
This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text.
This is a dummy text. This is a dummy text.
\begin{crazypar}
This is a dummy text.
This is a dummy text. This is a dummy text. This is a dummy text.
This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text.
This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text. % no blank line here
\end{crazypar}
This is a dummy text. This is a dummy text. This is a dummy text. This is a dummy text.
\end{document}