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 #
|
16
|
6 # create_overview_text2.pl
|
15
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 #
|
16
|
8 # Wolfgang Schmidle, 2008-10-06
|
15
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/;
|
16
|
46 next if /^\\clearpage/;
|
|
47 next if /^\\mehrzeilen/;
|
|
48
|
|
49 s/^%overview //; # commands for the overview document
|
|
50 # that are ignored in the main document
|
15
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 # remove all unwanted enviromnents, e.g. clarification
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 if (/\\begin\{(.+?)\}/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 if ($unwichtig =~ / $1 /) { $sollweg = 1; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
56 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
57 unless ($sollweg)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 if (/^ *$/) { $leerzeile++; } else { $leerzeile = 0; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 push @neueDatei, $_ unless $leerzeile > 1;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62 if (/\\end\{(.+?)\}/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 if ($unwichtig =~ / $1 /) { $sollweg = 0; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68 for my $i (0..$#neueDatei-2)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 my $offset = 2;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 $_ = $neueDatei[$i+1];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
72 if (/\\label/) { $offset++; }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
73
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
74 $_ = $neueDatei[$i];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
75 if (/\\section/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
76 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
77 $_ = $neueDatei[$i+$offset];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
78 if (/^ *$/ || /\\section/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
79 {
|
16
|
80 # $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
|
|
81 $neueDatei[$i] = "% $neueDatei[$i]";
|
|
82 $neueDatei[$i] .= '\refstepcounter{section}';
|
|
83 $neueDatei[$i] .= "\n";
|
15
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
84 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
85 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
86 else
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
87 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
88 if (/\\subsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
89 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
90 $_ = $neueDatei[$i+$offset];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
91 if (/^ *$/ || /\\section/ || /\\subsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
92 {
|
16
|
93 # $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
|
|
94 $neueDatei[$i] = "% $neueDatei[$i]";
|
|
95 $neueDatei[$i] .= '\refstepcounter{subsection}';
|
|
96 $neueDatei[$i] .= "\n";
|
15
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 else
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
100 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
101 if (/\\subsubsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
102 {
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
103 $_ = $neueDatei[$i+$offset];
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
104 if (/^ *$/ || /\\section/ || /\\subsection/ || /\\subsubsection/)
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
105 {
|
16
|
106 # $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
|
|
107 $neueDatei[$i] = "% $neueDatei[$i]";
|
|
108 $neueDatei[$i] .= '\refstepcounter{subsubsection}';
|
|
109 $neueDatei[$i] .= "\n";
|
15
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
110 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
111 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
112 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
113 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
114 }
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
115
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
116 # Schreibe das Ergebnis in die Datei $neuerDateiname im gleichen Verzeichnis wie die alte Datei.
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
117 # Eine bereits vorhandene Datei mit gleichem Namen wird ohne Warnung überschrieben.
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
118
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
119 open (NEUEDATEI, ">$neuerDateiname");
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
120 print NEUEDATEI @neueDatei;
|
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
121 close (NEUEDATEI);
|