Seite 1 von 1
Neue Umgebung mit lstlisting funktioniert nicht
Verfasst: Fr 12. Mai 2017, 17:06
von Rolli
Hallo Gemeinde,
ich habe schon wieder so ein LaTeX-Mysterium, bei dem ich nicht weiter komme.
Ich möchte eine lstlisting-Umgebung in eine eigene neue Umgebung stecken, um captionofs, Kommentare usw. standardisiert hinzu fügen zu können.
Das MB wirft einen Fehler beim Compilieren:
Undefined control sequence.
\lstlisting ->\def \lstenv@name
{lstlisting}\begingroup \lst@setcatcodes \ca...
l.7 {\end{lstlisting}
\documentclass{scrartcl}
\usepackage{listings}
\newenvironment{aListing}[0]\relax%
{\begin{lstlisting}}%
{\end{lstlisting}}
\begin{document}
\begin{lstlisting}
Dieses hier funktioniert
\end{lstlisting}
%\begin{aListing}
%Dieses hier funktioniert NICHT - gibt bereits einen Compilerfehler
%\end{aListing}
\end{document}
Warum nur ???
Gruß Rolli
Verfasst: Fr 12. Mai 2017, 18:18
von Gast
Man kann keine neuen listings-Umgebungen mit \newenvironment definieren. In der [d]listings[/d]-Anleitung findest du aber eine Anweisung, um eigene Umgebungen zu definieren.
Verfasst: Fr 12. Mai 2017, 18:19
von Gast
PS: Abschnitt 5.14: Environments
Verfasst: Fr 12. Mai 2017, 18:38
von Rolli
Hallo Gast, danke für Deinen Input. Hatte ich auch schon gesehen - nach meinem Verständnis muss man nach dem Manual lediglich "newenvironment" durch "lstnewenvironment" austauschen ???
Es funktioniert aber trotzdem nicht:
\documentclass{scrartcl}
\usepackage{listings}
\begin{document}
\lstnewenvironment{aListing}[0]\relax%
{
\begin{minipage}{0.3\textwidth}
blabla
\end{minipage}
\hfill
\begin{minipage}{0.6\textwidth}
\begin{lstlisting}%
}%
{%
\end{lstlisting}
\end{minipage}
}
\begin{document}
\begin{lstlisting}
Dieses hier funktioniert
\end{lstlisting}
%\begin{aListing}
%Dieses hier funktioniert NICHT - gibt bereits einen Compilerfehler
%\end{aListing}
\end{document}
???
Was ich "eigentlich" machen möchte: Zwei Minipages nebeneinander, links eine captionof und etwas Kommentartext, rechts ein C/C++ - Snippet im Typewriter-font.
"Links" würde ich an meine eigene, neue Umgebung als ein Argument übergeben (#1). Und das eigentliche Listing soll dann rechts zwischen den beiden {} ... {} beim newenvironment sein.
Ich verstehe beim besten Willen nicht, warum das nicht funktionieren soll - schließlich geht es mit "figure" und "table".
Ist LaTeX etwa nicht objektorientiert programmiert ???
Gruß Rolli
Hat niemand eine Idee?
Verfasst: So 14. Mai 2017, 12:19
von Rolli
Hat niemand eine Idee?
Verfasst: So 14. Mai 2017, 12:45
von u_fischer
\documentclass{scrartcl}
\usepackage{listings}
\lstnewenvironment{aListing}
{\lstset{breaklines=true}%
\begin{minipage}{0.3\textwidth}
blabla
\end{minipage}
\hfill
\minipage{0.6\textwidth}
}
{%
\endminipage
}
\begin{document}
\begin{lstlisting}
Dieses hier funktioniert
\end{lstlisting}
\begin{aListing}
Dieses hier funktioniert auch
\end{aListing}
\end{document}
Wow!
Verfasst: So 14. Mai 2017, 13:41
von Rolli
Wow Ulrike,
vielen Dank!
Jetzt nur noch eine Kleinigkeit (hoffe ich): Um das Ganze hätte ich gerne noch eine farbige Box. Und schon wieder kracht MikTEX übelst zusammen ... "Error Line 1: Emergency stop".
Hat noch jemand eine Idee?
Gruß Rolli
\documentclass{scrartcl}
\usepackage{listings}
\usepackage{tcolorbox}
\lstnewenvironment{aListing}[1]
{\lstset{breaklines=true}%
\begin{tcolorbox}[colback=green,colframe=red]%
\begin{minipage}{0.3\textwidth}
#1
\end{minipage}
\hfill
\minipage{0.6\textwidth}
}
{%
\endminipage
\end{tcolorbox}
}
\begin{document}
\begin{lstlisting}
Dieses hier funktioniert
\end{lstlisting}
\begin{aListing}{Bla Bla}
Dieses hier funktioniert jetzt leider nicht mehr
\end{aListing}
\end{document}
Verfasst: So 14. Mai 2017, 14:16
von u_fischer
Das würde ich direkt mit tcolorbox machen.
\documentclass{scrartcl}
\usepackage{listings}
\usepackage[many]{tcolorbox}
\tcbuselibrary{listings}
\newtcblisting{alisting}[1]{colback=green,colframe=red,enhanced,comment side listing,
lefthand width=0.3\textwidth,comment=#1}
\begin{document}
\begin{alisting}{blub}
Dieses hier funktioniert
\end{alisting}
\end{document}
Nochmals WOW - SUPERWOW
Verfasst: So 14. Mai 2017, 14:43
von Rolli
Liebe Ulrike,
Tausend Dank!!! Du hast mir wirklich sehr geholfen.
Alle Achtung, und mein voller Respekt!
Wie kommt man nur auf so etwas? 35 Jahre LaTEX-Freak?
LG, Rolli
Re: Nochmals WOW - SUPERWOW
Verfasst: So 14. Mai 2017, 16:25
von u_fischer
Rolli hat geschrieben:Liebe Ulrike,
Tausend Dank!!! Du hast mir wirklich sehr geholfen.
Alle Achtung, und mein voller Respekt!
Wie kommt man nur auf so etwas? 35 Jahre LaTEX-Freak?
Man muss doch nur mal einen Blick in die tcolorbox-Doku werfen. Die hat doch haufenweise Bildchen und Beispiele.