пользовательский стиль новой строки в средах

пользовательский стиль новой строки в средах

Я хочу добавить что-нибудь к каждой новой строке, например:

\documentclass{article}
\newenvironment{mystuff}{dark magic goes here}{or here}
\begin{document}
\begin{mystuff}
first row
second row
\end{mystuff}
\end{document}

и я хочу, чтобы Latex отображал это так:

first row -and this was added by mystuff environment
second row -and this was added by mystuff environment

Как мне это сделать?

решение1

Как говорит Анри Менке, ^^Mтрюк рискованный, но он работает в крайнем случае. Я отредактировал это, чтобы использовать \obeylines(по сути эквивалентно и рискованно), что немного упрощает код. Я также удалил команды \makeatletter.... \makeatotherЯ немного изменил код, чтобы вы могли указать на лету текст, который добавляется:

\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{blindtext}

%\def\specialccr{\mytext\newline}
\def\specialccr{\mytext\par}

{\obeylines
    \gdef\specialcr{\obeylines \let^^M=\specialccr}%
}

\newenvironment{mystuff}[1]{%
    \def\mytext{#1}%
    \parindent0pt
    \leftskip3em
    \everypar={$\bullet$\ }
    \par
    \noindent
    \specialcr}{%
}

\begin{document}
\blindtext[1]

\begin{mystuff}{\ -- and this was added by mystuff environment}% <- % Necessar
first row
second row
third row
\end{mystuff}

\blindtext[1]
\end{document}

Последняя правка. Оригинал использовался \newline, который не начинает новые абзацы. Я заменил, \parчто в свою очередь позволяет использовать всевозможное интересное форматирование:

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

решение2

Я использую активный символ конца строки ^^M. Этонетхорошее решение, но оно работает.

\documentclass{article}
\pagestyle{empty}% for cropping
\usepackage{blindtext}
\makeatletter
\def\special@cr{!\newline}
{\catcode`\^^M=\active%
    \gdef\specialcr{\catcode`\^^M=\active \let ^^M=\special@cr}%
}
\makeatother
\newenvironment{mystuff}{\par\noindent\specialcr}{}
\begin{document}
\blindtext[1]
\begin{mystuff}% You will want to suppress the ^^M here.
first row
second row
\end{mystuff}
\blindtext[1]
\end{document}

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

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