Seite 1 von 2

Potenzen in C++ Quelltext

Verfasst: Sa 1. Apr 2017, 21:43
von Andre2786
Hallo,
ich möchte meinen Quellcode (MS Visual C++2010 Express) in Latex übertragen. Im Quelltext hat ein "Button" ein "x²" als Bezeichnung. Damit gelingt keine Kompilierung. Lasse ich die hochgestellte "2" über dem "x" weg, sieht alles so aus wie es gewünscht wird -> bis auf die Potenz.
Kann mir jemand weiterhelfen?
Danke im Vorab!
Gruß Andre
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{listings} %%Einbinden von Quellcode
\usepackage[table,gray]{xcolor} %%Für Quellcode
\usepackage[scaled=0.78]{luximono} %%Für Quellcode

\begin{document}

\pagestyle{empty} %%Keine Kopf-/Fusszeilen auf den ersten Seiten.

\lstinputlisting[language=C++, breaklines=true, breakautoindent=true, basicstyle=\scriptsize, numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt, frame=sigle, framerule=0.1pt]
{Hallo_Welt.h}

\end{document}

Verfasst: So 2. Apr 2017, 00:12
von Bartman
Du hast in Deiner Header-Datei noch eine weitere Problemquelle.

Außerdem empfehle ich die folgenden Ergänzungen Deiner Optionen:
\lstinputlisting[
	language=[Visual]C++,% <- geändert
	breaklines=true,
	breakautoindent=true,
	basicstyle=\scriptsize\ttfamily,% <- geändert
	numbers=left,
	numberstyle=\tiny,
	stepnumber=1,
	numbersep=5pt,
	frame=sigle,
	framerule=0.1pt
]{Hallo_Welt.h}

Verfasst: So 2. Apr 2017, 10:08
von Andre2786
Hallo Bartman,

vielen Dank für deine Antwort und Hilfe.

Das "Problem" in der Header-Datei ist genau, um was es geht. Ein Button hat die Bezeichnung "x²" und damit kompiliert es nicht. Sobald ich im Textfeld im Quellcode unter C++ eine Potenz stehen habe, bekomme ich keinen Ausdruck in Tex zustande. Deshalb ja auch meine Header-Datei mit dem "Problem".
Ich hoffe ich konnte mich verständlich ausdrücken. Mit anderen Worten, wer es schafft die Header-Datei in Druckform zu bringen, hat das Problem gelöst.
Vielen Dank im Voraus.
Andre

Verfasst: So 2. Apr 2017, 14:07
von rais
das Problem ist hier nicht, dass das Zeichen (²) nicht erkannt wird, sondern dass es im Mathemodus gesetzt sein muss. Du könntest -- südlich von \usepackage[..]{inputenc} -- so etwas versuchen:
\let\orgmathtwosuperior\mathtwosuperior
\renewcommand*\mathtwosuperior{\ensuremath{\orgmathtwosuperior}}
@Bartman: wenn schon, dann
language={[Visual]C++}
in der Option zu \lstinputlistings: Eckige Klammern lassen sich nicht direkt schachteln.

BTW: `frame=sigle' sollte wohl `frame=single' werden

VG
Rainer

Verfasst: So 2. Apr 2017, 14:21
von Bartman
@rais

Danke für die Berichtigung. Ich hatte meine Ergänzung nicht mehr getestet.

Verfasst: So 2. Apr 2017, 14:37
von Andre2786
@rais
Vielen Dank Rainer, genau was ich gesucht habe!!
Wenn du jetzt noch einen Tipp hast, wie ich auch die Farben des Quellcodes hinbekomme, wäre ich doppelt dankbar!
Viele Grüße
Andre


\documentclass{scrartcl} 
\usepackage[ngerman]{babel} 
\usepackage[T1]{fontenc} 
\usepackage[ansinew]{inputenc} 
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte 
\usepackage{listings} %%Einbinden von Quellcode 
\usepackage[table,gray]{xcolor} %%Für Quellcode 
\usepackage[scaled=0.78]{luximono} %%Für Quellcode 
\let\orgmathtwosuperior\mathtwosuperior
\renewcommand*\mathtwosuperior{\ensuremath{\orgmathtwosuperior}}

\begin{document} 

\pagestyle{empty} %%Keine Kopf-/Fusszeilen auf den ersten Seiten. 

\lstinputlisting[{[Visual]language=C++}, breaklines=true, breakautoindent=true, basicstyle=\scriptsize, numbers=left, numberstyle=\tiny, stepnumber=1, numbersep=5pt, frame=sigle, framerule=0.1pt] 
{Hallo_Welt.h} 

\end{document} 
 

Verfasst: So 2. Apr 2017, 14:39
von Andre2786
:roll:
Das MB läuft hier zwar noch nicht, aber bei mir im Original macht es das!!

Verfasst: So 2. Apr 2017, 14:44
von Andre2786
Noch ein Versuch (ohne Fehler!?)
\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{listings} %%Einbinden von Quellcode
\usepackage[table,gray]{xcolor} %%Für Quellcode
\usepackage[scaled=0.78]{luximono} %%Für Quellcode
\let\orgmathtwosuperior\mathtwosuperior 
\renewcommand*\mathtwosuperior{\ensuremath{\orgmathtwosuperior}} 

\begin{document}

\pagestyle{empty} %%Keine Kopf-/Fusszeilen auf den ersten Seiten.

\lstinputlisting[
 language={[Visual]C++},
 breaklines=true,
 breakautoindent=true,
 basicstyle=\scriptsize\ttfamily,
 numbers=left,
 numberstyle=\tiny,
 stepnumber=1,
 numbersep=5pt,
 frame=sigle,
 framerule=0.1pt]
{Hallo_Welt.h}

\end{document}





Verfasst: So 2. Apr 2017, 14:56
von Bartman
Bei Dir wird nicht die folgende Fehlermeldung ausgegeben?
LaTeX Error: \mathtwosuperior undefined.

Verfasst: So 2. Apr 2017, 15:15
von Andre2786
Nein, in meinem Original läuft es durch.
Habe die Potenzen noch auf ^3 geändert und auch das läuft durch:
Vielen Dank!
Wenn jetzt noch ein Tipp mit den Farben kommt, bin ich happy!!