Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Error: can be used only in preamble.

  1. #1
    Registrierter Benutzer
    Registriert seit
    24.05.2013
    Beiträge
    56

    Error: can be used only in preamble.

    Bei folgendem Programm (das einen befehl enthält, der ein neues tex-dokument erstellt in das ein übergebenes bild geschrieben wird und auch nach diesem benannt wird) bekomme ich leider die fehlermeldung Error: can be used only in preamble.
    weiß jemand warum?

    zum ausprobieren müsst ihr natürlich selbst ein eigenes bild hernehmen....

    Code:
    \documentclass{article}
    \usepackage{scrlfile}
    
    \makeatletter
    \newcommand*\bilderpreamble{
    \documentclass[border=1mm]{standalone}^^J
    \usepackage{graphicx}^^J
    \usepackage{xcolor}^^J
    }
    \makeatother
    
    \newcommand{\test}[1]
    {
    \newwrite\bilderfile
    \AtBeginDocument{%
      \openout\bilderfile #1-Stahlbaukalender.tex
      \write\bilderfile{\expandafter\detokenize\expandafter{\bilderpreamble}}%
      \write\bilderfile{%
        \string\begin{document}^^J%
    		\string\input{#1.pdf_tex}}%
    \AfterReadingMainAux{%
      \immediate\write\bilderfile{\string\end{document}}%
      \immediate\closeout\bilderfile
    }%
    }
    }
    
    %\test{sd_023_DE}
    
    \begin{document}
    \test{sd_023_DE}
    \end{document}
    vielen lieben dank... max

  2. #2
    Registrierter Benutzer
    Registriert seit
    24.05.2013
    Beiträge
    56
    ich habe den fehler behoben: mit \noexpand. doch warum geht es nun plötzlich. da bin ich schon neugierig, weil ich versteh nicht wirklich was ich da gemacht haben....

    nun schaut es so aus:
    Code:
    \documentclass{article}
    \usepackage{scrlfile}
    
    \makeatletter
    \newcommand*\bilderpreamble{
    \documentclass[border=1mm]{standalone}^^J
    \usepackage{graphicx}^^J
    \usepackage{xcolor}^^J
    }
    \makeatother
    
    \makeatletter
    \newcommand{\test}[1]
    {
    \newwrite\bilderfile
    \noexpand\AtBeginDocument{%
    \openout\bilderfile #1-Stahlbaukalender.tex
      \write\bilderfile{\expandafter\detokenize\expandafter{\bilderpreamble}}%
      \write\bilderfile{%
        %\string\makeatletter^^J%
    %
        %\string\makeatother^^J%
        \string\begin{document}^^J%
    		\string\input{#1.pdf_tex}}%
    \AfterReadingMainAux{%
      \immediate\write\bilderfile{\string\end{document}}%
      \immediate\closeout\bilderfile
    }%
    }
    }
    \makeatother
    %\test{sd_023_DE}
    
    \begin{document}
    \test{sd_023_DE}
    \end{document}

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.05.2009
    Beiträge
    4.045
    Mal abgesehen von anderen Problemen wie dem newwrite: Es ist doch sinnlos \AtBeginDocument in einem Befehl zu benutzen, der nach \begin{document} ausgeführt wird.

  4. #4
    Registrierter Benutzer
    Registriert seit
    24.05.2013
    Beiträge
    56
    Zitat Zitat von u_fischer Beitrag anzeigen
    Es ist doch sinnlos \AtBeginDocument in einem Befehl zu benutzen, der nach \begin{document} ausgeführt wird.
    ich versteh nicht ganz was du meinst... aber das leigt wohl an mir. ich hab mir des alles eher zusammengeschustert ohne es wirklich zu verstehen.

Lesezeichen

Berechtigungen

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