Umlaute verrutscht bei lstlisting Thema ist als GELÖST markiert

Schriftbild, Absätze und Auflistungen einstellen


Photon

Umlaute verrutscht bei lstlisting

Beitrag von Photon »

Hallo Community,

ich möchte Code-Schnipsel in ein LaTeX-Dokument einbinden, dafür nutze ich die lstlisting-Umgebung. Leider sind dabei alle Umlaute verrutscht. Hier ein Minimalbeispiel:
\documentclass[10pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{german}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{listings}
\lstset{numbers=left, numberstyle=\tiny, numbersep=5pt}
\lstset{language=C++}
\lstset{breaklines=true, showstringspaces=false}
\lstset{inputencoding=utf8, extendedchars=\true}

\begin{document}

\begin{lstlisting}

	"blaäbla"
	
	blaäbla

\end{lstlisting}

\end{document}

Nun sieht die Ausgabe so aus:
"äblabla"ä
blabla
Das ä von "blaäbla" (mit Anführungsstrichen) ist nach vorne gerutscht, das ä von blaäbla (ohne Anführungsstriche) sogar in die vorhergehende Zeile.

Hat jemand Rat, wie man die Umlaute an die richtige Position bekommt?

Vielen Dank,
Photon

Photon

Zwischenstand

Beitrag von Photon »

Da alle Umlaute im Code in ""-Umgebungen vorkommen, kann man die korrekte Darstellung mit escapeinside="" erzwingen, dadurch verschwinden aber die "-Zeichen aus dem Code. Man könnte natürlich doppelte "-Zeichen setzen oder andere Begrenzungen einfügen, wäre aber natürlich schöner, wenn jemand eine schönere Lösung hätte, bei der der Code nicht angepasst werden muss.

MfG Photon

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Kann es sein, dass das Problem nur darin liegt, dass du geschrieben hast
extendedchars=\true 
true/false in Optionen sind keine Befehle. Schreibt man das richtig, klappt dein Beispiel. Das "\true" hat den gleichen Effekt wie "false".
\documentclass[10pt, a4paper]{article}
\usepackage[ansinew]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{german}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage{listings}
\lstset{%
numbers=left,%
numberstyle=\tiny,%
numbersep=5pt,%
language=C++,%
breaklines=true,%
showstringspaces=false,%
inputencoding=ansinew,%
extendedchars=true%
}

\begin{document}

\begin{lstlisting}

   "blaäbla"
   
   blaäbla

\end{lstlisting}

\end{document}

Photon

Beitrag von Photon »

Wenn ich den Backslash entferne, erhalte ich leider folgenden Kompilierungsfehler von pdflatex:
(/usr/share/texmf-dist/tex/latex/base/utf8.def)

! Package inputenc Error: Unicode char \u8:�\expandafter not set up for use wit
h LaTeX.

See the inputenc package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.27    "blaäbla"
                  
? 

Gast

Beitrag von Gast »

Alternativ mit ansinew statt utf8:
(/usr/share/texmf-dist/tex/latex/base/ansinew.def)

! LaTeX Error: Command \textcurrency unavailable in encoding T1.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.27    "blaäbla"
                  
? 

Xenara
Forum-Meister
Forum-Meister
Beiträge: 682
Registriert: Mi 25. Nov 2009, 09:41

Beitrag von Xenara »

Kannst du Umlaute sonst eingeben? Also ausserhalb der listings-Umgebung? Hast du den Text in der listings eingetippt oder von woher kopiert?

Ich hab leider keine Ahnung, was bei dir schiefläuft, dazu kenne ich mich zu wenig aus. Bei mir läuft es so auf WinXP mit TeXLive und pdflatex kompiliert.
Merkwürdig finde ich die Fehlermeldung wegen \textcurrency, das steht doch nirgens im Text?

Benutzeravatar
iTob
Forum-Meister
Forum-Meister
Beiträge: 1221
Registriert: Mo 19. Apr 2010, 22:19
Kontaktdaten:

Beitrag von iTob »

Nabend,

die \textcurrency-Warnung kommt (u. a.?) dann, wenn Dateikodierung und das was man bei \usepackage[<Kodierung>]{inputenc} angibt nicht übereinstimmen …

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Hallo ich kann das Probem auch nicht nachvollziehen.
\documentclass[10pt, a4paper]{article} 
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc} 
\usepackage[ngerman]{babel} 
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry} 
\usepackage{listings} 
\lstset{% 
 numbers=left,% 
 numberstyle=\tiny,% 
 numbersep=5pt,% 
 language=C++,% 
 breaklines=true,% 
 showstringspaces=false,% 
 inputencoding=latin1,% 
 extendedchars=true% 
} 

\begin{document} 

\begin{lstlisting} 

    "blaäbla" 
     
    blaäbla 

\end{lstlisting} 

\end{document} 
  
Ich habe das Inputencoding natürlich verändert.
[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Photon
Forum-Anfänger
Forum-Anfänger
Beiträge: 12
Registriert: So 22. Mai 2011, 11:47

Beitrag von Photon »

Nun ja, ich habe die Kodierung in
\usepackage[KODIERUNG]{inputenc} 
immer antsprechend der Kodierung in
\lstset{inputencoding=KODIERUNG}
angepasst. Aber weder mit utf8, noch mit ansinew, noch mit latin1 will das Ding kompilieren. Außerhalb der Listings gibt es mit Sonderzeichen keine Probleme.

Ich habe versucht, fontenc von T1 auf T2A zu stellen, dann gibt es zwar bei latin1 und ansinew keine Kompilerfehler, aber die Umlaute werden als Zeichensalat dargestellt... Bei utf8 bleibt der Kompilierfehler auch mit T2A.

Benutzeravatar
bloodworks
Moderator
Moderator
Beiträge: 1425
Registriert: Mo 19. Jan 2009, 10:52
Wohnort: /dev/null

Beitrag von bloodworks »

Bitte setzte die inputenc auf den in deinem Editor eingestellten Wert und setzte ein \listfiles vor das Dokument.

Hier ist meins:
 *File List*
 article.cls    2007/10/19 v1.4h Standard LaTeX document class
  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
inputenc.sty    2008/03/30 v1.1d Input encoding file
  latin1.def    2008/03/30 v1.1d Input encoding file
 fontenc.sty
   t1enc.def    2005/09/27 v1.99g Standard LaTeX file
   babel.sty    2008/07/06 v3.8l The Babel package
ngermanb.ldf    2008/07/06 v2.6n new German support from the babel system
geometry.sty    2010/09/12 v5.6 Page Geometry
  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
   ifpdf.sty    2011/01/30 v2.3 Provides the ifpdf switch (HO)
  ifvtex.sty    2010/03/01 v1.5 Switches for detecting VTeX and its modes (HO)
 ifxetex.sty    2010/09/12 v0.6 Provides ifxetex conditional
listings.sty    2007/02/22 1.4 (Carsten Heinz)
 lstmisc.sty    2007/02/22 1.4 (Carsten Heinz)
listings.cfg    2007/02/22 1.4 listings configuration
lstlang1.sty    2004/09/05 1.3 listings language file
lstlang1.sty    2004/09/05 1.3 listings language file
 lstmisc.sty    2007/02/22 1.4 (Carsten Heinz)
  latin1.def    2008/03/30 v1.1d Input encoding file
 ***********

[1] Nützliche Webdokumente für Anfänger und Fortgeschrittene
[2]Minimalbeispiel | [3]FAQ
[4]Regelwerk | [5] Knigge
Wenn nicht anderst angegeben ist mein System: texlive 2012, pdflatex, x86-64, Snow Leopard utd.
Angehöriger der Liga zur Verwendung von texdoc
texdoc mathmode koma l2picfaq l2tabu lshort-en
Achtung: Aufforderungen ein Minimalbeispiel oder mehr Erklärungen zu einer Frage zu liefern sind keine persönlichen Angriffe. Sie dienen viel mehr dazu die Kommunikation zwischen Fragendem und potentiellen Helfern zu erleichtern und zu präzisieren.


Antworten