Quellcode formatieren

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


TheMan
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Fr 5. Dez 2014, 13:15

Quellcode formatieren

Beitrag von TheMan »

Guten Tag,

welche Einstellungen muss ich in den Listings vornehmen um folgendes zu bekommen?

Bild

Das bedeutet normale Wörter die zur Sprache c++ gehören beispielsweiße blau und alle anderen Wörter in der Farbe wie oben.

Natürlich kann man keywordstyle verwenden, aber das ist bei viel Code ja unmenschlich viel Aufwand.

Vielen Dank im voraus
Dateianhänge
themanListinngColours.png
themanListinngColours.png (82.3 KiB) 2332 mal betrachtet

Gast

Beitrag von Gast »

\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage[T1]{fontenc}
\usepackage{listings}
\lstset{language=[ISO]C++,columns=flexible,
  basicstyle=\color{black}\ttfamily,
  identifierstyle=\color{MediumVioletRed},
  commentstyle=\color{OliveDrab},
  stringstyle=\color{OliveDrab},
  keywordstyle=\color{MediumVioletRed}
}
\begin{document}
\begin{lstlisting}
QSqlDatabase mMyDB;
QString mDBNameString;
// Init DB
mDBNameString = "mMyDatabase.sqlite";
myDB = QSqlDatabase::addDatabase("QSQLITE"); // load QSQLITE Driver
mMyDB.setDatabaseName((QApplication::applicationDirPath() + "\\Databases\\" +
mDbNameString)); // path to database
QSqlQuery tQuery;
t.Query.exec("SELECT MAX(ID) FROM Messungen");
\end{lstlisting}

\end{document}
Näheres zu den gewählten Einstellungen findest du in der [d]listings[/d]-Anleitung bzw. (für die gewählten und verfügbaren Farben) in der [d]xcolor[/d]-Anleitung.

TheMan
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Fr 5. Dez 2014, 13:15

Beitrag von TheMan »

Vielen Dank :)

Ein kleine Frage hätte ich noch, wie schaff ich es, dass automatische Zeilenbrüche wie in folgendem Bild dargestellt werden?

Breakline habe ich auf true

Bild
Dateianhänge
themanListingsLinebreak.png
themanListingsLinebreak.png (41.38 KiB) 2284 mal betrachtet

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

Beitrag von Johannes_B »

Es wäre übrigens super, wenn du Bilder direkt auf unseren Server lädst anstatt externe (vielleicht unzuverlässige) Dienste zu nutzen.
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.

Gast

Beitrag von Gast »

Geht aber mit breaklines. Will man außerdem nur an Leerzeichen u. ä. einen Umbruch erlauben, kann man auch das einstellen. Ebenso kann man den Umbruch mit einem Zeichen markieren. Steht alles in Abschnitt 5.8 der [d]listings[/d]-Anleitung.
\documentclass{article}
\usepackage[svgnames]{xcolor}
\usepackage[T1]{fontenc}
\usepackage{listings}
\lstset{language=[ISO]C++,columns=flexible,
breaklines,breakatwhitespace,prebreak=\mbox{\ensuremath{\hookleftarrow}},
basicstyle=\color{black}\ttfamily,
identifierstyle=\color{MediumVioletRed},
commentstyle=\color{OliveDrab},
stringstyle=\color{OliveDrab},
keywordstyle=\color{MediumVioletRed}
}
\begin{document}
\begin{lstlisting}
QSqlDatabase mMyDB;
QString mDBNameString;
// Init DB
mDBNameString = "mMyDatabase.sqlite";
myDB = QSqlDatabase::addDatabase("QSQLITE"); // load QSQLITE Driver
mMyDB.setDatabaseName((QApplication::applicationDirPath() + "\\Databases\\" +
mDbNameString)); // path to database
QSqlQuery tQuery;
t.Query.exec("SELECT MAX(ID) FROM Messungen");
\end{lstlisting}

\end{document}

TheMan
Forum-Anfänger
Forum-Anfänger
Beiträge: 19
Registriert: Fr 5. Dez 2014, 13:15

Beitrag von TheMan »

Vielen Dank für deine Hilfe

Antworten