Seite 1 von 1

Hintergrund Farbe für inline code

Verfasst: Fr 13. Mai 2016, 09:27
von frucht
Hallo zusammen,

ich will für mein Dokument aus dem Informatik Bereich im normalen Fließtext z.B. Klassennamen mit einer grauen Hintergrundfarbe hinterlegen um sie einfach ein bisschen hervorzuheben.

Habe das bisher nur über \colorbox hingekriegt, was jedoch keine Zeilenumbrüche unterstützt. Gibt es dafür eine schöne Lösung? Bisher nicht wirklich was gefunden. Im Prinzip will ich einfach nur für die Schrift eine Hintergrundfarbe, Font etc. kann gerne gleich bleiben. Hier mein bisheriger Code.
\documentclass[a4paper,12pt]{scrreprt} 

\usepackage[ngerman]{babel} 
\usepackage[utf8]{inputenc}

%Listings
\usepackage{scrhack}
\usepackage{listings}
\lstloadlanguages{Java}
\lstset{language=Java,
numbers=left,
stepnumber=1,
numbersep=5pt,
numberstyle=\scriptsize
}

\usepackage{lmodern}

\usepackage[table, xcdraw]{xcolor}

\newcommand{\inlinecode}[1]{\colorbox{gray!20}{#1}}

\begin{document}

\section{Implementierung jojoj}
Die Implementierung des Handlers, der bei Verbindungsaufbau mit der Methode \inlinecode{validate()} als Parameter übergeben wird, ist für die Business-Logik zuständig. Ändert sich zum Beispiel der Validationsstatus der Lizenz im laufenden Betrieb der Software von \inlinecode{FLOATING\_LICENSE\_OVERUSED} auf \inlinecode{VALID\_LICENSE}, hat man die Möglichkeit dies über den TimerHandler abzufangen und eine Meldung auszugeben oder zu loggen.
\end{document}
So sieht das Ganze dann aus:
Bild

Beste Grüße

Verfasst: Fr 13. Mai 2016, 09:39
von u_fischer
Du kannst soul versuchen
\usepackage{soul}
\colorlet{inlinecodecolor}{gray!20}
\sethlcolor{inlinecodecolor}
\newcommand{\inlinecode}[1]{\hl{#1}}
Lies aber die Dokumentation, besonders Abschnitt 2.2.

Verfasst: Fr 13. Mai 2016, 09:42
von Johannes_B
Ich würde gar nicht mit Farbe arbeiten, das wird dann beim Kopieren doof.
\documentclass[a4paper,12pt]{scrreprt}

\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}

%Listings
\usepackage{scrhack}
\usepackage{listings}
\lstloadlanguages{Java}
\lstset{language=Java,
numbers=left,
stepnumber=1,
numbersep=5pt,
numberstyle=\scriptsize,
basicstyle=\ttfamily\small
}

\usepackage{lmodern}

\usepackage[table, xcdraw]{xcolor}

\newcommand{\inlinecode}[1]{\lstinline{#1}}

\begin{document}
\raggedright

\section{Implementierung jojoj}
Die Implementierung des Handlers, der bei Verbindungsaufbau mit
der Methode \inlinecode{validate()} als Parameter übergeben wird,
ist für die Business-Logik zuständig. Ändert sich zum Beispiel
der Validationsstatus der Lizenz im laufenden Betrieb der
Software von \inlinecode{FLOATING_LICENSE_OVERUSED} auf
\inlinecode{VALID_LICENSE}, hat man die Möglichkeit dies über
den TimerHandler abzufangen und eine Meldung auszugeben oder zu
loggen.
\end{document}

Verfasst: Fr 13. Mai 2016, 09:48
von frucht
Ok, das ist auch ein guter Vorschlag, Problem hierbei ist, dass ich aktuell bei den Listings nicht \ttfamily verwende. Darüberhinaus benutze ich für meine CodeListings \\scriptsize, was die inline codes dann sehr klein erscheinen lässt. Kann ich irgendwie die Größe der Inline codes auf normal setzen?

Bild

Verfasst: Fr 13. Mai 2016, 10:51
von Bartman
\newcommand{\inlinecode}[1]{\lstinline[basicstyle=\ttfamily\normalsize]{#1}}
\ttfamily kann man zwar weglassen, ich finde es aber nicht sinnvoll.

Verfasst: Fr 13. Mai 2016, 11:06
von frucht
Danke, beide Lösungen (soul + listinline) funktionieren. Werde das nächste Woche einfach mal ausdrucken und vergleichen!