PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verschiedene Listings und kryptische Zeichen



Tux
19-07-2010, 11:06
Hallo,

ich nutze C# als Programmiersprache und möchte zusätzlich SQL Code darstellen.

Wie kann ich jeder Sprache verschiedene Stile zuweisen und diese dann einbinden? (Ich stelle mir zwei Definitonspaare in der Preamble vor, die dann mit lstinputlisting[language=SQL oder {[Sharp]C}] pro Einbindung gesteuert werden.)

Wenn ich mit lstinputlisting C#-Code (xyz.cs) einbinde, wird in der ersten Zeile folgendes dargestellt:

using System.Collections.Generic;

Diese kryptischen Zeichen zu Beginn sind mir rätselhaft. Wie kann ich dies abstellen?

Viele Grüße,

tux

DieterH
20-07-2010, 16:27
using System.Collections.Generic;

Diese kryptischen Zeichen zu Beginn sind mir rätselhaft. Wie kann ich dies abstellen?

Bei den "kryptischen" Zeichen handelt es sich um eine 3 Oktetts lange Sequenz, die zu Beginn einer Textdatei (plain text) steht und mit der allen diese Datei verarbeitenden Programmen (z.B. Editoren) mitgeteilt wird, dass der Inhalt der Datei in UTF8-Kodierung vorliegt.

Folgerichtig musst Du also in Deiner Präambel die Kodierung auf UTF8 festlegen. UTF8s sollte eigentlich "überall" Standard sein, zumindest ist dies auf qualifizierten Betriebssystemen (z.B. Linux) der Fall.

Ich kann Dir aus dem Stegreif nicht die genauen Anweisungen herunterschreiben, wie TeX/LaTeX mitgeteilt wird, dass die Kodierung UTF8 ist. Entweder Du googelst, oder Du wartest, bis ich Dir heute abend die entsprechende Anweisung nachreiche.

Gruss
Dieter

Schweinebacke
20-07-2010, 18:09
utf8 stellt man bei LaTeX natürlich mit
\usepackage[utf8]{inputenc} ein. Bei xelatex und lualatex ist utf8 hingegen die erwartete Codierung.

Das Paket listings hat aber seine liebe Mühe mit utf8. Deshalb gibt es das Paket listingsutf8 (http://ctan.org/pkg/listingsutf8). Die UTF-8-BOM-Markerbytes wird man damit aber vermutlich nicht los werden. Wenn man den Quellcode nicht alternativ auch ohne diese speichern kann, wird das eventuell ein Problem werden. Dann muss man die per Nachbearbeitung entfernen.

Schweinebacke
20-07-2010, 18:17
Wie kann ich jeder Sprache verschiedene Stile zuweisen und diese dann einbinden? (Ich stelle mir zwei Definitonspaare in der Preamble vor, die dann mit lstinputlisting[language=SQL oder {[Sharp]C}] pro Einbindung gesteuert werden.)

Mach es umgekehrt. Definiere zwei Stile (siehe \lstdefinestyle in der listings-Anleitung), bei denen die Sprache bereits als Option enthalten ist, also etwas wie:
\lstdefinestyle{SQL}{language=SQL,basicstyle=\colo r{magenta}}
\lstdefinestyle{SharpC}{language=[Sharp]C,basicstyle=\color{cyan}} (die Farben sind natürlich Quatsch, aber mir ist gerade nicht sinnvolles eingefallen). Dann kannst Du nachher einfach
\lstinputlisting[style=SQL]{foo.sql} und
\lstinputlisting[style=SharpC]{foo.c} verwenden.

Tux
20-07-2010, 20:57
ja, besten dank ... hab ne andere lösung gefunden, indem ich die quelldatei umcodiert habe "UTF-8 ohne BOM" ... dann hauts hin.

grüße

Tux
21-07-2010, 15:02
toll, jetzt hab ich das problem, dass umlaute in z.b. strings nicht gescheit dargestellt werden.

habe schon was mit listingsutf8 probiert, aber das generiert zahlreiche fehler. hat einer für den fall eine idee??

grüße!

u_fischer
21-07-2010, 15:41
Finde entweder raus, was bei listingsutf8 falsch läuft, oder speichere deine listings in irgendeiner 8-bit-Kodierung.