Anführungszeichen für C-Programm-Quelltext

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


Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Anführungszeichen für C-Programm-Quelltext

Beitrag von Rolli »

Hallo,

ich benötige simple Anführungszeichen für die Darstellung eines C-Programms.

Die "normalen" Anführungszeichen sehen ja so ähnlich wie kleine hochgestellte Kommata bzw. umgedrehte Kommata aus.

In Programmiersprachen verwendet man üblicherweise "links" und "rechts" gleiche, gerade, simple Doppelstriche (oben etwas dicker als unten), so wie sie auf einer deutschen Tastatur mit SHIFT-2 erreicht werden, und wie sie auch hier im Forum dargestellt sind (zumindest mit meinem Firefox-Browser.

Das Minimalbeispiel soll ausgeben:

printf("%d\n", zahl)

Ich "googele" schon eine ganze Zeit, finde aber nur deutsche, englische und französische Zeichen - die helfen nicht wirklich.
Weiß jemand Rat?
\documentclass{scrartcl}
\usepackage{ngerman}
\usepackage{courier}
\begin{document}

Das hier sind deutsche Anführungszeichen \glqq bla bla\grqq \\

Eine Zeile C-Programmcode:

\texttt{printf(``\%d\textbackslash n'', zahl);}

\end{document}
Gruß Rolli

Gast

Beitrag von Gast »

Statt zu googlen solltest du dir eine ordentliche LaTeX-Einführung schnappen. In den wenigen Zeilen Code sind schon Dinge, die man so eher nicht mehr macht.
\documentclass{scrartcl}
\usepackage[T1]{fontenc}% u. a. für \textquotedbl
\usepackage[ngerman]{babel}% Paket ngerman ist veraltet und nicht empfehlenswert
\usepackage{courier}
\usepackage{listings}
\usepackage{csquotes}% u. a. für \textquote
\begin{document}

Das hier sind deutsche Anführungszeichen "`bla bla"' oder besser \textquote{bla bla}.

Eine Zeile C-Programmcode:

\texttt{printf(\textquotedbl\%d\textbackslash n\textquotedbl, zahl);}

oder einfach:
\begin{lstlisting}[language=C]
printf("%d\n", zahl);
\end{lstlisting}
\end{document}

Gast

Beitrag von Gast »

Korrektur:
\begin{lstlisting}[language=C,basicstyle=\ttfamily]
Viele weitere Möglichkeiten des Pakets stehen übrigens in der Anleitung. Das gilt für die anderen Pakete, die verwendet wurden, ebenso.

courier mit den Standard-Font-Familien von LaTeX ist übrigens eine seltsame Mischung. Ich würde das weglassen und eher lmodern dazu nehmen.

Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Beitrag von Rolli »

Danke. Ich bin überrascht, wie schnell einem hier geholfen wird. \textquotedbl ist genau das, wonach ich gesucht, es aber nicht gefunden habe.

@gast: In welcher Einführung hätte ich das denn finden können, anstatt zu "googeln"?

Noch eine Anmerkung: Nicht jeder ist ein Profi und denkt sich vielleicht "So einer - kann der nicht lesen?". Ich beschäftige mich jetzt erst seit 5 Wochen mit LaTeX und muss unter Zeitdruck noch 7 Skripten von WORD nach LaTeX transferieren. Nach 1,5 Stunden Sucherei habe ich es aufgegeben und diese Frage hier formuliert. Natürlich habe ich die Umgebung zum Schreiben von Codes gefunden. Wenn ich aber die \textquotedbl nur etwa 10-mal in meinem Dokument benötige, werde ich mich bei meinem Zeitdruck bestimmt nicht einen halben Tag in die Paket-Doku einlesen, sorry.

Gruß Rolli

Gast

Beitrag von Gast »

Das sollte wirklich in jeder ausführlichen LaTeX-Einführung stehen. Schließlich ist das ein Basisbefehl bei Verwendung von T1-Encoding. Such dir eine beispielsweise auf http://www.dante.de/index/Literatur.html aus. Außerdem steht es im [d]usrguide[/d] und vermutlich auch im [d]fntguide[/d]. Beide sind Bestandteil von LaTeX.

In einer solchen LaTeX-Einführung steht dann auch gleich, dass man
\usepackage[ngerman]{babel}
verwendet und in wirklich guten sind dann nicht nur "` und "' erklärt, sondern es ist auch die Verwendung von csquotes zu finden. Natürlich wird auch erklärt, wie man angefangen von verbatim bis hin zu diversen Paketen (von denen listings nur eines ist) komfortabel Quelltext einfügen kann.

Was dagegen Google ausspuckt, ist in vielen Fällen suboptimal bis großer Unfug. Google ist oftmals auch nur scheinbar eine schnelle Lösung. Man verbringt dort rasch viel mehr Zeit als man eigentlich hat. In einem ordentlichen Buch oder einer guten Anleitung, hättest du die 1½ Stunden sehr nutzbringend investieren können.

Ansonsten: Ich unterstelle niemandem, dass er nicht lesen kann. Selbst, wenn jemand nicht lesen könnte, würde ich ihm das nicht vorhalten. Ich gebe nur Tipps aus jahrelanger Erfahrung nicht nur mit LaTeX sondern auch mit Support. Was man daraus macht, muss jeder selbst wissen. Und ob jemand dünnhäutig reagieren sollte, weil ich eventuell kurz angebunden bin, das muss derjenige auch selbst entscheiden.

Rolli
Forum-Guru
Forum-Guru
Beiträge: 382
Registriert: Mi 15. Feb 2017, 08:50
Wohnort: Mittelfranken

Beitrag von Rolli »

@gast: OK. Jedenfalls vielen Dank für Deine Hilfe.
Du hast recht: Im Web findet man unendlich viel Blödsinn ...

Ich möchte nur um ein bisschen Verständnis bitten für die Leute, die a) neu dabei sind und keine jahrelangen Nerds und Supporter und die b) keine gelernten Schriftsetzer sind, sondern - wie ich - Hochschullehrer und zum Semesterbeginn unter erheblichem Zeitdruck stehen, ihren Kram noch vernünftig fertig zu bekommen.

Und gerade solchen nicht gelernten Schriftsetzern fällt das Verständnis für die Logik hinter dem Verhalten von TeX manchmal nicht leicht. Ein paar Beispiele gefällig?

- Warum um alles in der Welt funktioniert der Paragraph-Abstand prima, nur nicht in der \minipage - Umgebung? Da ist \parskip=0 per default. Was ist der Sinn dahinter?
- Worin liegt der Sinn, bei \minipage reinen Text prima "oben" auszurichten, eine \includegraphics aber unten ???
- Worin liegt der Sinn, oberhalb einer \captionof per default einen Zwischenraum von der aktuellen Schriftgröße minus einem typographischen Punkt einzufügen?
- Ich habe mal was von "Registerhaltigkeit" als oberstes Ziel der Buchdruckkunst gehört ???
- trotz \clubpenalty=100000, \widowpenalty=100000 und \displaywidowpenalty=100000 kriege ich Hurenkinder und Schusterjungen ???

Und dergleichen Artefakte mehr - Artefakte jedenfalls aus meiner Sicht. Aber wie angedeutet - vermutlich habe ich die Logik dahinter nicht verstanden. Und dazu finde ich leider auch in Deinen zitierten Quellen nichts ...

Gruß Rolli

Antworten