Seite 1 von 1

E-Mails setzen

Verfasst: Fr 22. Jul 2011, 21:52
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}

Verfasst: Sa 23. Jul 2011, 11:32
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.