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 :-/
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 ;-)
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.
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.
Werd ich mir mal merken. Im Moment reicht aber die einfache Variante ;-)
Danke
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…
\newcommand{\jclass}[1]{\texttt{#1}}
das geht so:
\newcommand{\jclass}[#1]{\texttt{#1}}
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
Ich habe es auch so gemacht. Ich habe mir ein Kommando \code definiert:
\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:
\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 Methoden, die als \private deklariert sind,...
wird: [latex]\text{Methoden, die als \texttt{private}deklariert sind,…}[/latex]
Fällt jemanden dazu eine Lösung ein?
was ist eigtl. mit dem listing Paket?
Sonst gibt es noch alltt was hervorhebungen beherrscht. Ich wuerde mit listing gehen…
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ß.
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.
\usepackage{xspace}
\newcommand{\code}{\texttt}
\newcommand{\private}{\code{private}\xspace}
\newcommand{\default}{default\xspace}
\renewcommand{\protected}{\code{protected}\xspace}
\newcommand{\public}{\code{public}\xspace}
Ich hab das bei mir so gelöst:
\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.
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.
Haette nicht einfach sowas gereicht?
\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…
Nee, genau andersherum: \newcommand{\private}{\code{private} }
führt zu ungewuenschten Leerzeichen vor Punkten, Kommas etc., wogegen \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]