Anzeige:
Ergebnis 1 bis 8 von 8

Thema: "Serien-PDFs" bzw. mehrere (serien-)outputs aus einer tex

  1. #1
    stefan_sch
    Gast

    "Serien-PDFs" bzw. mehrere (serien-)outputs aus einer tex

    Hallo!

    Ich habe eine Frage, auf die ich bisher keine vernünftige Antwort gefunden habe... und zwar:

    Ist es möglich mit LaTeX Serienbriefe zu erstellen, die jeweils nicht in ein Dokument ausgegeben werden, sondern "einzeln"?

    Also folgendes Szenario: Rückmeldungen an Studierende. "Brief" mit LaTeX erzeugen - was sehr gut funktioniert. Dann aber die Rückmeldungen in einzelne PDFs aufteilen, die gleichzeitig nach der Matrikelnummer des/der Studierenden benannt sind.

    Soweit ich das überblicke wären Lösungen dafür, die Dateien "extern" über z.B. Perl oder PHP zu generieren. Vielleicht ginge auch sowas wie Lesezeichen zu setzen und das Gesamt-PDF zu splitten, und diese dann wieder nach dem Lesezeichen der Seite zu benennen.

    Mich würde interessieren ob es eine "interne" lösung gibt.


    Vielen Dank schonmal!

  2. #2
    stefan_sch
    Gast
    hmm... niemand? dürfte doch eigentlich nicht soo selten sein, das problem?

  3. #3
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    so richtig verstehe ich dein Problem nicht. Ist es dir Möglich, ein Minimalbeispiel zu erstellen?

    Gruß
    Marco

  4. #4
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Mmh.. ich verstehe dein Problem auch nicht so ganz .
    ;-) Warum willst erst ein pdf aller Briefe machen und es dann splitten?

    Schau dir ansonsten mal die Briefklasse von KOMA-Script an! V.a. in Verbindung mit dem "scraddr"-Paket, das auch Bestandteil von KOMA-Script ist.

    Ich denke, das geht eher in Richtung deiner Anforderungen.

    EDIT: Möglicherweise wäre auch adrconv dafür geeignet.
    Geändert von hakaze (11-08-2009 um 21:40 Uhr)

  5. #5
    stefan_sch
    Gast
    ich verstehe, muss mich ein wenig verständlicher machen.

    minimalbeispiel wäre in etwa:

    \documentclass{scrartcl}

    \usepackage{csvtools}

    \begin{document}

    \applyCSVfile{scores.csv}{

    \newpage

    Ihre Nummer ist \insertID. Sie haben einen Wert von \insertScore erreicht.

    }

    \end{document}


    ---


    wenn die scores.csv etwa so aussieht

    123, 50
    456, 60
    789, 70

    bekommt man ein PDF mit 3 Seiten, die jeweils etwa so aussehen:

    Ihre Nummer ist 123. Sie haben einen Wert von 50 erreicht.

    Ihre Nummer ist 456. Sie haben einen Wert von 60 erreicht.

    Ihre Nummer ist 789. Sie haben einen Wert von 70 erreicht.


    was ich "will" sind aber 3 PDFs mit je einer seite, die nicht den namen des projekts haben sondern (nach diesem bsp.) 123.pdf, 456.pdf, 789.pdf

    Ist das verständlicher?

    das ganze sind auswertungen für mehrere tausend studenten... deswegen sind "serienbriefe" nicht mehr ganz up-to-date.

  6. #6
    Registrierter Benutzer
    Registriert seit
    06.08.2008
    Beiträge
    1.015
    Also in dem Fall würde ich extern Perl nutzen, um aus dem CVS-Datensatz schon fertig durchnummerierte tex-Files zu erstellen, und die dann in einem Staplelauf zu PDFs zu setzen.

  7. #7
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Also in c.t.t. hat vor einigen Monaten Ulrich Diez vorgeschlagen, für sowas vom Dokument aus weitere pdflatex-Läufe zu starten mit neuem --jobname (per write18, dh. du musst pdflatex mit --enable-write18 oder wie auch immer es bei dir heißt, starten).

    Dabei hat er folgendes Beispiel geschickt:

    Code:
    \documentclass{article} 
    
    \ifx\conditionmacro\undefined 
      \immediate\write18{% 
        pdfLaTeX --jobname="\jobname1" 
        \gdef\string\conditionmacro{1}\string\input\space\jobname 
      }% 
      \immediate\write18{% 
        pdfLaTeX --jobname="\jobname2" 
        \gdef\string\conditionmacro{2}\string\input\space\jobname 
      }% 
      \immediate\write18{% 
        pdfLaTeX --jobname="\jobname3" 
        \gdef\string\conditionmacro{3}\string\input\space\jobname 
      }% 
      \expandafter\stop 
    \fi 
    
    \begin{document} 
    \ifnum\conditionmacro=1 Condition is 1\fi 
    \ifnum\conditionmacro=2 Condition is 2\fi 
    \ifnum\conditionmacro=3 Condition is 3\fi 
    
    \verb|\conditionmacro| is \texttt{\meaning\conditionmacro}. 
    \end{document}
    Ich habe es aber nicht getestet.

  8. #8
    stefan_sch
    Gast
    Vielen Dank euch beiden, hat mir schon sehr geholfen!

    Mir scheint spontan in anbetracht der Masse die perl-lösung unkomplizierter. Fände aber eine "interne" lösung schöner... ich werd' mal etwas rumtüfteln!

Lesezeichen

Berechtigungen

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