Java listings und Umlaute

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Java listings und Umlaute

von u_fischer » Fr 21. Jun 2013, 12:23

\usepackage[utf8, ansinew]{inputenc}
Lass das ansinew weg. Deine Hauptdatei ist doch utf8 kodiert.

von Jan45 » Fr 21. Jun 2013, 11:05

u_fischer hat geschrieben:
Jan45 hat geschrieben: \lstinputlisting{test.java}
[/code]
Im Dokument erscheint nur //, die datei test. java besteht aus //ÖöÄäÜüß
Dann ist die test.java nicht utf8 kodiert sondern z.B. ansinew. Dann musst du sowas machen:
\inputencoding{ansinew}
\lstinputlisting{test.java}
\inputencoding{utf8}
Vielen Dank, jetzt funktionierts. Falls mal jemand ein ähnliches Problem hat, so hats letztendlich geklappt:
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8, ansinew]{inputenc}
\usepackage{listings}

\begin{document}
\lstset{language=java,
breaklines=true,
extendedchars=true,basicstyle=\ttfamily,literate=% 
}
\inputencoding{ansinew}
\lstinputlisting{test.java}
\inputencoding{utf8}
ö
\end{document}

von u_fischer » Fr 21. Jun 2013, 10:54

Jan45 hat geschrieben: \lstinputlisting{test.java}
[/code]
Im Dokument erscheint nur //, die datei test. java besteht aus //ÖöÄäÜüß
Dann ist die test.java nicht utf8 kodiert sondern z.B. ansinew. Dann musst du sowas machen:
\inputencoding{ansinew}
\lstinputlisting{test.java}
\inputencoding{utf8}

von Jan45 » Fr 21. Jun 2013, 10:44

Erstmal danke für die schnellen Antworten.
Ich habe das nicht mit input gemacht, um das Beispiel kurz zu halten.
\begin{filecontents*}{unicodetest.tex} 
   ö ä ü ß
\end{filecontents*} 
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listingsutf8}

\begin{document}
\lstset{language=java,
inputencoding=utf8/ansinew,
breaklines=true,
extendedchars=true,basicstyle=\ttfamily,literate=% 
}
\lstinputlisting{test.java}
\end{document}
Im Dokument erscheint nur //, die datei test. java besteht aus //ÖöÄäÜüß

von Johannes_B » Fr 21. Jun 2013, 09:41

u_fischer hat geschrieben:listingsut8 funktioniert nur, wenn das listings in einer externen Datei ist.
Vollkommen richtig, das steht so auch in der Dokumentation.
\begin{filecontents*}{unicodetest.tex}
   ö ä ü ß
 \end{filecontents*}

\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listingsutf8}
\usepackage{filecontents}
\begin{document}
\lstset{language=java,
  inputencoding=utf8/latin1,
  breaklines=true
}
\lstinputlisting{unicodetest.tex}
\end{document} 

von u_fischer » Fr 21. Jun 2013, 09:38

listingsut8 funktioniert nur, wenn das listings in einer externen Datei ist.

Du kannst aber die literate-Option in listings benutzen. Das funktioniert eigentlich immer:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\begin{document}
\lstset{extendedchars=true,basicstyle=\ttfamily,literate=%
    {Ä}{{\"A}}1%
    {Ö}{{\"O}}1%
    {Ü}{{\"U}}1%
    {ä}{{\"a}}1%
    {ö}{{\"o}}1%
    {ü}{{\"u}}1%
    {ß}{{\ss}}1%
}

\begin{lstlisting}
öäü
\end{lstlisting}
\end{document}

von Jan45 » Fr 21. Jun 2013, 09:30

Hey,
danke für deine Antwort, die Fehlermeldung ist schon weg, aber es funktioniert noch nicht ganz richtig. Wenn ich das richtig verstanden habe sollte es so aussehen (hoffe das geht als Minimalbeispiel durch):
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listingsutf8}

\begin{document}
\lstset{language=java,
inputencoding=utf8/latin1,
breaklines=true
}
\begin{lstlisting}
ö
\end{lstlisting}
\end{document}
Als Ausgabe erhalte ich aber kein ö, sondern ein komisches Zeichen.

von Johannes_B » Fr 21. Jun 2013, 07:58

Hallo,

bitte informiere dich, was iputenc ist. Die Option muss muss mit der Codierung deines Dokumentes übereinstimmen. Neuere Editoren verwenden meist utf8 als Standard.
Passt das ganze nicht zusammen, dann werden Umlaute/Sonderzeichen falsch dargestellt.

Das Paket listings arbeitet mit utf8 nicht so wirklich zusammen, deshalb die Erweiterung listingsutf8.

Schau dir bitte auch an was Minimalbeispiele sind, und wozu sie dienen.

Die Optionen pdftex/dvips solltest du übrigens weglassen.

Java listings und Umlaute

von Jan45 » Fr 21. Jun 2013, 01:22

Hallo,
Ich habe einmal einen mathematischen Text in Latex geschrieben und dabei das Paket [uft8]{inputenc} benutzt, alles ohne Probleme.
Jetzt wollte ich ein Dokument schreiben, das auch Java Codes beinhaltet. Dazu musste ich von uft8 auf ansinew wechseln, damit Umlaute richtig eingefügt werden. Soweit auch alles ok. Will ich jetzt aber normalen Text, abseits der Listings-Umgebung schreiben, funktioniert das mit ansinew nicht. Erstens erkennt er keine Umlaute mehr und zweitens werden in definitions, etc die Zeilen nicht mehr umgebrochen, sprich es wird in eine Zeile geschrieben bis kein Platz mehr ist und den Rest kann man nicht sehen.
Ich sitze seit mehreren Stunden an diesem Problem und konnte nichts sinnvolles dazu finden. Ich wäre sehr dankbar, wenn jemand das Problem lösen kann.
Hier der Anfang meines Dokumentes:
\documentclass[a4paper]{article}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{empheq}
\usepackage{amsthm}
\usepackage[pdftex]{graphicx}
\usepackage{stmaryrd}
\usepackage{listings}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{textcomp}

Nach oben