Listings in PDF-Dokumenten

Schriftbild, Absätze und Auflistungen einstellen


Günther
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Do 28. Feb 2013, 19:05

Listings in PDF-Dokumenten

Beitrag von Günther »

Das Ziel ist, dass die abgebildeten Scripte in einem PDF-Dokument mittels Copy & Paste in einen Editor kopiert werden können. Hierbei kommt Debian Wheezy, der Editor Kate sowie Texlive 2013 zum Einsatz.

Das Problem sind mehrere Leerzeichen und Leerzeilen in einer verbatim-Umgebung. In dem PDF-Dokument werden die Leerzeichen und die Leerzeilen richtig dargestellt.

Nach mehreren Leerzeichen, wie in den Kommentaren, wird nach zwei Leerzeichen automatisch ein LF gesetzt. Dieses ist nicht im Adobe Reader (Windows 7) der Fall, aber mehrere Leerzeichen werden dort zu einem zusammengefasst.

Beim Versuch das Script zu kopieren, werden die Leerzeilen zwar richtig angezeigt aber
nicht mit kopiert.

Dieses Verhalten tritt auch unter verbatimbox, alltt und lstlisting auf. Es scheint sich hierbei um eine generelle Einstellung zu handeln. Nachdem ich viele Manuals gelesen habe weiss ich aber nicht mehr weiter.

\documentclass[%
	10pt,							% Schriftgröße
	ngerman,							% Sprachdatei
	openany,							% Keine Leerseiten erzeugen
	oneside							% einseitig
	]{scrbook} 	
	
\usepackage[T1]{fontenc} 				% Festlegung der Zeichentabelle
\usepackage[utf8]{inputenc} 		        	% Zeichenumwandlung 
\usepackage[ngerman]{babel}			% Mehrsprachigkeit 
\usepackage{upquote}					% bessere Darstellung für Maskierung 

\usepackage[%
	linktoc=section,		% Verlinkung im Inhaltsverzeichnis auf Section
	colorlinks=true,		% farbige Links statt Boxen um die Links
	pdftitle={test}, 
    pdfauthor={Günther Zander},	
    pdfsubject={},
    pdfcreator={LaTeX with pstricks, hyperref},   
    pdfproducer={LaTeX}, 
    pdfkeywords={Debian}{test}, % list of keywords
    pdftoolbar={true},		     % Anzeigen der Acrobat toolbar oder nicht
    pdfmenubar={true},     	     % Anzeigen des Acrobat menu oder nicht 
    linkcolor=black,		             % Farbe der Links setzen
    filecolor=black,
    urlcolor=blue,
    citecolor=black
    ]{hyperref}

\parindent0mm				% Absatzeinrückung abschalten

\begin{document}
\begin{verbatim}
#! /bin/bash
# ------------------------------------------------------
# Author:      Günther Zander, Hamburg, September 2013
# License:     GPL
# ------------------------------------------------------
   
_scrip2 "$@"
   
PAR="$@"
   
if [ "`expr index "$PAR" []`" != "0" ]; then
    sed -i 's/xxx/y/g' $2
fi
   
\end{verbatim}
\end{document}


Noch so einer

Beitrag von Noch so einer »

Abstände sind im PDF keine einzelnen Leerzeichen, sondern eben Abstände. Was der PDF-Viewer daraus dann beim Kopieren macht, hängt vom Viewer ab. Bis auf die mehrere Leerzeichen nach "Author:" und "License:" macht das Okular und Evince bei mir übrigens sehr gut.

Will man zuverlässige Daten zum Kopieren haben, sollte man den Quelltext als Annotation anfügen. Vermutlich kann man das für den AdobeReader mit einem der einschlägigen PDF-Feature-Paketen sogar recht hübsch machen.

BTW: Mit \parindent0mm schaltest Du nicht einfach nur den Absatzeinzug ab. Da Du im Gegenzug keinen Absatzabstand einschaltest, überlässt Du die Erkennbarkeit von Absätzen gänzlich dem Zufall. Das ist sicher keine gute Idee. Lies bitte in der KOMA-Script-Anleitung, was dort bei Option parskip zum Thema Absatzkennzeichnung geschrieben steht. Außerdem sollte man Längen ggf. mit \setlength setzen. Siehe dazu l2tabu. Und wenn Du schon dabei bist, will ich Dir auf Verdacht noch »Minimale Vorlage vs. maximale Probleme« nahe legen.

Antworten