Hallo Community,

ich bin gerade dabei, eine Vorlage für eine Arbeit zu erstellen. Darin kommen unter anderem Code-Abschnitte vor, die ich mit dem Paket listings mache - das Ergebnis gefällt mir auch. Manchmal möchte ich aber auch einzelne Befehle darstellen (also das sind dann immer nur einzelne Zeilen). Dafür möchte ich dann aber nicht die Umgebung lstlisting nutzen, weil mir der Abstand vor und nach dem Code dann etwas zu mächtig erscheint (zumindest dafür, dass da nur eine Zeile Code mit dargestellt wird). Ich habe es z.B. auch mal mit der Umgebung verbatim versucht - der Abstand ist mir da aber auch zu groß. Dann hab ich mir mal eine eigene Umgebung erzeugt, angelehnt an das Beispiel hier. Anbei mal ein Minimalbeispiel, das zeigt, was ich meine:

\documentclass[11pt, parskip=half*]{scrartcl}

\usepackage{lipsum}

%####################################
% eigene environments, siehe hier: https://www.dickimaw-books.com/latex/novices/html/newenv.html

\newenvironment{oneliner}{%
    \ttfamily
    \par \vspace{2pt}\ignorespaces
    }%
    {%
    \ignorespacesafterend
    \par \vspace{2pt} \noindent
    }

%####################################

\begin{document}
    \section{Eigene environment testen}
    \lipsum[1] Dafür wird der folgende Befehl genutzt:
    \begin{oneliner}
        Irgendein Befehl den ich hervorheben möchte
    \end{oneliner}
    Dieser Befehl macht dann irgendwas.

    \section{Vergleich mit verbatim}
    \lipsum[1] Dafür wird der folgende Befehl genutzt:
    \begin{verbatim}
        Irgendein Befehl den ich hervorheben möchte
    \end{verbatim}
    Dieser Befehl macht dann irgendwas.
\end{document}

Ich bin mit dem Ergebnis meiner neuen Umgebung eigentlich ganz zufrieden. Jetzt würde mich aber mal interessieren, wie das mit den unterschiedlichen Abständen - von einem typographischen Standpunkt aus betrachtet - zu bewerten ist. Ich hab mir nämlich mal den scrguide zu Gemüte geführt, und da heißt es ja, dass man vorsichtig sein soll bei der Verwendung vieler unterschiedlicher Schriftarten - ich könnte mir vorstellen, dass das bei den Abständen einzelner Elemente genauso ist.

So schaut das aus, wenn ich das bei mir ausführe:

alt text

gefragt 05 Dez '21, 10:10

AndreGismo's gravatar image

AndreGismo
596826
Akzeptiert-Rate: 72%

bearbeitet 05 Dez '21, 10:24

komisch, das Ergebnis hier sieht auch nochmal anders aus, asl wenn ich das bei mir ausführe

(05 Dez '21, 10:21) AndreGismo

Der größere Abstand nach der verbatim-Umgebung kommt daher, dass dein \end{verbatim} nicht am Anfang der Zeile steht, sondern eingerückt ist. Leerzeichen am Zeilenanfang sind in einer verbatim-Umgebung im Unterschied zum normalen Text relevant. Daher wird mit den Leerzeichen vor \end{verbatim} bereits eine neue Zeile begonnen. Hier ein Beispiel, das den Unterschied zeigt:

\documentclass{article}
\begin{document}
\noindent
Irgend ein Text
\begin{verbatim}
  verbatim Text
\end{verbatim}
und noch wieder irgend ein Text
  \begin{verbatim}
  und noch einmal verbatim Text.
  \end{verbatim}
und wieder irgend ein Text.
\end{document}

Was da genau geschieht, wird noch deutlicher, wenn man verbatim* statt verbatim verwendet, weil dann die Leerzeichen sichtbar werden:

\documentclass{article}
\begin{document}
\noindent
Irgend ein Text
\begin{verbatim*}
  verbatim Text
\end{verbatim*}
und noch wieder irgend ein Text
  \begin{verbatim*}
  und noch einmal verbatim Text.
  \end{verbatim*}
und wieder irgend ein Text.
\end{document}

Fazit: verbatim-Umgebungen besser nicht einziehen, jedenfalls nicht das \end{verbatim} bzw. \end{verbatim*}. Dann sind auch automatisch die Abstände einheitlich, was typografisch sicher wünschenswert ist.

Will man nun entgegen aller typografischen Gepflogenheiten, unterschiedliche Abstände für unterschiedliche verbatim-artige Umgebungen, so geht das bei Verwendung von listings ganz einfach über die Optionen aboveskip und belowskip, die in der Abschnitt »4.3.2 Space and placement« der Anleitung zu listings zu finden sind, beispielsweise:

\documentclass[ngerman,parskip=half*]{scrartcl}
\usepackage{babel}
\usepackage{listings}
\usepackage{mwe}
\begin{document}

\blindtext
\begin{lstlisting}[aboveskip=2\parskip]
\documentclass{scrartcl}
\begin{document}
Test
\end{document}
\end{lstlisting}
wobei mit dem Befehl
\begin{lstlisting}[belowskip=0pt]
\begin{document}
\end{lstlisting}
der Textbereich eingeleitet wird.
\end{document}

In Abschnitt 4.5 der Anleitung ist erklärt, wie man sich die Angabe der Option jeweils sparen kann, indem man sich zwei unterschiedliche Umgebungen definiert, beispielsweise eine Umgebung lstcode für mehrzeiligen Code und eine Umgebung lstoneline für einzeiligen Code. Ich rate jedoch davon ab.

Permanenter link

beantwortet 05 Dez '21, 11:41

gast3's gravatar image

gast3
(ausgesetzt)
Akzeptiert-Rate: 53%

ah super, wieder mal vielen Dank für das ausführliche Beispiel und Ihre Einschätzung der Lage! :) Dann mache ich das lieber einheitlich

(05 Dez '21, 13:16) AndreGismo

und Ihre Einschätzung

Oh Mann! Ich bin wohl echt alt! ;-)

(05 Dez '21, 15:53) gast3
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×55
×17
×2

gestellte Frage: 05 Dez '21, 10:10

Frage wurde gesehen: 2,455 Mal

zuletzt geändert: 05 Dez '21, 15:53