Hey, ich bereite gerade einige Einladungs-Emails vor. Diese schreibe ich in LaTeX. Meine Idee ist es, dass ich nur noch den Text aus einer PDF kopieren und in eine Email einfügen muss. Ich nutze den Email-Client Thunderbird.

Das Problem ist, dass ich nicht genau weiß, wie ich die Absätze erzwingen soll.

Nach meinem Kopieren sieht die Email gerade so aus:

4x4is18_Ist

Ich möchte aber, dass es so aussieht:

4x4is18_Soll

Falls ein Minimalbeispiel erwünscht ist, poste ich auch gerne eins.

Habe schon verschiedene Varianten mit \newline, \par, ~ ausprobiert. Leider ohne Erfolg. Das was ich sonst so an LaTeX liebe steht mir gerade im Weg.

Grüße 4x4is18

gefragt 17 Mär '15, 16:13

4x4is18's gravatar image

4x4is18
1111
Akzeptiert-Rate: 0%

bearbeitet 17 Mär '15, 18:43

saputello's gravatar image

saputello
11.1k174365

1

Hallo und willkommen. Wir wollen immer ein Minimalbeispiel. Und das nicht nur, weil LaTeX-Supporter effizient arbeiten müssen.

(17 Mär '15, 16:26) Johannes
1

Ich versteh ehrlich gesagt deinen Workflow nicht. Du willst plain Text mit LaTeX auszeichnen, in eine pdf kompilieren und danach durch Kopieren von Inhalten aus einer pdf (was nie wirklich gut ist) wieder plain Text erhalten? Erklär bitte ein wenig in deiner Frage..

(17 Mär '15, 16:32) Johannes

@4x4is18: Das Problem ist, glaube ich, bekannt. Kommt vermutlich auch auf den PDF-Viewer usw. an. Im Prinzip ist das dann kein echtes LaTeX-Problem (?).

Um ein LateX-Problem daraus zu machen, würde ich eine Frage vorschlagen wie z.B. "Wie kompliere ich ein TeX-Dokument so, dass ich neben der PDF auch eine Nur-Text-Version (in einer Textdatei) erhalte?"

(17 Mär '15, 17:11) cis

@Johannes danke für deine Antwort. Mein Workflow ist: aus der Quelldatei eine PDF zu erzeugen, die durch Variablen und Kontrollstrukturen anpassbare Einladungen erzeugt. Dann aus der PDF Den Text mit richtigen Datum, Teilnehmer, Ort, Uhrzeit und individuellen Aufgaben kopieren und eine Email verschicken.

Ich habe auch schon überlegt ob es an dem PDF-Viewer liegt aber @saputello hat da eine sehr ausführliche Antwort zu geschrieben.

Nur Text-Version ist auch nicht gut, da ich variablen verwende und dann könnte ich es auch aus der Quelldatei kopieren.

@cis danke für deine Antwort :)

(17 Mär '15, 19:19) 4x4is18
2

Wenn Du LaTeX verwenden willst, um Text- statt PDF-Dateien zu erzeugen, dann schau Dir eventuell mal »Wie schreibe ich vom Dokument aus bestimmte Texte in eine Extra-Datei« an. Ansonsten würde ich das eher mit sed oder awk lösen.

(17 Mär '15, 19:25) saputello

Du schreibst, die pdf erzeugt die verschiedenen Variablen (klingt zumindest so). Das wäre eher untypisch. Kannst du mit deinem aktuellen Arbeitsablauf keine Textdateien schreiben? Wenn die Variablenersetzung bereits auf LaTeX-Ebene geschieht, siehe @saputellos Kommentar, wenn auf Ebene einer Scriptsprache, dann siehe @saputellos Kommentar ;-). sed, awk, Lua, perl ... Die Liste ist endlos.

(17 Mär '15, 20:41) Johannes
Ergebnis 5 von 6 show 1 more comments

Man kann die tolle Idee von Ulrike auch noch etwas ausbauen, beispielsweise zu:

Open in Online-Editor
\documentclass{article}
\usepackage{accsupp}
\usepackage[pdfencoding=auto]{hyperref}
\usepackage{environ}
\usepackage{parskip}

\newcommand*{\DuDa}{mein Freund Peter}

\NewEnviron{parbecomesemptyline}{%
  \begingroup
    \def\par{^^J^^J}%
    \long\xdef\aBODY{\BODY}%
  \endgroup
  \BeginAccSupp{method=pdfstringdef,unicode,ActualText=\aBODY}\BODY\EndAccSupp{}
}

\begin{document}
\begin{parbecomesemptyline}
Hallo \DuDa.

Und noch eine Zeile.
\end{parbecomesemptyline}
\end{document}

Ich habe mir erlaubt, dabei auch gleich die Expansion von Variablen in Form von Makros – im Beispiel \DuDa – zu zeigen. Das Ergebnis nach einem Copy&Paste aus dem PDF wäre dann:

Hallo mein Freund Peter.

Und noch eine Zeile.

Permanenter link

beantwortet 18 Mär '15, 11:13

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 18 Mär '15, 11:18

Das ist natürlich gepfuscht:

Open in Online-Editor
\documentclass{article}
\usepackage{accsupp}
\begin{document}
Das ist Text.

\BeginAccSupp{method=hex,unicode,ActualText=2063}leere Zeile\EndAccSupp{}

Und das ist wieder Text
\end{document}
Permanenter link

beantwortet 18 Mär '15, 10:50

Ulrike%20Fischer's gravatar image

Ulrike Fischer
3.6k23
Akzeptiert-Rate: 52%

TeX baut für vertikale Abstände in das PDF keine Leerzeilen ein, sondern setzt die vertikale Position des Folgetextes entsprechend. Genauso werden übrigens auch horizontale Abstände nicht durch eine Anzahl von Leerzeichen überbrückt, sondern eben durch horizontale Positionen. Selbst, wenn man unsichtbares Material in die Leerzeilen packt, wird das normalerweise beim Kopieren von den PDF-Viewern nicht mit kopiert. Kopiert man also beispielsweise aus dem PDF von

Open in Online-Editor
\documentclass{article}

\begin{document}
Das ist Text.

\mbox{~}

~

\rule{0pt}{\baselineskip}

Und das ist wieder Text

\begin{verbatim}
Eine Zeile.

Und dann noch eine.
\end{verbatim}
\end{document}

den Text heraus, so erhält man nur:

Das ist Text.
Und das ist wieder Text
Eine Zeile.
Und dann noch eine.
Selbst bei einen Dokument wie:

Open in Online-Editor
\documentclass{article}

\begin{document}
\begin{flushleft}
Bitte eintragen:\\
\underline{\hspace{\textwidth}}\\
\underline{\hspace{\textwidth}}\\
\underline{\hspace{\textwidth}}\\
\end{flushleft}
Und das ist wieder Text

\end{document}

erhält man in der Regel nur die beiden Textzeilen:

Bitte eintragen:
Und das ist wieder Text
Natürlich könnte man Einladungen auch als PDF erstellen und dann als PDF-Anhang in E-Mails kopieren. Dabei kann man auch Formulare mit hyperref oder Paketen wie formular erstellen. Bei Puristen wie mir würde man sich damit allerdings wenig Freunde machen. Wir wollen einfach nur Text per E-Mail.

Wenn man keinen Wert auf Copy&Paste legt, kann man natürlich statt eines PDFs eine DVI-Datei erzeugen und mit dvi2tty daraus eine Textdatei erzeugen. Dieses Programm arbeitet mit einer Heuristik, um vertikale Abstände in Leerzeilen umzuwandeln. Um die Ausgabe zu verbessern sollte man dann in diesem Fall mit mit Flattersatz ohne Trennung (\raggedright) und einer maximalen Zeilenlänge arbeiten, wie man sie im E-Mail-Programm später auch verwendet. Das geht am einfachsten mit einer nicht-proportionalen Schrift (\ttfamily). So wird aus:

Open in Online-Editor
\documentclass[parskip=half-]{scrartcl}
\renewcommand{\familydefault}{\ttdefault}
\normalfont\raggedright
\areaset{30em}{\dimexpr 40\baselineskip+\topskip\relax}
\usepackage{blindtext}
\begin{document}
\blindtext

\blindtext
\end{document}

nach dem latex-Lauf und dem Aufruf von dvi2tty:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Etiam lobortis facilisis sem.   Nullam nec mi et neque
pharetra sollicitudin.   Praesent imperdiet mi nec ante.
Donec ullamcorper, felis non sodales commodo, lectus velit
ultrices augue, a dignissim nibh lectus placerat pede.
Vivamus nunc nunc, molestie ut, ultricies vel, semper in,
velit.   Ut porttitor.   Praesent in sapien.   Lorem ipsum
dolor sit amet, consectetuer adipiscing elit.   Duis
fringilla tristique neque.   Sed interdum libero ut metus.
Pellentesque placerat.   Nam rutrum augue a leo.   Morbi sed
elit sit amet ante lobortis sollicitudin.   Praesent blandit
blandit mauris.   Praesent lectus tellus, aliquet aliquam,
luctus a, egestas a, turpis.   Mauris lacinia lorem sit amet
ipsum.   Nunc quis urna dictum turpis accumsan semper.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam lobortis facilisis sem. Nullam nec mi et neque pharetra sollicitudin. Praesent imperdiet mi nec ante. Donec ullamcorper, felis non sodales commodo, lectus velit ultrices augue, a dignissim nibh lectus placerat pede. Vivamus nunc nunc, molestie ut, ultricies vel, semper in, velit. Ut porttitor. Praesent in sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis fringilla tristique neque. Sed interdum libero ut metus. Pellentesque placerat. Nam rutrum augue a leo. Morbi sed elit sit amet ante lobortis sollicitudin. Praesent blandit blandit mauris. Praesent lectus tellus, aliquet aliquam, luctus a, egestas a, turpis. Mauris lacinia lorem sit amet ipsum. Nunc quis urna dictum turpis accumsan semper.

Ähnliche Ergebnisse aus der PDF-Datei gibt es mit

Open in Online-Editor
\documentclass[parskip=full-]{scrartcl}
\renewcommand{\familydefault}{\ttdefault}
\normalfont\raggedright
\areaset{30em}{\dimexpr 40\baselineskip+\topskip\relax}
\usepackage{blindtext}
\begin{document}
\blindtext

\blindtext
\end{document}

Wenn man pdftotext mit Option -layout aufruft:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
Etiam lobortis facilisis sem. Nullam nec mi et neque
pharetra sollicitudin. Praesent imperdiet mi nec ante.
Donec ullamcorper, felis non sodales commodo, lectus velit
ultrices augue, a dignissim nibh lectus placerat pede.
Vivamus nunc nunc, molestie ut, ultricies vel, semper in,
velit. Ut porttitor. Praesent in sapien. Lorem ipsum
dolor sit amet, consectetuer adipiscing elit. Duis
fringilla tristique neque. Sed interdum libero ut metus.
Pellentesque placerat. Nam rutrum augue a leo. Morbi sed
elit sit amet ante lobortis sollicitudin. Praesent blandit
blandit mauris. Praesent lectus tellus, aliquet aliquam,
luctus a, egestas a, turpis. Mauris lacinia lorem sit amet
ipsum. Nunc quis urna dictum turpis accumsan semper.

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam lobortis facilisis sem. Nullam nec mi et neque pharetra sollicitudin. Praesent imperdiet mi nec ante. Donec ullamcorper, felis non sodales commodo, lectus velit ultrices augue, a dignissim nibh lectus placerat pede. Vivamus nunc nunc, molestie ut, ultricies vel, semper in, velit. Ut porttitor. Praesent in sapien. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Duis fringilla tristique neque. Sed interdum libero ut metus. Pellentesque placerat. Nam rutrum augue a leo. Morbi sed elit sit amet ante lobortis sollicitudin. Praesent blandit blandit mauris. Praesent lectus tellus, aliquet aliquam, luctus a, egestas a, turpis. Mauris lacinia lorem sit amet ipsum. Nunc quis urna dictum turpis accumsan semper.

Wie man an den unterschiedlichen Einstellungen von Option parskip sieht, sind die verwendeten Heuristiken nicht in beiden Fällen gleich und auch nicht wirklich zuverlässig.

Insgesamt denke ich nicht, dass Du in dem Fall mit LaTeX viel Freude haben wirst. Wenn Du Textvorlagen für E-Mails haben willst, solltest Du daher besser direkt eine Text-Datei dafür erstellen und aus dieser kopieren. Platzhalter kann man ggf. mit Hilfe von Suchen/Ersetzen, sed oder awk ersetzen.

Permanenter link

beantwortet 17 Mär '15, 17:50

saputello's gravatar image

saputello
11.1k174365
Akzeptiert-Rate: 51%

bearbeitet 17 Mär '15, 20:34

3

Ich meine auch, in einer Mail sollte nur Text stehen. Wenn der Empfänger die Formate nicht erkennt, war sowieso alles für die Katz.

(17 Mär '15, 18:15) cis

Das ganze als PDF zu verschicken macht wirklich wenig Sinn. Da ich 12 sehr ähnliche Einladungen verschicke war die Idee, dass ich es aus der PDF kopiere. Mit Variablen und ein paar Kontrollstrukturen kann ich den Text sehr schnell und effizent anpassen. Ich werde es dann dabei belassen und die Leerzeilen manuell einfügen. Eine umsetzung mit HTML wäre noch denkbar, würde nun aber den Arbeitsaufwand sprengen.

Erst einmal danke für deine Anwort. Du hast sehr klare Worte für mein Porblem gefunden.

Und nochmal an alle Anderen: Danke für eure mithilfe :).

Grüße 4x4is18

(17 Mär '15, 19:13) 4x4is18

Das nervt mich nun. Muss doch eine Lösung geben. Herausforderung angenommen!

(17 Mär '15, 19:20) 4x4is18

Das ist m.E. nun wirklich kein Latex-Problem und es sollte auch nicht mit Latex -> PDF -> Text gelöst werden. Dazu ein paar Fragen: Wie erzeugst Du denn deine Latex-Dateien, die Du dann kompilierst? Manuell oder automatisch via Programmierung?

(18 Mär '15, 09:33) dzaic

@saputello Entschuldige bitte, mir ist da ein Fehler unterlaufen. Mein Kommentar war nicht auf deinen Artikel gemünzt, sondern auf die Vorgehensweise von 4x4is8. Werde das in Zukunft deutlicher hervorheben. Du hast es ja auch ebenfalls in deinem Artikel erkannt: "Wenn Du Textvorlagen für E-Mails haben willst, solltest Du daher besser direkt eine Text-Datei dafür erstellen und aus dieser kopieren." Sorry!

(18 Mär '15, 10:59) dzaic
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×2
×1

gestellte Frage: 17 Mär '15, 16:13

Frage wurde gesehen: 11,054 Mal

zuletzt geändert: 18 Mär '15, 11:18