C++ Code: Listings gibt UTF8-Fehlermeldung aus, Lösung?

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

C++ Code: Listings gibt UTF8-Fehlermeldung aus, Lösung?

Beitrag von scaer93 »

Hallo,

ich habe hier ein Problem. Ich möchte mit dem Paket listings/listingsutf8 Programm-Code in ein Dokument packen. Leider bekomme ich immer Fehlermeldungen mit pdflatex. Bei XeLaTeX ist alles fehlerfrei.

Fehlermeldungen:

- Package inputenc Error: Unicode char \u8:√\expandafter not set up for use with LaTeX.

- Package utf8x Error: MalformedUTF-8sequence

-Package inputenc Error: Keyboard character used is undefined
(inputenc) in inputencoding `utf8'.


Was muss ich machen, damit das Listing auch mit pdflatex geht?



Der Programm-Code wurde gekürzt und ergibt keinen Sinn mehr. Als Minimalbeispiel reicht es:
\documentclass[a4paper,11pt]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{xcolor}

\usepackage{tgtermes}
\usepackage{amsmath,amssymb,amsthm,textcomp}

\usepackage{listings}

%%%----------%%%----------%%%----------%%%----------%%%

\begin{document}



\begin{lstlisting}
#include <iostream>
#include <cmath>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdlib>
using namespace std;

        gamma=1+(E[n]/ma); // Erklärung siehe Protokoll
        beta=pow((1-(1/(gamma*gamma))),0.5);
        Ac=(vorN*6*4)/(12.011*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Ic)-beta*beta); // Erklärung siehe Protokoll
        Ah=(vorN*1*4)/(1.008*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Ih)-beta*beta);
        Ao=(vorN*8*4)/(15.999*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Io)-beta*beta); // Ac, Ah und Ao sind in MeV*cm^2/g
        dE=0.6250*Ac+0.0420*Ah+0.3331*Ao; // in MeV*cm^2/g
        dE=rhoMylar*dE*dx; // in MeV
        E[n+1]=E[n]-dE; // in MeV
        n++; // Laufindex wird um 1 erhöht
        R=dx*n; // Berechnung Reichweite in cm
        cout << R << "  " << dE << "  " << E[n-1] << "  " << E[n] << 
\end{lstlisting}
\end{document}
Grüße

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Weisde, irgendwie, ich versteh das nich?

Wie kann denn LaTeX dir sagen, dass das Wurzelzeichen nicht definiert ist, wenn es gar nicht im Code ist? Für soetwas sind doch Minimalbeispiele da?
\begin{filecontents*}{\jobname.test}
#include <iostream>
#include <cmath>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdlib>
using namespace std;

gamma=1+(E[n]/ma); // Erklärung siehe Protokoll
beta=pow((1-(1/(gamma*gamma))),0.5);
Ac=(vorN*6*4)/(12.011*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Ic)-beta*beta);
// Erklärung siehe Protokoll
Ah=(vorN*1*4)/(1.008*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Ih)-beta*beta);
Ao=(vorN*8*4)/(15.999*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Io)-beta*beta);
// Ac, Ah und Ao sind in MeV*cm^2/g
dE=0.6250*Ac+0.0420*Ah+0.3331*Ao; // in MeV*cm^2/g
dE=rhoMylar*dE*dx; // in MeV
E[n+1]=E[n]-dE; // in MeV
n++; // Laufindex wird um 1 erhöht
R=dx*n; // Berechnung Reichweite in cm
cout << R << " " << dE << " " << E[n-1] << " " << E[n] <<
\end{filecontents*}

\documentclass[a4paper,11pt]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage{listingsutf8}
\lstset{ inputencoding=utf8/latin1 }

\begin{document}



\lstinputlisting{\jobname.test}
\end{document} 
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag von scaer93 »

Zunächst heißt es "Weißt du". Trotz Forum sollte eine gewisse Grammatik und Ausdruck beibehalten werden.

Deine Kritik kann ich nicht nachvollziehen, da bei mir genau mit diesem Minimalbeispiel die obigen Fehlermeldungen kommen. Woher soll ich bitte wissen, woher die Wurzel da kommt.

Da ich aber vermute, dass die Wurzel in der Fehlermeldung nichts mit dem eigentlichen Wurzel-Zeichen der Tastatur bzw. des Befehls "sqrt" zu tun hat, ist es klar, dass im Text keine Wurzel kommt.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Erhältst du mit dem Beispiel, welches ich oben gepostet habe den beschriebenen Fehler? Klick mal auf Öffne in Online Editor.


Übrigens stimm ich dir mit der Grammatik voll und ganz zu, aber es gibt so Momente im Support ... in denen ich mir meine eigene Signatur durchlesen muss. Durchatmen, Pause machen.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag von scaer93 »

Naja, ich war auch nicht ganz fair.

Danke für die Antwort. Und ja, leider bekomme ich immer noch die gleichen Fehlermeldungen mit deinem Beispiel.

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

Zeig mal die Log-Datei, die mein Beispiel oben bei dir produziert.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4300
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Johannes_B hat geschrieben: Wie kann denn LaTeX dir sagen, dass das Wurzelzeichen nicht definiert ist, wenn es gar nicht im Code ist?
Nun, die Anzeige im Terminal (oder in der log-Datei) bei utf8-Fehlern zeigt ja nicht immer den betroffenen Buchstaben -- das macht es ja manchmal etwas mühsam den Schuldigen zu finden. Ich bekomme einen Fehler wegen des "ä" und mit literate klappt es dann:
\documentclass[a4paper,11pt]{article}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{xcolor}

\usepackage{tgtermes}
\usepackage{amsmath,amssymb,amsthm,textcomp}

\usepackage{listings}
\lstset{extendedchars=true,literate=%
    {Ä}{{"A}}1%
    {Ö}{{"O}}1%
    {Ü}{{"U}}1%
    {ä}{{"a}}1%
    {ö}{{"o}}1%
    {ü}{{"u}}1%
    {ß}{{\ss}}1%
}


%%%----------%%%----------%%%----------%%%----------%%%

\begin{document}



\begin{lstlisting}
#include <iostream>
#include <cmath>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdlib>
using namespace std;

        gamma=1+(E[n]/ma); // Erklärung siehe Protokoll
        beta=pow((1-(1/(gamma*gamma))),0.5);
        Ac=(vorN*6*4)/(12.011*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Ic)-beta*beta); // Erklärung siehe Protokoll
        Ah=(vorN*1*4)/(1.008*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Ih)-beta*beta);
        Ao=(vorN*8*4)/(15.999*beta*beta)*(log((2*me*beta*gamma*beta*gamma)/Io)-beta*beta); // Ac, Ah und Ao sind in MeV*cm^2/g
        dE=0.6250*Ac+0.0420*Ah+0.3331*Ao; // in MeV*cm^2/g
        dE=rhoMylar*dE*dx; // in MeV
        E[n+1]=E[n]-dE; // in MeV
        n++; // Laufindex wird um 1 erhöht
        R=dx*n; // Berechnung Reichweite in cm
        cout << R << "  " << dE << "  " << E[n-1] << "  " << E[n] <<
\end{lstlisting}
\end{document}

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag von scaer93 »

Dann werde ich es mit dem literate probieren.

Was empfehlt ihr eigentlich? pdflatex oder xelatex?

Benutzeravatar
Johannes_B
Moderator
Moderator
Beiträge: 5079
Registriert: Do 1. Nov 2012, 14:55
Kontaktdaten:

Beitrag von Johannes_B »

scaer93 hat geschrieben:Was empfehlt ihr eigentlich? pdflatex oder xelatex?
Kommt ganz drauf an, was du willst oder brauchst. Irgendwo haben alle; XeLaTeX, LuaLaTeX und pdfLaTeX; Vorteile und Nachteile untereinander.
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?

Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.

scaer93
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 68
Registriert: Mi 30. Apr 2014, 20:12

Beitrag von scaer93 »

Naja, Formeln, Listings, Verzeichnisse (Lit, Abb ...) und Umlaute brauche ich immer.

Was ist dann also die beste Wahl?

Antworten