E-Mails setzen

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


skater
Forum-Guru
Forum-Guru
Beiträge: 356
Registriert: Do 12. Mär 2009, 14:34
Wohnort: Berlin

E-Mails setzen

Beitrag von skater »

Ich möchte in einem Text ein paar Mails zur Anschauung setzen. Leider konnte ich dabei meine vielfältigen Wünsche mit eigenen Mitteln bislang noch nicht verwirklichen.
  1. Ein Rahmen um die gesamte Mail zur Kennzeichnung. Aber da gibt es genügend Möglichkeiten. Ich kenne zwar einige (mdframed), aber ich weiß nicht, wo es vielleicht mit andern Wünschen Probleme gibt.
  2. Schön wäre es, wenn der Text ab dem Trenner in grau gezeichnet wäre. Vielleicht kann man da ein Paket für Quelltexte für verwenden.
  3. Bei Antworten hätte ich gerne wie in einem guten Mail-Programm statt der Größer-Zeichen farbige Balken. Diese sollten auch oben und unten etwas überstehen und mit verschachtelten Antworten funktionieren.
Schlimmstenfalls müsste ich entsprechende Mails als PNG einfügen. Da würde ich mich aber gerne – aus mehreren Gründen – vor drücken.
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[german]{babel}
\usepackage{lmodern,xcolor,alltt}

\begin{document}
\begin{alltt}\small
Lieber Oskar,
 
Oskar schrieb:
\rule[-2pt]{1pt}{\baselineskip} 2 + 2 = 4

 
das stimmt doch gar
nicht. Richtig ist 5.

Viele Grüße, Max
\color{gray}-- 
Maren und Max Mustermann
Musterstr. 8, 12345 Musterstadt, Deutschland
Tel.: +49 333 88888, Fax: +49 333 88999
Internet: www.example.com  E-Mail: mustermann@example.com
\end{alltt}
\end{document}

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2779
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Beitrag von KOMA »

Die ersten beiden Fragen hast Du Dir ja eigentlich schon selbst beantwortet. Ich verstehe nicht ganz, was da an Fragen bleibt. Was nun fehlt ist die quote-Geschichte. Da könnte ich Dir beispielsweise folgendes bieten:
\documentclass{scrartcl}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}% german ist veraltet!
\usepackage[xcolor={}]{mdframed}
\usepackage{lmodern,alltt}

\newcounter{quotemark}
\makeatletter
\newcommand*{\quotemark}{%
  \@tempcnta=\z@
  \@whilenum \@tempcnta <\value{quotemark}\do{%
    \ifcase \@tempcnta
      \color{blue}\or \color{brown}\or \color{cyan}\or \color{green}\or
      \color{lime}\or \color{magenta}\or \color{olive}\else \color{red}\fi
    \rule[-\dp\strutbox]{1pt}{\baselineskip}\kern-1pt\nobreakspace
    \advance\@tempcnta by \@ne
  }%
}
\newcommand*{\emailinit}{\small
  \setcounter{quotemark}{0}%
  \renewenvironment*{quote}[1]{%
    \stepcounter{quotemark}%
    ##1 schrieb:%
    \ifnum\value{quotemark}=\@ne
      \everypar \expandafter{\the\everypar \unpenalty \quotemark}%
    \fi
  }{\vskip-\baselineskip}%
  \ignorespaces
}

\begin{document}
\begin{mdframed}
\begin{alltt}\emailinit
Lieber Oskar,
 
\begin{quote}{Oskar}
2 + 2 = 4

\begin{quote}{Peter}
4 + 4 = 8
\end{quote}
\end{quote}
 
das stimmt doch gar
nicht. Richtig ist 5.

Viele Grüße, Max
\color{gray}--
Maren und Max Mustermann
Musterstr. 8, 12345 Musterstadt, Deutschland
Tel.: +49 333 88888, Fax: +49 333 88999
Internet: www.example.com  E-Mail: mustermann@example.com
\end{alltt}
\end{mdframed}
\end{document}
Die quote-Farben kannst Du Dir natürlich beliebig einstellen und auch zusätzliche Ebenen hinzufügen. Wichtig ist, dass \end{quote} in einer eigenen Zeile steht, weil ich die dadurch entstandene Leerzeile im \end-Teil per negativen \vskip extra wieder beseitigt habe. Ebenso muss \begin{quote} in einer eigenen Zeile stehen, weil ich nach der Einleitungszeile keinen Zeilenvorschub eingebaut habe, um den Zeilenvorschub, der durch \begin{quote} entsteht, zu beseitigen.

Die \everypar-Anweisung habe ich übrigens aus der alltt-Definition geklaut und lediglich um mein \quotemark ergänzt.

Natürlich könntest Du Dir auch ein \signature definieren, dass sowohl das Trennzeichen setzt als auch die Farbe umschaltet.

Antworten