benutzerdefinierter Zeilenumbruchstil in Umgebungen

benutzerdefinierter Zeilenumbruchstil in Umgebungen

Ich möchte jeder neuen Zeile etwas hinzufügen, etwa Folgendes:

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

und ich möchte, dass Latex es folgendermaßen rendert:

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

Wie mache ich es?

Antwort1

Wie Henri Menke sagt, ^^Mist der Trick riskant, aber er funktioniert im Notfall. Ich habe dies bearbeitet, um Folgendes zu verwenden \obeylines(im Wesentlichen gleichwertig und riskant), was den Code ein wenig vereinfacht. Ich habe auch die \makeatletter...- \makeatotherBefehle entfernt. Ich habe den Code leicht geändert, sodass Sie den hinzugefügten Text spontan angeben können:

\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}

Eine letzte Änderung. Das Original wurde verwendet \newline, wodurch keine neuen Absätze beginnen. Ich habe es ersetzt, \parwas wiederum alle möglichen interessanten Formatierungen ermöglicht:

Bildbeschreibung hier eingeben

Antwort2

Ich verwende ein aktives Zeilenendezeichen ^^M. Das istnichteine gute Lösung, aber es funktioniert.

\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}

Bildbeschreibung hier eingeben

verwandte Informationen