Problem listings und ifthen in Kombination

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Problem listings und ifthen in Kombination

von huckepick » Sa 24. Jul 2010, 18:52

Danke dir. Gleich erscheint von mir noch ein neues Thema zu Listings.

if-Abfrage mit Listing

von Stefan Kottwitz » Sa 24. Jul 2010, 14:57

Hallo,

listings und andere verbatim-ähnliche Umgebungen lassen sich nicht so einfach als Makro-Argument verwenden. Man kann jedoch auf TeX-Primitive zurückgreifen wie z.B. \ifx oder \ifnum:
\documentclass{article}

%Block A
\usepackage{listings}
\usepackage{ifthen}

\newcounter{printt}
\setcounter{printt}{10}

\begin{document}

\ifnum\value{printt}=10{%start if

\protect{\begin{lstlisting}
for i:=maxint to 0 do
begin
 do nothing 
end;
Write('Case sensitive');
\end{lstlisting}}

}
\else{Nothing}%end if
\fi

\end{document}
Viele Grüße,

Stefan

Problem listings und ifthen in Kombination

von huckepick » Sa 24. Jul 2010, 14:37

Hallo Community.

Situation:

Ich wollte eben zum ersten Mal das Paket listings ausprobieren.

Ich habe eine Datei erstellt, in der ich über ifthen Blöcke immer nur bestimmte Teile kompilieren lasse um latex Laufzeiten zu verkürzen.

Das funktioniert mit anderem Code in einem ifthen Block schon, nur bei den listings bekomme ich einen latex Fehler.

Problem:

Minimalbeispiel:
\documentclass{article}

%Block A
\usepackage{listings}
\usepackage{ifthen}

\newcommand{\printt}{10}

\begin{document}

\ifthenelse{\equal{\printt}{10}}{%start if

\begin{lstlisting}
for i:=maxint to 0 do
begin
{ do nothing }
end;
Write('Case sensitive');
\end{lstlisting}

}{}%end if

\end{document}

% Block A
% mit if : weder pdflatex, noch latex
% ohne if : pdflatex ja, latex ja
Kommentiere ich die start if / end if Zeilen aus, komilieren latex und pdftex. Lasse ich die Zeilen drin, wird die Datei nicht kompiliert.

Mein .log file ist leer. Daher schreibe ich mal die Fehlermeldung hier ab:

! Paragraph ended before \lst@next was complete.

   \par
1.21 }{}
   %end if
?

Woran könnte das liegen?

Nach oben