\include tut zunächst das gleiche wie \input: es bindet eine andere Datei
ein. Im Gegensatz zu \input, daß dieses immer tut, kann man jedoch mit
\includeonly{bla, blub, sülz} an _einer_ Stelle festlegen, welche Dateien
_wirklich_ mit übersetzt werden sollen. Das Beste: auch die *.aux-Files der
_nicht_ übersetzten Dateien werden gelesen und verarbeitet, so daß
Seitennummern, Bildernummernm, Inhaltsverzeichnis usw. trotzdem (fast) stimmen!
Gruß, Peter
---
offline vom 10.9. - 1.10.
Ich sitze gerade an meiner Diplomarbeit und habe da eine dringende Frage:
Wo liegt der Unterschied zwischen \input{file} und \include{file}?
Wie wende ich die wann am sinnvollsten an?
Aus der Beschreibung im Kopka bin ich nicht so ganz schlau geworden.
\input ist mir ja noch klar (f"ugt einfach das File an der entsprechenden
Stelle ein), aber wie benutzt man \include? Mu"s man da vorher die einzelnen
Teile irgendwie bearbeiten, oder was?
Fragen "uber Fragen\dots
Wer kennt sich aus?
... ratlos,
Micha
Das ist korrekt.
MH> aber wie benutzt man \include? Mu"s man da vorher die einzelnen Teile
irgendwie
MH> bearbeiten, oder was?
\include funktioniert ähnlich wie \input. Falls man nichts weiteres
unternimmt gibt es nur den Unterschied, daß mit \include automatisch eine
neue Seite im Document beginnt und dass für die mit \include eingelesene
Datei ein *.aux-File angelegt wird. Und genau da liegt der Hauptunterschied
zu \input. Du kannst ein Steuerfile erstellen, in dem z.B. globale
Definitionen stehen und dann ein paar Zeilen mit \include kommen (Am besten
für jedes Kapitel ein eigenes \include). Willst du jetzt nur einzelne
Kapitel setzen, so mußt du nur vor den \include den Befehle
\includeonly{kapitel1,kapitel3} setzen, um z.B. die Files kapitel1.tex und
kapitel3.tex zu übersetzen. Der Vorteil von \include ist nun der, daß TeX
wieß, daß das Kapitel 2 z.B. bis Seite 20 geht und Kapitel 3 also mit Seite
21 weitergeht. Ebenso kennt TeX noch alle \label aus Kapitel 2.
|-|elmut
>Hallo TeXnikerInnen!
\input ist Dir noch klar?
Noch mal kurz zusammengefasst, was mir dazu einfaellt.
1. Ein File, das mit \input in den Text eingefuehgt wird, wird so
bearbeitet, als wenn der in dem File enthaltene Text an der
aktuellen Stelle stehen wuerde (die Stelle, an der \input steht).
2. Ein mit \input eingefuehgtes File kann selbst wiederum andere Files
mit \input einbinden.
Nun zu \include:
1. \include faengt immer eine neue Seite an.
2. In einem mit \include einfebundenem Text darf kein weiteres
\include vorkommen. \input ist wieder erlaubt.
3. Mit \include eingebundene Texte kann man einzeln uebersetzen
(\includeonly{...}). Dabei werden alle Labels, Seitennummern usw.
so benutzt, als wenn der ganze Text uebersetzt wuerde.
Fazit: \include eignet sich sehr gut, um Kapitel getrennt zu
bearbeiten und zu uebersetzen. Mit dem Haupttext
\documentstyle[...]{...}
\includeonly{Kap1,Kap2}
\begin{document}
\include{Kap1}
\include{Kap2}
\include{Kap3}
\include{Kap4}
...
\end{document}
kann man getrennt die Kapitel bearbeiten und uebersetzen.
Klar? Wenn noch Fragen sind, ...
Ciao
--------------------------------------------------------------------------------
Andrej Cibula : University Paderborn : Germany <ci...@uni-paderborn.de>
Hallo Michael,
\input kann einfach durch \include ersetzt werden, ohne das sich das Endergebnis
aendert. Allerdings wird dann fuer jede include-Datei ein *.aux erstellt. Dies hat den
Vorteil, dass man in der Praeambel \includeonly{Datei} angeben kann:
Es wird dann nur dieser Teil uebersetzt, aber alle Informationen aus den anderen Dateien sind aus deren *.aux bekannt. Man hat also die Moeglichkeit, nur das Kapitel zu uebersetzen, das man gerade bearbeitet, erhaelt aber z.B. die korrekten Seitenzahlen, ein komplettes Inhaltsverzeichnis, kann auf label referenzieren, die in anderen Dateien eingefuehrt wurden usw.
mfG Hans-Juergen
--
Hans-Juergen Eiben
Universitaet Hannover (Germany)
Institut fuer Rechnerstrukturen und Betriebssysteme
email: ei...@irb.uni-hannover.de
MH>Wo liegt der Unterschied zwischen \input{file} und \include{file}?
MH> Wie wende ich die wann am sinnvollsten an?
Wenn \include ohne \includeonly verwendet wird, gibt es keinen
wesentlichen Unterschied außer, daß \include'tes file stetsauf eine
neuen Seite beginnt (oder?). Bei Verwendung von \includeonly werden
nur die Dateien der Dateiliste, die das Argument von \includeonly
ist, übersetzt; im Unterschied zu auskommentierten \input's werden
aber alle LaTeX-relevanten Informationen wie Seitenzahl,
Tabellenzähler u.a. für die Dateien der Liste aktualisiert.
Was soll das Ganze? Man kann hiermit nur die veränderten
TeXtteile neu übersetzen lassen, jedoch eben unter Beibehaltung
einer Vielzahl von Informationen.
Beispiel:
\documentstyle[...]{...}
\includeonly{%
%,mengalg%
,kombgrd%
%,bedingt%
}
\include{mengalg}
\include{kombgrd}
\include{bedingt}
\begin{document}
[...]
\end{document}
Angenommen, mengalg belegt die Seiten 1--5, kombgrd die Seiten 6--10
und bedingt sie Seiten 11--20. Nun wird kombgrd neuer TeXt
zugefügt, sodaß sich die Datei um 2 LaTeX-Seiten verlängert. Beim
nächsten LaTeX-Lauf werden dann kombgrd die Seiten 6--12 und bedingt
die Seiten 13--22 zugewiesen.
\input ist *im Gegensatz zu \include* rekursiv andwendba, d.h. der ge-inputtete
;-) Text darf wieder den Befehl \input enthalten.
für \include gibt es dafür den Befehl \includeonly, der erlaubt, recht einfach
einzelne Abschnitte auszublenden, die man momentan nicht mitüberseten lassen
will.
Letztetes habe ich bei meiner Staatsexamensarbeit benutzt, damit nicht jedesmal
alle 80 Seiten durchgeTeXt werden mußten, nur weil ich an *einem* Kapitel was
geändert habe.
Inquiring mice are glad to know,
Markus
MH> Wo liegt der Unterschied zwischen \input{file} und \include{file}?
MH> Wie wende ich die wann am sinnvollsten an?
Mit \input{file} wird an dieser Stelle das benannte File zwingend
eingelesen, so als ob es direkt im Text stehen würde.
Mit \include{file} wird immer auf einer neuen Seite angefangen (\clearpage).
Dazu gehört noch der Befehl \includeonly{file}.
Z.B.:
Es existieren die Files filea,fileb und filec. Mit
\incudeonly{filea,fileb,filec}
werden alle drei als zum Text gehörig betrachtet und mit
\include{filea}
\include{fileb}
\include{filec}
auch in dieser Reihenfolgen eingelesen.
Mit
\incudeonly{filea,fileb,filec}
\include{filec}
wird nur der Text aus filec eingelesen und bearbeitet (gebrochen).
Aus den AUX-File von filea und fileb ließt TeX die Seitenzahlen und
Kapitelnummern, also alle relevanten Zählerstände ein. Im DVI-File
ist der Text aus filec dann mit den richtigen Zählern versehen,
erspart hast Du dir aber die erneute Bearbeitung der evt. schon
fertigen vorhergehenden Texte und damit auch Zeit gespart.
Gruß
Uwe
.
\include ist dazu da, genau wie \input, ein grosses Dokument in einzelne
Files aufzusplitten, wobei \include aber einige praktische Besonderheiten
aufweist.
Mit \include ist es moeglich, dass Files, die bereites mit TeX bearbeitet
wurden, in einem TeX-Lauf nicht mehr bearbeitet werden, d.h. du gibst an
welche Files bearbeitet werden sollen, die anderen Files werden dann einfach
uebersprungen, aber die Seitenanzahl und Kapitelnummerierung und ... aus den
uebersprungenen Kapiteln werden beruecksichtigt (leider weist \include aber
bezogen auf die Nummerierung ein Einschraenkungen auf, aber dazu unten
mehr.)
Ein kurzes Beispiel: Du hast einen Text mit 5 Kapiteln, wobei jedes Kapitel
ein extra File ist. Die einzelnen Kapitel wurden geschrieben und als Gesamtes
schon mit TeX bearbeitet. Nun findest du einen Fehler in z.B. Kap.3. Es waere
doch nun bloed, wenn du auch wieder Kap.1,2,4 und 5 mit TeX bearbeiten
muesstest (ein TeX-Lauf ist ja auch nicht das schnellste, vorallem bei
groesseren Dokumenten). Und nun kommt \include ins Spiel. Du kannst mit
\includeonly{file-list} (muss im Vorspann stehen) angeben, welche(s) File(s)
im TeX-Lauf beruecksichtigt werden sollen (file-list = Angabe von Files ohne
Endung .tex und durch Kommata getrennt z.B. kap2,kap4).
Hier das zugehoerige TeX-File:
\documentstyle[german]{book}
...
\includeonly{kap3} <-- damit gibst du an, dass nur kap3 bearbeitet
werden soll
...
\begin{document}
...
\include{kap1}
\include{kap2}
\include{kap3} <-- nur dieses \include wird bearbeitet
\include{kap4}
\include{kap5}
...
\end{document}
Hier wird nun nur kap3.tex erneut mit TeX bearbeitet.
Nun aber zu den Einschraenkungen, die \include aufweist:
- die mit \include eingebundenen Files fangen immer mit einer neuen Seite
an und der Text, der auf ein \include folgt, faengt auch auf einer neuen
Seite an (aber wenn man einzelne Kapitel mit \include einfuegt, sollte
dies kein Nachteil sein)
- wenn du nun z.B. in kap3 groessere Aenderungen durchfuehrst, z.B. mehrere
Seiten neu schreibst, erfahren kap4 und kap5 nichts von dieser Aenderung,
d.h. kap4 fing vor der Aenderung mit Seite 23 an (kap3 hoerte mit Seite 22
auf). Nun hast du neue Seiten in kap3 eingefuegt, und kap3 hoert nun mit
Seite 26 auf, also sollte Kap4 mit Seite 27 anfangen, aber das passiert
leider nicht. Kap4 faengt nun wieder mit Seite 23 an. Deshalb musst du
bei Aenderungen, die irgendwelche Nummerierungen veraendern (Seitennummer,
Bildnummer...) die darauffolgenden Teile beim TeX-Lauf beruecksichtigen,
d.h beim obigen Beispiel muessen nun auch wieder kap4 und kap5 zusaetzlich
mit TeX bearbeitet werden, damit alles stimmt.
Hoffe dir damit geholfen zu haben.
Servus Raphael
PS: Im Buch von Kopka (Einfuehrung in LaTeX) ist unter Kapitel 8.1.2
(3. Auflage) der \include-Befehl eigentlich recht gut erklaert.
Hallo Michael,
MH> Ich sitze gerade an meiner Diplomarbeit und habe da eine dringende
MH> Frage:
MH> Wo liegt der Unterschied zwischen \input{file} und \include{file}?
MH> Wie wende ich die wann am sinnvollsten an?
Der \input-Befehl liest einfach ein File ein, wirkt als ob der input-Text
direkt an dieser Stelle stehen wuerde, kann auch weitere \input-Befehle
enthalten. Kann man verwenden, wenn man z.B. immer bestimmte Files in seine
Texte einbinden will, muss dann nicht immer neu geschrieben werden.
Der \include-Befehl bindet ebenfalls ein neues File ein, faengt aber eine neue
Seite an, z.B. sinnvoll die verschieden Kapitel einzuladen. Im Vorspann kann
zusaetzlich ein \includeonly-Befehl stehen, der als Parameter eine Fileliste
(durch Kommata getrennt) enthaelt, dann werden nur diese Files eingelesen.
MH> Aus der Beschreibung im Kopka bin ich nicht so ganz schlau geworden.
Die Beschreibung find ich eigentlich ganz klar.
Ausprobieren hilft auch
Gruss
Hartmut
Die Loesung steht in latex.tex drin:
% \include{NAME} : Does an \input NAME unless \partsw is true and
% NAME is not in \@partlist. If \@filesw is true, then
% it directs .AUX output to NAME.AUX, including a
% checkpoint at the end.
% \input{NAME} : The same as TeX's \input, except it allows optional
% braces around the file name.
Alles Klar? Die einzuguegenden Dateien haben auf jeden Fall wohl das gleiche
Format.
E.H.
du hast geschrieben:
>Angenommen, mengalg belegt die Seiten 1--5, kombgrd die Seiten 6--10 und
>bedingt sie Seiten 11--20. Nun wird kombgrd neuer TeXt zugefügt, sodaß
>sich die Datei um 2 LaTeX-Seiten verlängert. Beim nächsten LaTeX-Lauf
>werden dann kombgrd die Seiten 6--12 und bedingt die Seiten 13--22
>zugewiesen.
Das ist leider falsch, da hier die Nummerierung der einzelnen Teile nicht
relativ sonder absolut gespeichert wird.
Wenn du nun nur kombgrd durch \includeonly mit TeX bearbeitest, wird zwar
kombgrd bis zur Seite 12 gehen, aber bedingt faengt wieder bei Seite 11
an. Meiner Meinung aber kein Nachteil (siehe dazu auch meinen Kommentar auf
meinen Kommentar ;-) ).
Servus Raphael
PS: Dies ist nachzulesen im Buch von Kopka (Einfuehrung in LaTeX, Kap 8.1.2)
und im Buch von Leslie Lamport Kap. 4.4 'Splitting Your Input'.
Zuerst einmal dachte ich, dass die mit \includeonly ausselektierten TeX-Files
auch mit ins DVI-File uebernommen werden. Dies ist falsch, es wird nur
das(die) mit \includeonly selektierte(n) TeX-File(s) ins DVI-File uebernommen.
Allerdings mit der Nummerierung, die so auch erzeugt wuerde, wenn die vor-
herigen TeX-Files mit eingebunden waeren.
Nun schrieb ich:
>auf). Nun hast du neue Seiten in kap3 eingefuegt, und kap3 hoert nun mit
>Seite 26 auf, also sollte Kap4 mit Seite 27 anfangen, aber das passiert
>leider nicht. Kap4 faengt nun wieder mit Seite 23 an. Deshalb musst du
Das kap4 mit Seite 23 anfaengt ist eigentlich egal, da ich fuer ein gesamtes
DVI-File ja alle TeX-Files mit TeX bearbeiten muss. So gesehen ist die
absolute Speicherung der Nummerierung eigentlich kein Nachteil. Oder??
Servus Raphael (der hoffentlich was daraus gelernt hat)