FB18.de - Das Informatikforum
LATEX: Quellcode im Fließtext hervorheben - Druckversion

+- FB18.de - Das Informatikforum ( /mybb )
+-- Forum: Off-Topic ( /forumdisplay.php?fid=115 )
+--- Forum: Hard- und Softwarefragen ( /forumdisplay.php?fid=48 )
+--- Thema: LATEX: Quellcode im Fließtext hervorheben ( /showthread.php?tid=9883 )


LATEX: Quellcode im Fließtext hervorheben - Stanni - 28.07.2008 22:56

Moin Moin

Ich bin noch Latex Anfänger und hab jetzt nen Fließtext in dem einige Methodenname auftauchen. Die würde ich gerne, quasi in Monospace, als solche hervorheben.
Bei google finde ich auch nur wie man die Schriftart für ein ganzes Dokument ändert :-/


RE: LATEX: Quellcode im Fließtext hervorheben - Zaphod - 28.07.2008 23:23

Die schnellste Möglichkeit ist, in deinem Fließtext die entsprechenden Funktionen mit \texttt{methodenname} zu schreiben. Für kleine Dokumente oder als Arbeitslösung reicht das ;-)


RE: LATEX: Quellcode im Fließtext hervorheben - Stanni - 28.07.2008 23:31

Wunderbar, danke


RE: LATEX: Quellcode im Fließtext hervorheben - low_level - 29.07.2008 00:41

Wenn ich in LaTeX schreibe, definiere ich mir meine eigenen Makros:

\let \jclass = \texttt
\let \jmethod = \texttt
\let \jkeyword = \texttt

(Das "j" steht für Java.)

Und wenn ich irgendwann mal die Stelle suche, wo ich eine Java-Klasse beschrieben habe, kann ich nach \jclass suchen statt nach \texttt.


RE: LATEX: Quellcode im Fließtext hervorheben - Zaphod - 29.07.2008 11:52

low_level schrieb:
Und wenn ich irgendwann mal die Stelle suche, wo ich eine Java-Klasse beschrieben habe, kann ich nach \jclass suchen statt nach \texttt.


Vor allem kannst du damit später sehr einfach den Font für jeglichen Quellcode ändern, ohne andere Textpassagen, die ebenfalls in TrueType stehen, zu beeinflussen.


RE: LATEX: Quellcode im Fließtext hervorheben - Stanni - 29.07.2008 21:09

Werd ich mir mal merken. Im Moment reicht aber die einfache Variante ;-)
Danke


RE: LATEX: Quellcode im Fließtext hervorheben - Muelli - 06.08.2008 13:01

low_level schrieb:
Wenn ich in LaTeX schreibe, definiere ich mir meine eigenen Makros:

\let \jclass = \texttt
[...]


Das ist aber nicht LaTeX, oder?

Ich wuerde
\newcommand{\jclass} 1 {\texttt{#1}}

schreiben...


RE: LATEX: Quellcode im Fließtext hervorheben - T - 06.08.2008 17:28

Muelli schrieb:
\newcommand{\jclass} 1 {\texttt{#1}}

das geht so:
\newcommand{\jclass}[1]{\texttt{#1}}


RE: LATEX: Quellcode im Fließtext hervorheben - low_level - 07.08.2008 00:47

Muelli schrieb:
low_level schrieb:
Wenn ich in LaTeX schreibe, definiere ich mir meine eigenen Makros:

\let \jclass = \texttt
[...]

Das ist aber nicht LaTeX, oder?


Das stimmt. Aber da wir hier nicht in einem militanten LaTeX-aber-keinesfalls-TeX-Forum sind, habe ich mir diese einfachere Definition erlaubt. :) Der Befehl \let ist in plain-TeX und sogar iniTeX definiert, und in LaTeX funktioniert er genauso gut.

Roland


RE: LATEX: Quellcode im Fließtext hervorheben - NaZo - 06.05.2010 12:23

Ich habe es auch so gemacht. Ich habe mir ein Kommando \code definiert:
Code:
\newcommand{\code}{\texttt}

Jetzt ist es aber so, dass ich in meiner Diplomarbeit, die sich mit der Verwendung von Zugriffsmodifikatoren beschäftigt, ziemlich oft "private", "protected" und "public" schreiben muss. Daher dachte ich, verkürze ich mir das einfach noch weiter, und definiere:

Code:
\newcommand{\private}{\code{private}}
\renewcommand{\protected}{\code{protected}}
\newcommand{\public}{\code{public}}

Wenn ich diese Kommandos nun aber im Text verwende, führt das dazu, dass darauffolgende Leerzeichen ignoriert werden.

Aus

Code:
Methoden, die als \private deklariert sind,...

wird:

Fällt jemanden dazu eine Lösung ein?


RE: LATEX: Quellcode im Fließtext hervorheben - Muelli - 06.05.2010 12:38

was ist eigtl. mit dem listing Paket?

Sonst gibt es noch alltt was hervorhebungen beherrscht. Ich wuerde mit listing gehen...


RE: LATEX: Quellcode im Fließtext hervorheben - Julian F. - 06.05.2010 13:42

NaZo schrieb:
Fällt jemanden dazu eine Lösung ein?


Als Workaround kannst du Klammern hinzufügen, also z.B. \private{} schreiben. Hat was damit zu tun, dass LaTeX sonst das folgende Zeichen trotzdem deinem Befehl als Argument mitgibt, soweit ich weiß.


RE: LATEX: Quellcode im Fließtext hervorheben - NaZo - 06.05.2010 14:14

Danke für die Anregungen. Habe jetzt selbst eine gute Lösung gefunden.

Der Befehl \xspace aus dem xspace-Paket bewirkt die Ausgabe eines Leerzeichens, immer dann, wenn es gebraucht wird, also nicht vor Kommas oder Punkten etc.
Code:
\usepackage{xspace}

\newcommand{\code}{\texttt}

\newcommand{\private}{\code{private}\xspace}
\newcommand{\default}{default\xspace}
\renewcommand{\protected}{\code{protected}\xspace}
\newcommand{\public}{\code{public}\xspace}




RE: LATEX: Quellcode im Fließtext hervorheben - Fred - 06.05.2010 17:08

Ich hab das bei mir so gelöst:
Code:
\usepackage{listings}

\newcommand{\li}{\lstinline}

Im Fließtext schreibe ich dann zum Beispiel \li{private}. Den zusätzlichen Schreibaufwand finde ich gerade noch vertretbar, und man braucht nicht für jedes Schlüsselwort ein eigenes Makro.


RE: LATEX: Quellcode im Fließtext hervorheben - NaZo - 06.05.2010 18:10

Schon klar, dass das so geht. Ich brauch auch nicht für JEDES Schlüsselwort einen Extrabefehl, aufgrund der thematischen Ausrichtung meiner Arbeit aber nun mal für diese vier.


RE: LATEX: Quellcode im Fließtext hervorheben - Muelli - 06.05.2010 21:27

Haette nicht einfach sowas gereicht?
Code:
\newcommand{\private}{\code{private} }
\renewcommand{\protected}{\code{protected} }
\newcommand{\public}{\code{public} }


edit: Ach, wenn du "\private{}." machst, hast du vermlt. ein ungewuenschtes Leerzeichen vor dem Punkt...


RE: LATEX: Quellcode im Fließtext hervorheben - NaZo - 07.05.2010 10:54

Nee, genau andersherum:
Code:
\newcommand{\private}{\code{private} }

führt zu ungewuenschten Leerzeichen vor Punkten, Kommas etc., wogegen

Code:
\private{}.

wunderbar funktionieren würden, wobei man das "{}" vor einem Punkt ja auch einfach weglassen könnte.

Meine Lösung^^ funktioniert aber in jedem Fall und mit minimalem Schreibaufwand. Genau das, was ich gesucht habe. 23