Anzeige:
Ergebnis 1 bis 5 von 5

Thema: Positionen in einer Seite in eine separate Datei schreiben

  1. #1
    Registrierter Benutzer
    Registriert seit
    16.09.2005
    Beiträge
    48

    Positionen in einer Seite in eine separate Datei schreiben

    Hallo,

    ich habe sehr viele von mir automatisch generierte Seiten, die je aus einer Überschrift und einer Minipage bestehen. Duch \raggedbottom habe ich jetzt erst mal zwischenzeitlich den automatischen Seitenausgleich abgestellt, um zu sehen, wieviel von einer Seite belegt ist.
    Jetzt möchte ich mir gerne eine txt-Datei duch LaTex erstellen lassen in der die Längen des verbrauchten Platzes der Seiten aufgelistet sind (und jeweils noch ein paar vorgegebene Wörter, wie zB. "Datei XZY;").
    Im Moment habe ich leider gar keinen Ansatz wie ich dieses bewerkstelligen kann. Hat jemand eine Idee wie ich dieses erreichen kann?

    MfG =>dnb<=

    PS:
    Um vielleicht mein dezeitiges (gewünschtes) Vorgehen zu beschreiben:
    - Generierung von tex-Dateien aus bestimmten html-Dateien mittels ein von mir geschriebenes Programm (Qt), je (PDF)Seite eine Überschrift und Minipage und der Befehl für die Verbrauchs-Ermittlung
    - \raggedbottom definiert
    - Dokument mit LaTex erzeugen lassen und gleichzeitig eine Liste des verbrauchten Platzes der Seiten generieren
    - Generierung von tex-Dateien aus bestimmten html-Dateien mittels dem Extra-Programm, ohne Seitenwechsel und Verbrauchsermittlung
    - Mit der Verbrauchs-Liste sollten dann die tex-Dateien optimal automatisch sortiert werden (kleines von mir geschriebenes Extra-Programm in Qt), damit möglichst wenig freier Platz übrig bleibt, also möglichst wenig Seiten im Buch.
    - \raggedbottom nicht definiert
    - Endprodukt pdf erstellen
    - Ziel ist es die ca. 880 Seiten im unsortierten Zustand auf ca. 500 Seiten im sortierten Zustand zu schrumpfen.

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    ich weiß ja nicht, warum Du die Minipages nicht einfach weglässt und die entstandenen Abschnitte der Reihe nach ausgibst -- am Umblättern wird es bei einem so vielseitigen Projekt wohl nicht liegen -- aber Du könntest Deine Minipage in ein erweitertes Kommando packen, in dem Du per \settoheight{\foo}{Minipage wiederholen} dessen Höhe in \foo lässt (den musst Du vorher entsprechend mit \newlength deklarieren).
    Dann bräuchtest Du wohl noch \newwrite, \openout und \closeout ... d. h. ob Du damit aus multiplen Dateien in eine einzige Textdatei schreiben kannst? Evtl geht es einfacher, wenn Du die ermittelte Höhe per \typeout einfach in die Logdatei schreibst (Du kannst Dir ja einen konstanten Text dazudichten, damit Du die Stellen in der Logdatei schnell wiederfinden kannst), da packst Du dann den Namen entsprechend hinzu.
    Mit ein wenig grep und sort sollten sich die gewünschten Informationen dann aus der Logdatei extrahieren lassen.
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    16.09.2005
    Beiträge
    48
    Hallo,

    schon mal vielen Dank für \newwrite, \openout und \closeout. Mit denen funktioniert es sehr gut. Leider wird bei meinem Beispiel die Höhe nicht richtig berechnet. Es werden 29,6 pt ausgerechnet, was aber viel zu wenig ist. Was mache ich bei meinem Beispiel falsch?
    Die Überschrift habe ich mit in die Tabelle reingezogen, damit diese mit berechnet wird.

    Code:
    \documentclass[a4paper]{scrbook}
    \begin{document}
       \newlength{\meinehoehe}
       \newwrite\outfile
       \raggedbottom
       \immediate\openout\outfile=positions.dat
       \immediate\write\outfile{Seitenhoehe;\the\textheight;}
    
    \begin{minipage}[t]{\textwidth}
    \begin{tabular}{lr}
    \multicolumn{2}{l}{\begin{large}\textsf{\textbf{Beispieltext}}\end{large}}\\[3mm]
    \begin{minipage}[b]{.6125\textwidth}
    \begin{itemize}
    \item x
    \item x
    \end{itemize}
    \end{minipage} & \end{tabular}\\[2mm]
    \end{minipage}\\
    Beispieltext
    
    \settoheight{\meinehoehe}{
    \begin{minipage}[t]{\textwidth}
    \begin{tabular}{lr}
    \multicolumn{2}{l}{\begin{large}\textsf{\textbf{Beispieltext}}\end{large}}\\[3mm]
    \begin{minipage}[b]{.6125\textwidth}
    \begin{itemize}
    \item x
    \item x
    \end{itemize}
    \end{minipage} & \end{tabular}\\[2mm]
    \end{minipage}\\
    Beispieltext
    }
    \immediate\write\outfile{Dateiname;\the\meinehoehe;}
    
       \immediate\closeout\outfile
    \end{document}
    MfG =>dnb<=

    PS:
    In der rechten Spalte von der Tabelle befindet sich normalerweise noch eine Grafik, mir ist aber gerade der Befehl für diese Rahmengrafik entfallen.

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Moin moin,
    da hab ich wohl falsch gedacht -- tu ich wohl immer noch
    Nun ja, wenn Du die Minipage oben ausrichtest, geht fast alles in die Tiefe;-)
    Code:
    \documentclass[a4paper,ngerman]{scrbook}
    \usepackage{babel,blindtext}
    \newlength{\meinehoehe}
    \newlength{\minitmp} 
    \newwrite\outfile
     \raggedbottom
    \newcommand\xminip[1]{%
      \noindent\begin{minipage}[t]{\textwidth}#1\end{minipage}
      \settoheight{\meinehoehe}{\begin{minipage}[t]{\textwidth}#1\end{minipage}}%
      \settodepth{\minitmp}{\begin{minipage}[t]{\textwidth}#1\end{minipage}}%
      \addtolength{\meinehoehe}{\minitmp}%
      \immediate\openout\outfile=positions.dat
      \immediate\write\outfile{Seitenhoehe;\the\textheight;}
      \immediate\write\outfile{Dateiname;\the\meinehoehe;}
      \immediate\closeout\outfile
    }
    
    \begin{document}
    
    \xminip{
    \begin{tabular}{lr}
    \multicolumn{2}{l}{\textsf{\textbf{\large Beispieltext}}}\\[3mm]
    \begin{minipage}[b]{.6125\textwidth}
    \begin{itemize}
    \item x
    \item x
    \end{itemize}
    \end{minipage} & \end{tabular}\\[2mm]
    Beispieltext
    \blindtext[5]
    }
    
    \end{document}
    -- das passt auch noch nicht hundertprozentig, aber immerhin sind's nur noch 5,5 Punkt daneben ... OTOH sehen viele Augen mehr als nur ein Paar.
    MfG,
    Rainer
    There's nothing a good whack with a hammer won't fix!

  5. #5
    Registrierter Benutzer
    Registriert seit
    16.09.2005
    Beiträge
    48
    Hallo,

    vielen Dank für die Hilfe.
    Mit dem Beispiel habe ich es jetzt hinbekommen. Es hat mir zwar nur 78 Seiten Einsparung gebracht, aber immerhin. Jetzt komme ich auf ein ein Buch mit genau 400 Blättern ;-). DANKE

    MfG =>dnb<=

Lesezeichen

Berechtigungen

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