
Ich muss meine Umgebung für Quellcodebeispiele erstellen. Sie soll so aussehen:
Codebeispiel:
------------------------------------------------
# Dies ist das Codebeispiel
echo 'Hallo'
------------------------------------------------
Das Problem besteht darin, dass ich nicht weiß, wie ich das automatische Escapen von Sonderzeichen (insbesondere Hashes) erzwingen kann, sodass die Benutzer nicht jedes Mal einen Backslash eingeben müssen, wenn sie den Hash schreiben möchten.
Mein Code
\def\terminalText#1\end{\hspace*{2em}\texttt{#1}\\\end}
\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code example:\\
\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}\\
\terminalText}
{\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}}
Dieser Code funktioniert gut, bis ich ein Sonderzeichen in die Umgebung schreiben möchte. Dann erhalte ich diesen Fehler:
! Paragraph ended before \terminalText was complete.
Ich habe sogar versucht, eine Art Wrapper für die verbatim
Umgebung zu erstellen, entsprechend der Fragewörtlich verwendbar mit einer neuen Umgebungsdefinition?, aber ich erhalte diesen Fehler:
! LaTeX Error: \begin{codeExample} on input line 535 ended by \end{verbatim}.
Mein 2. Code
\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code Example:\\
\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}\\
\verbatim
}
{%
\endverbatim
\hspace*{1.3em}\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}}
Antwort1
Mit verbatim
dem Paket funktioniert der Code für das zweite Beispiel sofort (sofern dashrule
auch das Paket enthalten ist).
\documentclass{article}
\usepackage{verbatim}
\usepackage{dashrule}
\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code Example:\\
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}
\verbatim
}
{%
\endverbatim
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}
}
\begin{document}
\begin{codeExample}
# This is the code example
echo 'Hello'
\end{codeExample}
\end{document}
Bitte betrachten Sie listings
das Paket als eine „bessere“ und sauberere Möglichkeit, Codebeispiele zu setzen.
BearbeitenHier ist ein Beispiel mit der tcolorbox
Ausgabe für Auflistungen.
\documentclass{article}
\usepackage{verbatim}
\usepackage{dashrule}
\usepackage[most]{tcolorbox}
\newenvironment{codeExample}{
\vspace*{1.5em}
\noindent
Code Example:\\
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}
\verbatim
}
{%
\endverbatim
\hspace*{1.3em}
\hdashrule[0.5ex]{435pt}{0.9pt}{1.5mm}
}
\newtcblisting[auto counter]{codeex}[1][]{%
arc=0pt,
auto outer arc,
colbacktitle=yellow,
coltitle=black,
title={Code Example \thetcbcounter},
listing options={language=bash},
listing only,
lowerbox=ignored,
before upper=\hdashrule[0.5ex]{\textwidth}{0.9pt}{1.5mm},
after upper=\hdashrule[0.5ex]{\textwidth}{0.9pt}{1.5mm}
#1
}
\begin{document}
\begin{codeExample}
# This is the code example
echo 'Hello'
\end{codeExample}
\begin{codeex}
echo 'Hello'
\end{codeex}
\end{document}