PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Limit bei \include ?



chris19802009
13-03-2010, 20:39
Hallo!


Ich versuche, ein sehr umfangreiches LaTeX-Dokument (~ 125.000 Zeilen Quellcode) in leichter bearbeitbare Happen zu zerlegen. Diese binde ich anschließend über entsprechende \include-Befehle wieder zum Gesamtdokument zusammen.


Ich verwede TeXnicCenter, und dabei ist mir nach etwa dem dritten eingebundenen Teildokument (damit im Gesatdokument etwa 250 Seiten Output) aufgefallen, daß die Ausgabe, unabhängig vom verwendeten Lauf, jeweils nur noch aus "0 Seiten" besteht und auch kein pdf geschrieben wird. Der Durchlauf wird jedoch ohne Fehler abgeschlossen (Probleme beim varioref-Package treten gelegentlich auf).


Übersetzt man nur einzelne \include-Teile jeweils für sich (die anderen einfach auskommentiert), erhält man jeweils brauchbare pdf's. Auch das unhandliche Gesamtdokument läuft mit einer brauchbaren pdf-Ausgabe durch.


Ich bin jetzt etwas unsicher und habe dazu im Netz auch keine Informationen gefunden, aber gibt es bei aus \include zusammengesetzten Dokumenten so eine Art Obergrenz hinsichtlich Seitenzahl?:confused:


chris

The EYE
13-03-2010, 20:45
Hallo!

Also ich habe schon öfters mit include gearbeitet und lag immer über drei include Befehlen. Mach doch mal ein Minimalbeispiel indem du 3 (und mehr) kleinere Dateien mit include einbindest.

Gruß Max

chris19802009
13-03-2010, 21:36
Hallo Max,


danke für die schnelle Antwort! Anbei mal die prinzipielle Konstruktion, die ich verwende:




\documentclass[final,dvips,11pt,a4paper,fleqn,DIV10,tablecaptiona bove,liststotoc,titlepage,oneside]{scrbook}

\usepackage[german]{babel}
\usepackage[T1,T4,T5]{fontenc}
\usepackage[ansinew]{inputenc}

%...hier wurden jetzt viele, viele Pakete weggelassen

\begin{document}


...hier kommt schon etwas Text, wie ein Vorwort sowie das Inhaltsverzeichnis, Abbildungsverzeichnis, isw


\include{001-Einleitung}
%\include{002-Ergebnisse1}
%\include{003-Ergebnisse2}
%\include{004-Ergebnisse3}
%\include{005-Ergebnisse4}
%\include{006-Ergebnisse5}
\include{007-Ergebnisse6}
\include{008-Ergebnisse7}

\include{Literatur}

\end{document}




Die verwendet Präambel vor Ort ist sehr viel umfangreicher, da für die einzelnen Abschnitte zahlreiche Zusatzpakete geladen werden müssen.

Es ist reproduizerbar festzustellen, daß - wenn die Summe der über die include-Teile zusammengefügten Seitenzahl etwa 230 überschreitet - laut TeXnicCenter der Durchlauf nurmehr ein 0-Seiten-pdf erzeugt - unabhängig von der Art der kombinierten Einzelteile.

Wie gesagt: das unhandliche Gesamtdokument selbst läuft fehlerfrei durch, ist jedoch nicht sehr pflegeleicht hinsichtlich Fehlersuche und Verbesserungen...

LuPi
14-03-2010, 06:55
So ohne Inhalt der include-Dateien bringt das nicht besonders viel. Ich verwende regelmäßig zehn bis zwanzig includes ohne damit je ein Problem gehabt zu haben (auch jenseits der 250 Seiten). Aber zwei Dinge sind mir aufgefallen:

(1) Bei einem Probelauf hat sich mein LaTeX an der Zeile

\usepackage[T1,T4,T5]{fontenc}
gestört. Was passiert denn, wenn Du hierbei T4 und T5 weglässt?

(2) Ich habe mich auch lange gegen die NRS gesträubt, aber heute ist es vielleicht doch sinnvoller \usepackage[ngerman]{babel} zu verwenden.

Caveat: Ich verwende kein Texniccenter und weiß daher nicht, ob Dein Problem eventuell mit Deiner Umgebung zusammenhängt.

chris19802009
14-03-2010, 08:28
Morgen LuPi,



ich weiß, daß das ohne Inhalt nicht wirklich sinnvoll ist...:)

1.) T4 und T5 encoding wird gebraucht, da in einem Bereich des Dokuments die entsprechenden Pakete aus der vollständigen Präambel nur so die in ihnen enthaltenen Sonderzeichen zur Verfügung stellen.

2.) ja, ja...die neue Rechtschreibung. Ich bin da aus Prinzip dagegen - da wurde einem in der Schule jahrelang alles in der alten Rechtschreibung angestrichen und dann bekommt man im letzten Schuljahr gesagt "So, jetzt lernen wir die neue!"...da wollte ich dann ganz einfach nicht mehr! ;)

3.) Normalerweise macht TeXnicCenter keine Probleme bei mir. Wie gesagt: das gesamte Dokument und die einzelnen "Häppchen" werden problemlos übersetzt, nur das include-Konstrukt macht ab etwa dieser Seitenzahl Probleme

Ein mysteriöses Problem, das man vielleicht einfach akzeptieren muß...?

mechanicus
14-03-2010, 08:34
Hi,

hast du evtl. inlcude's verschachtelt?

Gruß
Marco

chris19802009
14-03-2010, 08:43
Guten Morgen Marco,


die includes selber sind nicht verschachtelt, die einzige Stelle, wo sich ein gegenseitiger Zugriff ergibt, ist die Literatur (siehe letztes include).

In allen \include-Teilen werden mit \citeup die entsprechenden Referenzen hochgestellt und in eckigen Klammern angegeben, und um einigermaßen das Aussehen im fertigen pdf einschätzen zu können (da dort sonst nur Fragezeichen stehen und die Liste mit Warnungen endlos wird) wird die Literatur auf diese Weise eingebunden.

mechanicus
14-03-2010, 08:51
Hi,

noch ein Versuch *G*

Du verwendest die Option dvips (eigentlich unnötig) und kompilierst also nicht mittels pdflatex. Hast du eine brauchbare dvi bzw. ps-Datei?

Gruß
Marco

chris19802009
14-03-2010, 09:40
Hallo Marco,


unabhängig davon, ob dvips als Option gesetzt ist:

* der DVI-Durchlauf bringt ein funktionsfähiges DVI-Dokument
* der PS-Durchlauf bringt ein funktionierendes PS-File
* der Lauf PS-PDF bringt ein _nicht_ funktionierendes...irgendwas:rolleyes:


Im TeXnicCenter werden aber in jedem Fall "0 Seiten" angezeigt.


Irgendwie merkwürdig, ich habe im Hinterkopf, daß es ansonsten bei mir mit include eigentlich auch nie Probleme gab (da waren die fertigen Dokumente aber auch weniger umfangreich, ~100 Seiten).


Gruß,
chris

mechanicus
14-03-2010, 10:09
* der DVI-Durchlauf bringt ein funktionsfähiges DVI-Dokument
* der PS-Durchlauf bringt ein funktionierendes PS-File

Wenn dem so ist, dann zeigt es, dass dein LaTeX keine Probleme macht. Der Fehler liegt also hier


* der Lauf PS-PDF bringt ein _nicht_ funktionierendes...irgendwas:rolleyes:

Das kann nur an ghostscript liegen, denn dieser bringt den Konverter ps2pdf mit (bei Windows + MikTeX).

Du hast jetzt mehrere Möglichkeiten:
* Testlauf mittels Konsole -- Prüfen ob Fehler angezeigt werden
* ghostscript neu installieren (wenn nicht die aktuelle Version)
-- Hier hören meine Windows-Kenntnisse auf :D
Also muss mal ein Windows-User ran.

Gruß
Marco

LuPi
14-03-2010, 13:29
Brauchst Du tatsächlich den Umweg über ps? Anderenfalls würde ich doch einfach mal pdfLaTeX probieren.

chris19802009
14-03-2010, 16:04
@mechanicus:

zur Sicherheit gerade nochmal probiert: auch bei frisch installiertem ghostscript bleibt das Problem wie gehabt. Ich glaube auch nicht, daß es an dieser Stelle hapert, da andere Dokumente problemlos auf diese Art und Weise überwsetzt werden können und das fragliche, lange Dokument bei geringer Seitenzahl auch ein laufendes pdf ergibt


@LuPi:

das PS war immer noch eine schöne Dreingabe (auch wenn es im Falle des fraglichen Dokuments knapp 2GB hat...:o), aber lebensnotwendig war/ist es nicht

auch auf die Gefahr hin, mich jetzt komplett zu blamieren: aber entspricht "pdfLaTeX" ganz einfach im TeXnicCenter dem Durchlauf "TEX => PDF"?

falls ja, gibt es dabei das Problem, daß zahlreiche Abbildungen als eps eingebunden werden und bei diesem Durchlauf dann nicht im fertigen Dokument auftauchen

mechanicus
14-03-2010, 16:18
Ich glaube auch nicht, daß es an dieser Stelle hapert
Ich denke schon, dass hier der Wurm drin ist. Schließlich hast du eine vollständige dvi und ps-Datei. Was sagt die Kompilierung über die Konsole?

Gruß
Marco

chris19802009
14-03-2010, 16:38
@mechanicus:


LaTeX direkt über die Konsole "zickt rum" - das funktioniert aber auch mit kleinen Beispiel-Dokumenten aus dem Netz nicht (hat es auch bisher nicht), deswegen verwende ich ausschließlich den Weg über das TeXnicCenter, da diese Probleme dort nicht auftauchen.

Deshalb kann ich diese Frage leider nicht beantworten


"rumzicken" genauer:

LaTeX beschwert sich in diesem Fall sehr ausdauernd darüber, daß es auf diverse .log und .aux-files nicht schreiben kann und stirbt dann in einem Meer von Fehlermeldungen - die Konsole muß dann geschlossen werden, manchmal erledigt das Windows7 aber auch gleich von alleine mit "latex funktioniert nicht mehr"

u_fischer
14-03-2010, 18:02
Erstens: Ich kann schlicht nicht glauben, dass LaTeX fehlerfrei in TeXnicCenter laufen kann, wenn es über die Konsole nicht geht. TexnicCenter tut ja auch nicht viel mehr als LaTeX im Hintergrund laufen zu lassen. Hast du denn mal nach einem LaTeX-Lauf die log-Datei kontrolliert?

Auf jeden Fall: wenn es über die Konsole nicht läuft, ist was richtig falsch. Reparier es und versuche nicht das Problem unter der Decke "TeXnicCenter" zu verstecken.

chris19802009
14-03-2010, 18:58
@Ulrike:

es kann nicht so falsch sein, wenn es über das TeXnicCenter ohne Probleme und Fehlermeldungen durchläuft und funktionierende pdf's erzeugt - mit Ausnahme des hier genannten Beispiels.

wenn Du den Nerv hast, schreibe ich gerne jeden einzelnen Schritt (den ich mache) samt aller Fehlermeldungen in der Konsole auf, vielleicht ist es ja ein Winwods-Problem, schließe mich da dann mechanicus an: wo sind die Windows-Nutzer...;)

Wie dem auch sei: anscheinend hatte das Problem eine andere Ursache: wollte gerade zum Beweis dafür, daß alles richtig läuft, aussagekräftige log-Dateien zum Hochladen erzeugen und habe dafür die Dateinamen kräftig gekürzt. Nachdem die Hauptdatei mit Präambel und \include-Bfehlen dann nicht mehr "Anhang_zum_Gesamtwerk_ueberarbeitet_nach_Neuauflag e" sondern nur noch "Anhang" hieß, hatte das TeXnicCenter keine Probleme mehr und spuckt (und spukt:D) wieder funktionierende pdfs aus.

Ist auch reproduzierbar: verlängert man den Dateinamen wieder auf das alte Format, tritt das Problem wie gehabt auf.


:D:D...also muß die Frage wohl nicht heißen "Limit bei \inlcude" sondern eher "Limit bei Dateinamenlänge"

mechanicus
14-03-2010, 19:26
also muß die Frage wohl nicht heißen "Limit bei \inlcude" sondern eher "Limit bei Dateinamenlänge"
das ist aber Windows. Dort sind die Zeichenlängen auf 256 begrenzt. Das schließt die Bezeichnung C:\..... usw ein. Also liegt der Fehler bei Windows oder ....:rolleyes:

Gruß
Marco