Anzeige:
Ergebnis 1 bis 3 von 3

Thema: lstlisting und datatool

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.04.2006
    Beiträge
    43

    lstlisting und datatool

    Hallo,

    ich habe mit einer Zusammenstellung von listing, datatool und longtable versucht, einen serienbriefartigen Druck zu gestalten. Jedes Dokument enthält einige Tabellen, in denen in verschiedenen Zeilen auch Quellcode (mittels listings) zu finden ist.


    Longtable mitsamt listings (\begin{lstlisting}) funktioniert, sobald aber die Kombination datatool bzw. \DTLforeach dazukommt, lässt sich das Dokument nicht mehr kompilieren.

    Verwendet man \lstinline|bla| funktioniert es, siehe das Minimalbeispiel unten. Ich vermute, es liegt mit an der Umgebung lstlisting in Zusammenhang mit dem DTLforeach.

    Vielen Dank für die Rückmeldungen!

    Gruß
    Grave


    Code:
    \documentclass[a4paper]{article} 
    \begin{filecontents*}{test2.csv} 
    Name,
    Peter,
    Susi,
    \end{filecontents*} 
    \usepackage{datatool}
    \usepackage{listings}
    \lstset{
    numbers=left,
    stepnumber=1,
    numbersep=50pt,
    numberstyle=\small,
    basicstyle=\ttfamily,
    }
    \begin{document} 
    \section{Test}
    \DTLloaddb{list}{test2.csv}
    \DTLforeach{list}{
    \Name=Name}
    {	\Name \newline
    problematisch:
    	\begin{lstlisting}
    		WRITE 'Input the limit'
    	\end{lstlisting}
    funktioniert: \newline
    	\lstinline|TEST|
    }
    \end{document}

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Frohes Neues,
    Zitat Zitat von grave Beitrag anzeigen
    Longtable mitsamt listings (\begin{lstlisting}) funktioniert, sobald aber die Kombination datatool bzw. \DTLforeach dazukommt, lässt sich das Dokument nicht mehr kompilieren.
    die lstlisting-Umgebung ist vergleichbar mit einer verbatim-Umgebung ... und die ist innerhalb \DTLforeach nicht zulässig (siehe in `texdoc datatool-user' die Beschreibung zu \DTLforeach).
    Vllt kannst Du den Code ja auslagern:
    Code:
    \documentclass[a4paper]{article} 
    \begin{filecontents*}{test2.csv} 
    Name,
    Peter,
    Susi,
    \end{filecontents*}
    \begin{filecontents*}{\jobname-sample-write.code}
        WRITE 'Input the limit'
    \end{filecontents*}
    \usepackage{datatool}
    \usepackage{listings}
    \lstset{
    numbers=left,
    stepnumber=1,
    numbersep=50pt,
    numberstyle=\small,
    basicstyle=\ttfamily,
    }
    \begin{document} 
    \section{Test}
    \DTLloaddb{list}{test2.csv}
    \DTLforeach{list}{\Name=Name}
    { \Name
      \lstinputlisting{\jobname-sample-write.code}
    }
    \end{document}
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.04.2006
    Beiträge
    43
    Hallo,

    danke! Das Minimalbeispiel funktioniert schonmal. Werde das sobald ich Zeit habe, direkt im eigentlichen Projekt testen. Mal wieder zwei Sachen dabei, auf die ich selber hätte kommen können:

    1.) Doku zu DTLforeach anschauen ...

    2.) dritte Möglichkeit Quellcode einzubinden, nämlich über externe Dateien, ebenfalls testen ...


    Danke jedenfalls nochmal!

    Gruß
    Grave

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •