PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : flatten für Windows zur Benutzung mit Latexdiff



Magger
27-07-2010, 10:03
Hallo,

ich benutze schon seit längerem das Programm latexdiff um Änderungen zwischen zwei Versionen eines Dokuments kenntlich zu machen. Das funktioniert bei kleinen Dokumenten auch sehr gut.

Jetzt würde ich das gern mal bei einem längeren Dokument machen, in dem natürlich mal \include-Befehle benutzt werden. Leider kommt latexdiff damit nicht zurecht. Es gibt zwar eine Option --flatten, aber die erlaubt nur eine include-Ebene.

Jetzt habe ich ein Paket http://www.ctan.org/tex-archive/support/flatten/ gefunden, mit dem man ein großes Latex-Dokument mit vielen include-Befehlen "einebnen" kann. Leider funktioniert dass scheinbar aber nur unter Linux und nicht unter Windows.

Kennt jemand eine Alternative, die unter Windows/MikTeX funktioniert? Oder kann man die Linuxvariante irgendwie einfach auf Windows portieren?

Viele Grüße

Mathias

voss
27-07-2010, 10:26
Jetzt würde ich das gern mal bei einem längeren Dokument machen, in dem natürlich mal \include-Befehle benutzt werden. Leider kommt latexdiff damit nicht zurecht. Es gibt zwar eine Option --flatten, aber die erlaubt nur eine include-Ebene.

Jetzt habe ich ein Paket http://www.ctan.org/tex-archive/support/flatten/ gefunden, mit dem man ein großes Latex-Dokument mit vielen include-Befehlen "einebnen" kann. Leider funktioniert dass scheinbar aber nur unter Linux und nicht unter Windows.

Kennt jemand eine Alternative, die unter Windows/MikTeX funktioniert? Oder kann man die Linuxvariante irgendwie einfach auf Windows portieren?


TeX interessiert sich nicht für das Betriebssystem. Also probiere es aus.
Ansonsten kannst du auch weiter mit include arbeiten, erstellst aber
für latexdiff vorab _eine_ Hauptdatei. Ich habe mal ein kleines Perlscript
dafür geschrieben, welches alle include/input auswertet und _eine_
einzige Datei erstellt.

Herbert

Magger
27-07-2010, 15:48
Hallo Herbert,


TeX interessiert sich nicht für das Betriebssystem. Also probiere es aus.
flatten ist aber meiner Meinung nach kein TeX-Programm, sondern was Eigenständiges. Man kann es auch nicht über den MikTeX-Paketmanager installieren.


Ich habe mal ein kleines Perlscript
dafür geschrieben, welches alle include/input auswertet und _eine_
einzige Datei erstellt.
das flatten ist genau so ein Tool, nur leider in "flex" geschrieben. Keine Ahnung was das ist, nie gehört, Wikipedia weiß auch Antwort. Daraus kann man dann irgendwie C-Code erstellen, den man dann wiederum irgendwie zu einer Binary kompilieren kann.

Wenn du ein Perl-Script hast, das genau dass macht, dann würde ich das auch gern haben. Perl läuft mittels Strawberry Perl schließlich auch prima unter Windows.

Viele Grüße

Mathias Magdowski

voss
27-07-2010, 17:01
Wenn du ein Perl-Script hast, das genau dass macht, dann würde ich das auch gern haben. Perl läuft mittels Strawberry Perl schließlich auch prima unter Windows.


hängt an, aber ich habe es noch nie unter Windows ausprobiert.
Es wird dazu benutzt, um für die Archivierung von Dissertationen
grundsätzlich nur eine einzige Datei zu erhalten. Du müsstest
es allerdings etwas erweitern, da ich unter Linux einfach

buildFile.pl < Eingabe-Datei > Ausgabe

machen kann. Die Erweiterung ist aber harmlos.

Herbert

Magger
28-07-2010, 10:50
Hallo Herbert,

gehe ich recht in der Annahme, dass dein Script nur die include-Befehle auswertet, aber nicht die input-Befehle?

Ich habe mal versucht dein Script entsprechend abzuändern, bin aber aufgrund meiner schlechten Perl-Kenntnisse gescheitert.

Hier ist mein Versuch: buildone.pl (http://www.mrunix.de/forums/attachment.php?attachmentid=3853&stc=1&d=1280306714)

Dann habe ich noch ein Perl-Script im Internet gefunden, dass den gleichen Zweck erfüllen soll: flattentex.pl (http://www.mrunix.de/forums/attachment.php?attachmentid=3855&stc=1&d=1280306714)

Hier war es mir auch möglich, das Script so zu erweitern, dass auch input-Befehle ausgewertet werden: flattentex_input.pl (http://www.mrunix.de/forums/attachment.php?attachmentid=3854&stc=1&d=1280306714)

Von daher ist mein Problem erstmal gelöst.

Ein Sache beschäftigt mich aber noch: Was ist mit dem newpage-Befehl, der von Latex eigentlich nach jedem include eingefügt wird?

Viele Grüße

Mathias

voss
28-07-2010, 11:00
Ein Sache beschäftigt mich aber noch: Was ist mit dem newpage-Befehl, der von Latex eigentlich nach jedem include eingefügt wird?


Mathias,
\include verwendet man ja in der Regel nur für \chapter, sonst
macht es eigentlich keinen Sinn. Und da \chapter ohnehin
einen Seitenvorschub erzeugt, ist auf das \newpage verzichtet
worden. Grundsätzlich hast du aber recht.

Ich sehe mir mal dein Skript bei Gelegenheit an.

Herbert