PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Perl in Listing



#cousin#
14-09-2009, 21:38
Hi Zusammen,

ich möchte gerne ein Perl-Skript in meine Diplomarbeit packen. Leider machen die $ Zeichen darin ziemliche Probleme.

Ich habe es in folgende Umgebung gepackt:


\begin{lstlisting}[breaklines, frame=shadowbox, framerule=2pt, framexleftmargin=5mm, rulesepcolor=\color{darkblue}, basicstyle=\small, language=perl]


aber leider interpretiert er die $ als Anfang/Ende einer Mathe-Umgebung. Das Escapen brachte leider auch nichts.

Habt ihr noch eine Idee, wie man Latex abgewöhnen kann, die $ zu interpretieren? bzw. wie man ein Perl-Skript in Latex anständig abbilden kann?

Für Antworten bin ich wie immer sehr dankbar!

Stefan_K
14-09-2009, 21:40
Hallo,

versuche es mal mit der Option mathescape=false.

Viele Grüße,

Stefan

#cousin#
14-09-2009, 21:43
kommt die in die listings-Umgebung, oder wo setze ich diese Option?

Stefan_K
14-09-2009, 21:52
Setze es in die eckigen Klammern nach \begin{lstlisting} oder mit \lstset.

Stefan

#cousin#
14-09-2009, 21:56
ok, das hab ich mir schon fast gedacht und auch gemacht.


\begin{lstlisting}[breaklines, frame=shadowbox, framerule=2pt, framexleftmargin=5mm, rulesepcolor=\color{grey}, basicstyle=\small, language=perl, mathescape=false]

Leider ohne Erfolg, er bringt mir immernoch die Meldung "! Missing $ inserted"

Stefan_K
14-09-2009, 22:11
Dann zeig am besten ein Minimalbeispiel (http://minimalbeispiel.de/mini.html), das wir testen und korrigieren können.

Stefan

#cousin#
14-09-2009, 23:31
Danke für die Mühe!

Im Anhang ist ein Minimalbeispiel (ich hoffe zumindest das es eins ist), mit den nötigsten Paketen und einem Auszug aus dem Perl-Skript.

Stefan_K
14-09-2009, 23:44
Das kann ein encoding-Problem sein. Du verwendest applemac- Eingabecodierung, versuch es mal mit latin1, damit lässt sich das Minimalbeispiel bei mir übersetzen.

Stefan

#cousin#
14-09-2009, 23:48
bei latin1 gehen bei mir leider keine Umlaute und Sonderzeichen (sind einige deutschen Quellen im Text mit solchen Zeichen), gibt es ein Encoding für Mac das Umlaute und Perl kann?

bzw. kann ich das Encoding für Teile der Arbeit ändern? Also applemac bis zum Perl-Script, dann latin1 für das eine Listing und danach wieder applemac?

Stefan_K
14-09-2009, 23:56
latin1 beherrscht auch Umlaute. Man könnte die Datei mit recode (http://texblog.net/hypertext-help/latex-tools/recode/) oder iconv (http://texblog.net/hypertext-help/latex-tools/iconv/) umwandeln, denn die Codierung der Datei muss mit der Codierungsangabe für inputenc zusammenpassen. Auf dem Mac geht auch utf8, doch das Problem ist wahrscheinlich das gleiche - das Grad-Symbol.
Bei mir funktionierte es, als ich die originale Datei in Kile auf Linux mit ISO8859-1 öffnete und mit latin1 übersetzte. utf8 hingegen gab das genannte Problem, applemac ebenfalls.

Stefan

Stefan_K
14-09-2009, 23:59
bzw. kann ich das Encoding für Teile der Arbeit ändern? Also applemac bis zum Perl-Script, dann latin1 für das eine Listing und danach wieder applemac?

Mischen geht vmtl. nicht so einfach. Man könnte jedoch das perl-Listing mit anderer Codierung in ein separates pdf file compilieren und das mit pdfpages einbinden.

Stefan


--
TeXblog (http://texblog.net)

#cousin#
15-09-2009, 00:03
Vielen vielen Dank Stefan!!!!

der Tip mit dem Grad-Symbol war die Lösung. Einfach das Symbol geändert (war zuvor eh das Falsche) und schon läuft es auch mit applemac wunderbar durch!

u_fischer
15-09-2009, 10:12
Falls das Gradsymbol wirklich ein Gradsymbol sein sollte, dann war das Listing nicht als applemac kodiert, sondern latin1 oder ansinew oder sowas. Es war nämlich das Zeichen ASCII 176, das in applemac zu \infty wird. Daher versuchte listings auch immer in den Mathemodus zu wechseln.

Du kannst für listings lokal das Encoding wechseln mit
\begin{lstlisting}[inputencoding=ansinew, ...