Zeilenumbruch in CodeSnippets mit listings?

Schriftbild, Absätze und Auflistungen einstellen


Curio
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 4. Mai 2013, 15:12

Zeilenumbruch in CodeSnippets mit listings?

Beitrag von Curio »

Hallo Leute,

Bin ganz neu in LaTeX und führe meine ersten Gehversuche mit der neuesten Version der Distribution "ProTeXt" durch. Ein Grund für meine Hinwendung zu LaTeX war die Unmöglichkeit einer vernünftigen Formatierung von CodeSnippets.
Jetzt hänge ich hier allerdings auch etwas. Ich nutze zur Codeformatierung das Paket "listings". Das Paket funktioniert tadellos. Das Problem besteht darin, dass der Code im PDF zwar exakt so dargestellt wird, wie ich ihn eingebe, aber wenn ich ihn kopiere und in einen Editor eingebe, sind die Zeilenumbrüche verloren und ich bekomme eine lange erste Zeile. Erst eine Leerzeile im Code führt nach dem Kopiervorgang zu einem Zeilenumbruch in einem Editor.

Kann man den Code derart eingeben, dass man ihn aus einem Editor herauskopieren kann und original im Latex-Editor einfügen kann, jedoch eben auch umgekehrt, den kompilierten Text aus dem PDF dann wieder mit allen Zeilenumbrüchen in einen Editor (z.B. vim) zurück kopieren kann?

In einem anderen Thread hier hat jemand eine ähnliche Frage gestellt. Dort wurde geraten, den Code über angehängte Dateien einzufügen und das Kopieren aus PDF wäre eh etwas unsicher. Angehängte Dateien, wären für meine Belange ein zu umständlicher Weg (zu viele und sie liegen nicht auf meinem Rechner sondern auf einem Rootserver). Ich hoffe es gibt noch Latex-Lösungen für dieses Kopierproblem.

Hier das Minimalbeispiel:
\documentclass{scrbook}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{ngerman}

\usepackage{listings}

\begin{document}

\begin{lstlisting}

HOSTNAME srv.domain.de

PART /boot ext3 512M
PART swap swap 2G
PART lvm vg0 all

LV vg0 root / ext3 10G
LV vg0 tmp /tmp ext3 5G
LV vg0 home /home ext3 20G
LV vg0 srv /srv ext3 127G
LV vg0 var /var ext3 300G

\end{lstlisting}

\end{document}
MfG, Curio

Noch so einer

Beitrag von Noch so einer »

Das Problem ist zweigeteilt. Zunächst einmal hängt es vom Viewer ab, was beim Kopieren in der Zwischenablage landet. Ich habe mir das mal mit evince und mal mit okular angeschaut und die Ergebnisse sind nicht identisch.

Dann kommt es noch darauf an, was der Editor daraus macht, sprich wie er den Inhalt der Zwischenablage interpretiert.

Übrigens habe ich bei beiden Versuchen und mit zwei verschiedenen Editoren mit Deinem Beispiel mehrere Zeilen bekommen. Die Zeilenumbrüche waren aber nicht gleich und teilweise gab es zusätzliche Leerzeichen.

Da das also vom PDF-Viewer und vom verwendeten Editor abhängt, wirst Du auf dem Copy/Paste-Weg nur dann vorhersagen können, was am Ende im Editor ankommt, wenn Du sowohl den PDF-Viewer als auch den Editor genau kennst. Damit scheidet dieser Weg IMHO aus.

Curio
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Sa 4. Mai 2013, 15:12

Beitrag von Curio »

@Noch so einer
Du hast natürlich Recht mit Deiner Analyse. Ich bin zum gleichen Ergebnis gekommen.
Das nimmt mir jetzt leider komplett den Wind aus den Segeln. Ich hatte gehofft, hier einen entscheidenden Vorteil gegenüber normalen Textverarbeitungsprogrammen zu haben.
Damit scheidet dieser Weg IMHO aus.
Heißt das, dass es auch noch andere Wege gibt? Dann immer her damit.

Da der Sinn des Dokuments ist, Code zum Ausprobieren und Nachahmen bereitzustellen, muss er also einfach zu kopieren sein, ohne anschließende Formatierungsorgien im Editor. Gibt es mit LaTeX also einen Weg zu diesem Ziel oder bin ich hier völlig auf dem Holzweg?

So, wie die Situation sich im Moment für mich darstellt, ist LaTeX ein Layout- und Satzprogramm rein für den Druck. Für digitale Anwendungen auf PC, Tablet oder Smartphone (ebook?) mit unverfälschtem Kopierergebnis also nicht zu gebrauchen. Gibt's andere Ausgebeformate von LaTeX, die für meine Zwecke besser geeignet wären?
Wäre dieses Konzept in der heutigen Zeit nicht etwas altbacken? Ich dachte eher daran Inhalte einmal zu erstellen und dann mit unterschiedlichen Formatierungen sowohl für Print- als auch für digitale Medien zur Verfügung zu haben. Und gerade bei letzterem wäre eine Kopiermöglichkeit ganz wesentlich.
Da ich hier noch neu bin und die LaTeX-Welt noch nicht in ihrem ganzen Umfang überblicke wäre ich für etwas Aufklärung dankbar. Nicht dass ich mich hier sinnlos verrenne.

MfG, Curio
Zuletzt geändert von Curio am So 5. Mai 2013, 10:10, insgesamt 1-mal geändert.

Genmutant
Forum-Guru
Forum-Guru
Beiträge: 488
Registriert: Di 8. Jul 2008, 11:00
Wohnort: Augsburg

Beitrag von Genmutant »

Du kannst in PDFs auch komplette Dateien anhängen, wie bei emails. Vielleicht wäre das etwas?

BO-Studios

Re: Zeilenumbruch in CodeSnippets mit listings?

Beitrag von BO-Studios »

Für mich wäre das eine tolle Lösung. Ich stelle meinen Code im Anhang dar, und habe dafür die entsprechenden Code-Dateien (example.py) hochgeladen. Wenn ich nun mit etwas wie \href darauf verweisen könnte, und Latex die Codedateien in das exportierte PDF einbindet, wäre das großartig. Dann würde der Code im PDF grafisch dargestellt und mit einem Link „Code kopieren“ könnte er dann richtig formatiert kopiert werden.

ich meine ja nur

Re: Zeilenumbruch in CodeSnippets mit listings?

Beitrag von ich meine ja nur »

Du suchst eventuell das Paket attachfile2. Allerdings unterliegst du einem Irrtum. Die angehängte Datei wird natürlich nicht im PDF grafisch aufbereitet angezeigt. Dazu wiederum dienen eher Pakete wie listings oder minted.

Antworten