Einen einzelnen Kommentartrenner für Auflistungen einfärben (im Stil der Shell-Transkriptsprache)?

Einen einzelnen Kommentartrenner für Auflistungen einfärben (im Stil der Shell-Transkriptsprache)?

Ich wollte eine Art Shell-Transkript-Sprachstil in den Auflistungen haben, bei dem die Shell-Eingabeaufforderung und die eigentlichen Befehle hervorgehoben werden und der restliche Text etwas „gedämpfter“ ist.

Das Beste, was ich derzeit erreichen konnte, ist, den grundlegenden Stil als „stummgeschaltet“/„ausgeblendet“/„ausgegraut“ zu definieren und dann mein Shell-Prompt-Zeichen (hier $) als einzelnes Kommentartrennzeichen zu behandeln und den verbleibenden Kommentar komplett in Schwarz und fett darzustellen:

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}

\lstdefinelanguage{ShellTranscript}
{sensitive=false,
morecomment=[l][\color{black}\bfseries]{ \$ },
basicstyle=\ttfamily\footnotesize\color{black!70},
}

\begin{document}

Here we go:

\begin{lstlisting}[language=ShellTranscript]

user@box:~ $ ls /usr/
bin  games  include  lib  local  man  sbin  share  src
user@box:~ $ ls /var/
backups  cache  lib  local  lock  log  mail  opt  run  spool  swap  tmp
user@box:~ $ echo 'be careful of $ in there!'
be careful of $ in there!
\end{lstlisting}

\end{document}

Die Ausgabe ist folgende:

Ausgabe

Was ich jedoch wirklich möchte, ist Folgendes:

gewünschte Ausgabe

Das heißt: Nur das Kommentartrennzeichen (also nur das Eingabeaufforderungszeichen $) sollte rot und nicht fett sein; der nachfolgende Text (der eigentliche Befehl) sollte schwarz und fett sein; der verbleibende Text wie die Ausgabe sollte stumm/grau sein – und $im „Ausgabetext“ sollte NICHT formatiert sein (was wahrscheinlich bedeutet, dass man, um einen „Kommentar“ zu deklarieren, prüfen muss, ob die Zeile mit einem beginnt user@boxund eins enthält $, und dies dann, wenn dies der Fall ist, $als Kommentartrennzeichen verwenden muss).

Kann dies mit Inseraten erreicht werden – und wenn ja, wie?

Antwort1

Sie können die Lösung von @matexmatics anpassen vonhttps://tex.stackexchange.com/a/706145/36296so was:

\documentclass{article}
\usepackage{listings}
\usepackage{xcolor}
\usepackage[T1]{fontenc}
\usepackage{beramono}
\colorlet{dollarcol}{red}

\lstdefinelanguage{ShellTranscript}
{sensitive=false,
basicstyle=\ttfamily\footnotesize\color{black!30},
moredelim=[s][\colorlet{dollarcol}{red}]{user@box:~},
moredelim=**[il][\textcolor{dollarcol}{\$}\color{black}\bfseries\colorlet{dollarcol}{black}]{\$}
}

\begin{document}

Here we go:

\begin{lstlisting}[language=ShellTranscript]

user@box:~ $ ls /usr/
bin  games  include  lib  local  man  sbin  share  src
user@box:~ $ ls /var/
backups  cache  lib  local  lock  log  mail  opt  run  spool  swap  tmp
user@box:~ $ echo 'be careful of $ in there!'
be careful of $ in there!
\end{lstlisting}

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen