annotate DESpecs/skripte/create_overview_text.pl @ 19:d1dd35fc15df

Yet another new version.
author Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
date Thu, 02 May 2013 12:23:20 +0200
parents 6fa5e8c4e0dd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
1 #!/usr/bin/perl -w
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
2 use strict;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
3 use warnings;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
4
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
5 #
16
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
6 # create_overview_text2.pl
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
7 #
16
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
8 # Wolfgang Schmidle, 2008-10-06
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
9 #
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
10
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
11
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
12 my @datei;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
13
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
14 while (<>)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
15 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
16 push @datei, $_;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
17 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
18
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
19
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
20 # Bestimme die neuen Dateinamen:
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
21 # Aus "dateiname.tex" wird "dateiname_overview.tex".
616f0379a3a0 Skripte
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.
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
23
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
24 $_ = $ARGV;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
25 /^(.+?)(\.TEX|\.tex)?$/;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
26 my $neuerDateiname = "$1_overview.tex";
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
27
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
28
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
29 my @neueDatei;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
30
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
31 my $sollweg = 0;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
32 my $leerzeile = 0;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
33
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
34 my $unwichtig = ' mainruleLessImportant clarification note ';
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
35 $unwichtig .= ' example exampleTest sampleImage smallSampleImage ';
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
36 $unwichtig .= ' crossref exception ';
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
37 $unwichtig .= ' tabelle liste ';
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
38
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
39 foreach (@datei)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
40 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
41 next if (/^%/ && !(/%!TEX/)); # remove comment lines, keep the header lines,
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
42 s/\.tex/_overview.tex/; # but add _overview to the reference
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
43
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
44 next if /^\\vspace/;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
45 next if /^\\tocspace/;
16
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
46 next if /^\\clearpage/;
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
47 next if /^\\mehrzeilen/;
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
48
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
49 s/^%overview //; # commands for the overview document
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
50 # that are ignored in the main document
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
51
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
52 # remove all unwanted enviromnents, e.g. clarification
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
53 if (/\\begin\{(.+?)\}/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
54 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
55 if ($unwichtig =~ / $1 /) { $sollweg = 1; }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
56 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
57 unless ($sollweg)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
58 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
59 if (/^ *$/) { $leerzeile++; } else { $leerzeile = 0; }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
60 push @neueDatei, $_ unless $leerzeile > 1;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
61 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
62 if (/\\end\{(.+?)\}/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
63 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
64 if ($unwichtig =~ / $1 /) { $sollweg = 0; }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
65 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
66 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
67
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
68 for my $i (0..$#neueDatei-2)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
69 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
70 my $offset = 2;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
71 $_ = $neueDatei[$i+1];
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
72 if (/\\label/) { $offset++; }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
73
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
74 $_ = $neueDatei[$i];
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
75 if (/\\section/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
76 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
77 $_ = $neueDatei[$i+$offset];
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
78 if (/^ *$/ || /\\section/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
79 {
16
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
80 # $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
81 $neueDatei[$i] = "% $neueDatei[$i]";
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
82 $neueDatei[$i] .= '\refstepcounter{section}';
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
83 $neueDatei[$i] .= "\n";
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
84 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
85 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
86 else
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
87 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
88 if (/\\subsection/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
89 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
90 $_ = $neueDatei[$i+$offset];
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
91 if (/^ *$/ || /\\section/ || /\\subsection/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
92 {
16
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
93 # $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
94 $neueDatei[$i] = "% $neueDatei[$i]";
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
95 $neueDatei[$i] .= '\refstepcounter{subsection}';
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
96 $neueDatei[$i] .= "\n";
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
97 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
98 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
99 else
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
100 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
101 if (/\\subsubsection/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
102 {
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
103 $_ = $neueDatei[$i+$offset];
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
104 if (/^ *$/ || /\\section/ || /\\subsection/ || /\\subsubsection/)
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
105 {
16
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
106 # $neueDatei[$i] =~ s/\{(.+?)\}/\{($1)\}/;
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
107 $neueDatei[$i] = "% $neueDatei[$i]";
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
108 $neueDatei[$i] .= '\refstepcounter{subsubsection}';
6fa5e8c4e0dd new version
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents: 15
diff changeset
109 $neueDatei[$i] .= "\n";
15
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
110 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
111 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
112 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
113 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
114 }
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
115
616f0379a3a0 Skripte
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.
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
117 # Eine bereits vorhandene Datei mit gleichem Namen wird ohne Warnung überschrieben.
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
118
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
119 open (NEUEDATEI, ">$neuerDateiname");
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
120 print NEUEDATEI @neueDatei;
616f0379a3a0 Skripte
Klaus Thoden <kthoden@mpiwg-berlin.mpg.de>
parents:
diff changeset
121 close (NEUEDATEI);