Inhaltsverzeichnis dynamisch aus Dateiliste erstellen

Inhalt, Abbildungen, Tabellen, Quellcodes und andere Verzeichnisse


Geniva
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 30. Jul 2015, 11:45

Inhaltsverzeichnis dynamisch aus Dateiliste erstellen

Beitrag von Geniva »

Hallo,

aktuell stehe ich vor dem Problem, eine gesamte Ordnerstruktur mit PDFs rekursiv als TOC einzubetten.

Folgendes soll geschehen:

1. Eine Routine durchsucht einen Ordner (mit Unterordnern) im Dateisystem rekursiv nach *.PDF Dateien und sortiert diese alphabetisch

2. Diese Ergebnisliste (dynamisch oder per TXT-File) wird in einer Schleife
dafür verwendet, alle gefundenen *.PDF Dateien via LaTeX mit Description als Hyperlink einzubetten. Nicht die PDFs selbst!

3. Die einzige LaTeX-Aufgabe soll demnach sein, NUR die TOC als Inhaltsverzeichnis mit Hyperlinks (absolute, keine relativen) zu den *.PDF-Dateien zu generieren.

Wer kann mir hierzu evtl. helfen?
Vielen Dank schonmal ...

Besserwisser

Beitrag von Besserwisser »

Du hast bisher nur erklärt, was du machen willst, aber nicht, wo du ein Problem hast.

Das ganze ergibt übrigens kein Inhaltsverzeichnis, sondern ein Dateiverzeichnis o. ä. Mit \tableofcontents hat das nichts zu tun.

Die LaTeX-Aufgabe beschränkt sich dabei auch darauf, das bisher nicht näher spezifizierte Layout umzusetzen und dabei hyperref zu verwenden. Der Rest ist off-topic.

Es sei allenfalls noch darauf hingewiesen, dass man die Dateiliste auch in eine Datenbank für datatool schreiben könnte. Man kann aber natürlich auch direkt die gewünschte PDF-Datei erzeugen. Dafür böte sich perl oder texlua an, je nachdem, wie beispielsweise die "Description" gewonnen werden soll.

Geniva
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Do 30. Jul 2015, 11:45

Beitrag von Geniva »

Vielen Dank für die rasche Reaktion.

Völlig richtig erkannt: dies soll "nur" eine Art Dateiverzeichnis werden.
Die Formatierung soll erstmal Nebensache bleiben.

Bisher suche ich noch das "Suchscript" (Batch) zum rekursiven Auslesen des Basisordners.

Dieses Batch-Script kann natürlich die eigentliche *.tex Datei unmittelbar generieren, sodass LaTeX relativ wenig zu tun hat und nur zum Kompilieren der PDf verwendet werden würde.

Leider fehlt mir das entscheidende Wissen beide Punkte betreffend noch ... :-(

Besserwisser

Beitrag von Besserwisser »

Ein perl-Script, das das aktuelle Verzeichnis rekursiv nach beliebigen Dateien der Art *.* durchsucht, ist mit find2perl rasch erzeugt:
#! /usr/bin/perl -w
    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
        if 0; #$running_under_some_shell

use strict;
use File::Find ();

# Set the variable $File::Find::dont_use_nlink if you're using AFS,
# since AFS cheats.

# for the convenience of &wanted calls, including -eval statements:
use vars qw/*name *dir *prune/;
*name   = *File::Find::name;
*dir    = *File::Find::dir;
*prune  = *File::Find::prune;

sub wanted;



# Traverse desired filesystems
File::Find::find({wanted => \&wanted}, './');
exit;


sub wanted {
    my ($dev,$ino,$mode,$nlink,$uid,$gid);

    /^.*\..*\z/s &&
    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
    -f _
    && print("$name\n");
}
Für weitere Tests oder zusätzliche Ausgaben je Datei kann man bei Bedarf die Unterfunktion wanted erweitern.

Ansonsten: Die Frage, wie man ein Verzeichnis rekursiv durchsucht und dabei eine Liste von Dateien erzeugt, ist keine LaTeX-Frage und damit bestenfalls off-topic. Wir können dir hier weder perl, noch cmd, noch Powershell, noch bash beibringen. Selbst für reine lua-Programmierung haben wir bisher keinen Bereich. Dieses Unterforum ist dafür in jedem Fall falsch!

christoph88
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 75
Registriert: Di 21. Feb 2012, 13:43

Beitrag von christoph88 »

Wenn du mit Windows arbeitest und ein bisschen programmieren kannst, schreit das Problem geradezu nach Windows PowerShell. Google mal danach.

Antworten