15
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 #!/usr/bin/perl -w
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 use strict;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 use warnings;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 #
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 # create_overview_text.pl
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 #
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 # Wolfgang Schmidle, 2008-10-04
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 #
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
10
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 my @datei;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 while (<>)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 push @datei, $_;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
19
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 # Bestimme die neuen Dateinamen:
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 # Aus "dateiname.tex" wird "dateiname_overview.tex".
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 # Wenn der alte Dateiname nicht auf ".tex" endet, wird einfach "_neu.tex" angehängt.
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 $_ = $ARGV;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 /^(.+?)(\.TEX|\.tex)?$/;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 my $neuerDateiname = "$1_overview.tex";
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 my @neueDatei;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 my $sollweg = 0;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 my $leerzeile = 0;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 my $unwichtig = ' mainruleLessImportant clarification note ';
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 $unwichtig .= ' example exampleTest sampleImage smallSampleImage ';
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 $unwichtig .= ' crossref exception ';
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 $unwichtig .= ' tabelle liste ';
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
38
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 foreach (@datei)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 next if (/^%/ && !(/%!TEX/)); # remove comment lines, keep the header lines,
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 s/\.tex/_overview.tex/; # but add _overview to the reference
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 next if /^\\vspace/;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
45 next if /^\\tocspace/;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
46
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 # remove all unwanted enviromnents, e.g. clarification
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 if (/\\begin\{(.+?)\}/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 if ($unwichtig =~ / $1 /) { $sollweg = 1; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 unless ($sollweg)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 if (/^ *$/) { $leerzeile++; } else { $leerzeile = 0; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 push @neueDatei, $_ unless $leerzeile > 1;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
56 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
57 if (/\\end\{(.+?)\}/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 if ($unwichtig =~ / $1 /) { $sollweg = 0; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 for my $i (0..$#neueDatei-2)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 my $offset = 2;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 $_ = $neueDatei[$i+1];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67 if (/\\label/) { $offset++; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 $_ = $neueDatei[$i];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 if (/\\section/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
72 $_ = $neueDatei[$i+$offset];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
73 if (/^ *$/ || /\\section/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
74 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
75 $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
76 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
77 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
78 else
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
79 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
80 if (/\\subsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
81 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
82 $_ = $neueDatei[$i+$offset];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
83 if (/^ *$/ || /\\section/ || /\\subsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
84 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
85 $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
86 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
87 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
88 else
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
89 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
90 if (/\\subsubsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
91 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
92 $_ = $neueDatei[$i+$offset];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
93 if (/^ *$/ || /\\section/ || /\\subsection/ || /\\subsubsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
94 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
95 $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
96 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
97 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
98 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
99 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
100 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
101
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
102 # Schreibe das Ergebnis in die Datei $neuerDateiname im gleichen Verzeichnis wie die alte Datei.
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
103 # Eine bereits vorhandene Datei mit gleichem Namen wird ohne Warnung überschrieben.
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
104
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
105 open (NEUEDATEI, ">$neuerDateiname");
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
106 print NEUEDATEI @neueDatei;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
107 close (NEUEDATEI);
|