Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Latex-Problem: vermutlich irgendwas Merkwürdiges mit Verbatim und Hyperref

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer Avatar von cgnieder
    Registriert seit
    06.04.2011
    Ort
    Herrenberg
    Beiträge
    254
    Ich habe noch nicht genau gesehen, wo das Problem ist, habe aber zwei Vorschläge/Tipps. Erstens ist es glaube ich einfacher für Deine Aufgabe, environ zu verwenden:

    Code:
    \documentclass{article}
    \usepackage{environ}
    
    \newwrite\schreibauf
    \immediate\openout\schreibauf=\jobname.sol
    \NewEnviron{test}{\immediate\write\schreibauf{\unexpanded\expandafter{\BODY}}}
    
    \newcommand*\zeigaufschrieb{%
      \immediate\closeout\schreibauf
      \input{\jobname.sol}}
    
    \AtEndDocument{\immediate\closeout\schreibauf}
    
    \begin{document}
    
    \begin{test}
     bla bla bla \textbf{bla}
    \end{test}
    
    text dazwischen
    
    \zeigaufschrieb
    
    \end{document}
    Zweitens gibt aus die Pakete answers und exsheets, vielleicht noch weitere, die für das, was Du entwickeln willst, existieren. (Hier ist ein Beispiel für exsheets.)

    Grüße
    Clemens

  2. #2
    Registrierter Benutzer
    Registriert seit
    17.10.2012
    Beiträge
    14
    Ach krass, das sieht einfacher aus als meine Lösung.

    Ich schaue mir das morgen gleich mal an - vielen Dank auf jeden Fall!

    (Ob das das Problem mit den Seitenzahlen löst, weiß ich aber nicht...)

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.10.2012
    Beiträge
    14
    Hallo nochmal,


    Clemens, vielen Dank für deine Idee, die ich auch deutlich einfacher finde als meinen Code.

    Allerdings löst es das Problem mit hyperref nicht. Die folgende Version funktioniert prima (und ich überlege unabhängig von allem anderen, darauf umzusteigen, weil es weniger selbstgefrickelt ist...), solange man hyperref nicht einkommentiert:

    Code:
    \documentclass{article}
    \usepackage{environ}
    %\usepackage{hyperref}
    
    \newenvironment{aufgabe}[4]
    {\noindent
    \textbf{\sffamily Aufgabe.\label{aufgabe:#4}}
    #1 (#4)
    \newline 
    \bigbreak\def\dieserAufgabeID{#4}}{}
    
    \newwrite\schreibauf
    \immediate\openout\schreibauf=\jobname.sol
    \NewEnviron{test}{\immediate\write\schreibauf{Seite \pageref{aufgabe:\dieserAufgabeID} \unexpanded\expandafter{\BODY}}}
    
    \newcommand*\zeigaufschrieb{%
      \immediate\closeout\schreibauf
      \input{\jobname.sol}}
    
    \AtEndDocument{\immediate\closeout\schreibauf}
    
    \begin{document}
    
    \begin{aufgabe}{Aufgabenthema}{}{}{ID}
    Aufgabentext
    \begin{test}
     Lösungstext \textbf{bla}
    \end{test}
    \end{aufgabe}
    
    text dazwischen
    
    \zeigaufschrieb
    
    \end{document}
    Sobald man es aber mit einbaut, sagt er irgendwas von Runaway argument und hängt sich ernsthaft komplett auf, ohne überhaupt fertigzukompilieren.




    Viele Grüße

    Lukas

  4. #4
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Da gibst du dir soviel Mühe mit \unexpanded den Body vor der Expansion zu schützen, und das arme \pageref lässt du ins Messer laufen

    Code:
    \immediate\write\schreibauf{%
     Seite \noexpand\pageref{aufgabe:\dieserAufgabeID} 
    ...

  5. #5
    Registrierter Benutzer
    Registriert seit
    17.10.2012
    Beiträge
    14
    Schön formuliert :-)

    Danke, das ist natürlich richtig und so

    Code:
    \NewEnviron{test}{\immediate\write\schreibauf{Seite \noexpand\pageref{aufgabe:\dieserAufgabeID} \unexpanded\expandafter{\BODY}}}
    tut es jetzt auch.

    Vielen Dank an alle!

  6. #6
    Registrierter Benutzer
    Registriert seit
    17.10.2012
    Beiträge
    14
    Ach, und übrigens: auch wenn ich immer noch nicht so recht weiß, woher der Fehler kam, mit "noexpand" funktioniert auch die alte Version plötzlich!

    Besten Dank nochmal!


    Viele Grüße

    Lukas

Lesezeichen

Berechtigungen

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