PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \newcommand funktioniert nicht



tobias.vdk
08-03-2005, 11:41
Hallo!

Ich habe mir mit


\newcommand{\bquellcode}{%
\begin{lstlisting}[lineskip=-0.1ex,basicstyle=\footnotesize,frame=single,backgr oundcolor=\color{lightgray}]}

einen neuen Befehl geschaffen, damit ich Quelltext vom restlichen text absetzen kann. Das funktioniert auch, wenn ich den Quelltext mit


\end{lstlisting}
abschließe.
Wenn ich aber mit


\newcommand{\equellcode}{\end{lstlisting}}
noch einen Befehl zum abschließen des Quellcodes erzeuge, dann funktioniert das nicht.

Bin für alle Ideen und Hinweise dankbar.

Tobias

Edit:
Wenn ich im Text


\equelltext
%\end{lstlisting}

schreibe, dann funktionierst, obwohl ja auskommentiert.

bischi
08-03-2005, 15:52
\newcommand{\code}[1]{\begin{listing} #1 \end{listing}}

und benutzen tust dus so:

\code{blablabla...}

MfG Bischi

PS: Nicht getestet....

mr. pelle
08-03-2005, 16:09
Wie wärs mit \newenvironment?

bischi
08-03-2005, 17:20
Wie wärs mit \newenvironment?

Noch besser!!!

MfG Bischi

tobias.vdk
09-03-2005, 07:53
Guten Morgen an alle!

Mein Versuch mit \lstnewenvironment schlägt leider immer fehl.. weder


\lstnewenvironment{quellcode}{\lstset{}}[][lineskip=-0.1ex,basicstyle=\footnotesize,frame=single,backgr oundcolor=\color{lightgray}]{}

2 Fehler: Missing \begin{document}, Undefined control sequence ... esize, frame=single,...
noch


\lstnewenvironment{quellcode}{\lstset{lineskip=-0.1ex,basicstyle=\footnotesize,frame=single,backgr oundcolor=\color{lightgray}}{}

27 Fehler
führen zum Erfolg.

Wie kann ihm nun die Parameter übergeben? Der erste Versuch scheint ja schon fast zu stimmen. Auch die Doku zu listings (http://www.math.ntnu.no/~berland/latex/docs/listings.pdf) bringt mich nicht weiter. Auch googeln nach \lstnewenvironment brachte nichts.

Tobias

blubb
09-03-2005, 08:12
In deinem Versuch mit \lstnewenvironment fehlt der letzte Paramter


\lstnewenvironment{quellcode}{\lstset{}}
[]
[lineskip=-0.1ex,basicstyle=\footnotesize,frame=single,backgr oundcolor=\color{lightgray}]
{}%starting code
{} %ending code fehlte bisher

Der Rest dürfte ein Folgefehler sein.

Besser helfen könnte man, wenn du ein Minimalbeispiel posten würdest und nicht einzelne Makrofragmente.
Blubb

tobias.vdk
09-03-2005, 08:43
Also, in der Doku steht:

\lstnewenvironment
{name}[number][opt. default arg]
{starting code}
{ending code}
und dann als Beispiel:

\lstnewenvironment{pascal}
{\lstset{language=pascal}}
{}

\begin{pascal}
for i:=maxint to 0 do
begin
{ do nothing }
end;
\end{pascal}
Daran angelehnt würde ich gerne mit

\begin{quellcode}
....
\end{quellcode}
folgendes machen:

\begin{lstlisting}[lineskip=-0.1ex,basicstyle=\footnotesize,frame=single,backgr oundcolor=\color{lightgray}]
....
\end{lstlisting}

meine Versuche dies umzusetzen könnt ihr ja oben sehen

Tobias

tobias.vdk
09-03-2005, 11:15
Die Lösung:


\lstnewenvironment{code}
{\lstset{lineskip=-0.1ex,basicstyle=\footnotesize,frame=single,backgr oundcolor=\color{lightgray}}}%starting code
{} %ending code

und dann im Text mit


\begin{code}
...
\end{code}

:) Juchu! :)

Tobias