Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! env python
- # -*- coding: utf-8 -*-
- # Eine kritische Edition.
- # datum/stand der fragmente
- # Hrsg und mit Kommentaren versehen von
- import sys
- import codecs
- sys.stdout = codecs.getwriter('utf8')(sys.stdout)
- import re
- PAGES = 476
- DINA4_H = 210.0
- DINA4_V = 297.0
- from xml.dom.minidom import parse, parseString
- COLORMAP = dict(map(lambda col: col.lower().split("="),
- "crimson=220,20,60;"
- "MediumForestGreen=50,129,75;"
- "teal=0,128,128;"
- "snow=255,250,250;"
- "ghost white=248,248,255;"
- "GhostWhite=248,248,255;"
- "white smoke=245,245,245;"
- "WhiteSmoke=245,245,245;"
- "gainsboro=220,220,220;"
- "floral white=255,250,240;"
- "FloralWhite=255,250,240;"
- "old lace=253,245,230;"
- "OldLace=253,245,230;"
- "linen=250,240,230;"
- "antique white=250,235,215;"
- "AntiqueWhite=250,235,215;"
- "papaya whip=255,239,213;"
- "PapayaWhip=255,239,213;"
- "blanched almond=255,235,205;"
- "BlanchedAlmond=255,235,205;"
- "bisque=255,228,196;"
- "peach puff=255,218,185;"
- "PeachPuff=255,218,185;"
- "navajo white=255,222,173;"
- "NavajoWhite=255,222,173;"
- "moccasin=255,228,181;"
- "cornsilk=255,248,220;"
- "ivory=255,255,240;"
- "lemon chiffon=255,250,205;"
- "LemonChiffon=255,250,205;"
- "seashell=255,245,238;"
- "honeydew=240,255,240;"
- "mint cream=245,255,250;"
- "MintCream=245,255,250;"
- "azure=240,255,255;"
- "alice blue=240,248,255;"
- "AliceBlue=240,248,255;"
- "lavender=230,230,250;"
- "lavender blush=255,240,245;"
- "LavenderBlush=255,240,245;"
- "misty rose=255,228,225;"
- "MistyRose=255,228,225;"
- "white=255,255,255;"
- "black=0,0,0;"
- "dark slate gray=47,79,79;"
- "DarkSlateGray=47,79,79;"
- "dark slate grey=47,79,79;"
- "DarkSlateGrey=47,79,79;"
- "dim gray=105,105,105;"
- "DimGray=105,105,105;"
- "dim grey=105,105,105;"
- "DimGrey=105,105,105;"
- "slate gray=112,128,144;"
- "SlateGray=112,128,144;"
- "slate grey=112,128,144;"
- "SlateGrey=112,128,144;"
- "light slate gray=119,136,153;"
- "LightSlateGray=119,136,153;"
- "light slate grey=119,136,153;"
- "LightSlateGrey=119,136,153;"
- "gray=190,190,190;"
- "grey=190,190,190;"
- "light grey=211,211,211;"
- "LightGrey=211,211,211;"
- "light gray=211,211,211;"
- "LightGray=211,211,211;"
- "midnight blue=25,25,112;"
- "MidnightBlue=25,25,112;"
- "navy=0,0,128;"
- "navy blue=0,0,128;"
- "NavyBlue=0,0,128;"
- "cornflower blue=100,149,237;"
- "CornflowerBlue=100,149,237;"
- "dark slate blue=72,61,139;"
- "DarkSlateBlue=72,61,139;"
- "slate blue=106,90,205;"
- "SlateBlue=106,90,205;"
- "medium slate blue=123,104,238;"
- "MediumSlateBlue=123,104,238;"
- "light slate blue=132,112,255;"
- "LightSlateBlue=132,112,255;"
- "medium blue=0,0,205;"
- "MediumBlue=0,0,205;"
- "royal blue=65,105,225;"
- "RoyalBlue=65,105,225;"
- "blue=0,0,255;"
- "dodger blue=30,144,255;"
- "DodgerBlue=30,144,255;"
- "deep sky blue=0,191,255;"
- "DeepSkyBlue=0,191,255;"
- "sky blue=135,206,235;"
- "SkyBlue=135,206,235;"
- "light sky blue=135,206,250;"
- "LightSkyBlue=135,206,250;"
- "steel blue=70,130,180;"
- "SteelBlue=70,130,180;"
- "light steel blue=176,196,222;"
- "LightSteelBlue=176,196,222;"
- "light blue=173,216,230;"
- "LightBlue=173,216,230;"
- "powder blue=176,224,230;"
- "PowderBlue=176,224,230;"
- "pale turquoise=175,238,238;"
- "PaleTurquoise=175,238,238;"
- "dark turquoise=0,206,209;"
- "DarkTurquoise=0,206,209;"
- "medium turquoise=72,209,204;"
- "MediumTurquoise=72,209,204;"
- "turquoise=64,224,208;"
- "cyan=0,255,255;"
- "light cyan=224,255,255;"
- "LightCyan=224,255,255;"
- "cadet blue=95,158,160;"
- "CadetBlue=95,158,160;"
- "medium aquamarine=102,205,170;"
- "MediumAquamarine=102,205,170;"
- "aquamarine=127,255,212;"
- "dark green=0,100,0;"
- "DarkGreen=0,100,0;"
- "dark olive green=85,107,47;"
- "DarkOliveGreen=85,107,47;"
- "dark sea green=143,188,143;"
- "DarkSeaGreen=143,188,143;"
- "sea green=46,139,87;"
- "SeaGreen=46,139,87;"
- "medium sea green=60,179,113;"
- "MediumSeaGreen=60,179,113;"
- "light sea green=32,178,170;"
- "LightSeaGreen=32,178,170;"
- "pale green=152,251,152;"
- "PaleGreen=152,251,152;"
- "spring green=0,255,127;"
- "SpringGreen=0,255,127;"
- "lawn green=124,252,0;"
- "LawnGreen=124,252,0;"
- "green=0,255,0;"
- "chartreuse=127,255,0;"
- "medium spring green=0,250,154;"
- "MediumSpringGreen=0,250,154;"
- "green yellow=173,255,47;"
- "GreenYellow=173,255,47;"
- "lime green=50,205,50;"
- "LimeGreen=50,205,50;"
- "yellow green=154,205,50;"
- "YellowGreen=154,205,50;"
- "forest green=34,139,34;"
- "ForestGreen=34,139,34;"
- "olive drab=107,142,35;"
- "OliveDrab=107,142,35;"
- "dark khaki=189,183,107;"
- "DarkKhaki=189,183,107;"
- "khaki=240,230,140;"
- "pale goldenrod=238,232,170;"
- "PaleGoldenrod=238,232,170;"
- "light goldenrod yellow=250,250,210;"
- "LightGoldenrodYellow=250,250,210;"
- "light yellow=255,255,224;"
- "LightYellow=255,255,224;"
- "yellow=255,255,0;"
- "gold=255,215,0;"
- "light goldenrod=238,221,130;"
- "LightGoldenrod=238,221,130;"
- "goldenrod=218,165,32;"
- "dark goldenrod=184,134,11;"
- "DarkGoldenrod=184,134,11;"
- "rosy brown=188,143,143;"
- "RosyBrown=188,143,143;"
- "indian red=205,92,92;"
- "IndianRed=205,92,92;"
- "saddle brown=139,69,19;"
- "SaddleBrown=139,69,19;"
- "sienna=160,82,45;"
- "peru=205,133,63;"
- "burlywood=222,184,135;"
- "beige=245,245,220;"
- "wheat=245,222,179;"
- "sandy brown=244,164,96;"
- "SandyBrown=244,164,96;"
- "tan=210,180,140;"
- "chocolate=210,105,30;"
- "firebrick=178,34,34;"
- "brown=165,42,42;"
- "dark salmon=233,150,122;"
- "DarkSalmon=233,150,122;"
- "salmon=250,128,114;"
- "light salmon=255,160,122;"
- "LightSalmon=255,160,122;"
- "orange=255,165,0;"
- "dark orange=255,140,0;"
- "DarkOrange=255,140,0;"
- "coral=255,127,80;"
- "light coral=240,128,128;"
- "LightCoral=240,128,128;"
- "tomato=255,99,71;"
- "orange red=255,69,0;"
- "OrangeRed=255,69,0;"
- "red=255,0,0;"
- "hot pink=255,105,180;"
- "HotPink=255,105,180;"
- "deep pink=255,20,147;"
- "DeepPink=255,20,147;"
- "pink=255,192,203;"
- "light pink=255,182,193;"
- "LightPink=255,182,193;"
- "pale violet red=219,112,147;"
- "PaleVioletRed=219,112,147;"
- "maroon=176,48,96;"
- "medium violet red=199,21,133;"
- "MediumVioletRed=199,21,133;"
- "violet red=208,32,144;"
- "VioletRed=208,32,144;"
- "magenta=255,0,255;"
- "violet=238,130,238;"
- "plum=221,160,221;"
- "orchid=218,112,214;"
- "medium orchid=186,85,211;"
- "MediumOrchid=186,85,211;"
- "dark orchid=153,50,204;"
- "DarkOrchid=153,50,204;"
- "dark violet=148,0,211;"
- "DarkViolet=148,0,211;"
- "blue violet=138,43,226;"
- "BlueViolet=138,43,226;"
- "purple=160,32,240;"
- "medium purple=147,112,219;"
- "MediumPurple=147,112,219;"
- "thistle=216,191,216;"
- "snow1=255,250,250;"
- "snow2=238,233,233;"
- "snow3=205,201,201;"
- "snow4=139,137,137;"
- "seashell1=255,245,238;"
- "seashell2=238,229,222;"
- "seashell3=205,197,191;"
- "seashell4=139,134,130;"
- "AntiqueWhite1=255,239,219;"
- "AntiqueWhite2=238,223,204;"
- "AntiqueWhite3=205,192,176;"
- "AntiqueWhite4=139,131,120;"
- "bisque1=255,228,196;"
- "bisque2=238,213,183;"
- "bisque3=205,183,158;"
- "bisque4=139,125,107;"
- "PeachPuff1=255,218,185;"
- "PeachPuff2=238,203,173;"
- "PeachPuff3=205,175,149;"
- "PeachPuff4=139,119,101;"
- "NavajoWhite1=255,222,173;"
- "NavajoWhite2=238,207,161;"
- "NavajoWhite3=205,179,139;"
- "NavajoWhite4=139,121,94;"
- "LemonChiffon1=255,250,205;"
- "LemonChiffon2=238,233,191;"
- "LemonChiffon3=205,201,165;"
- "LemonChiffon4=139,137,112;"
- "cornsilk1=255,248,220;"
- "cornsilk2=238,232,205;"
- "cornsilk3=205,200,177;"
- "cornsilk4=139,136,120;"
- "ivory1=255,255,240;"
- "ivory2=238,238,224;"
- "ivory3=205,205,193;"
- "ivory4=139,139,131;"
- "honeydew1=240,255,240;"
- "honeydew2=224,238,224;"
- "honeydew3=193,205,193;"
- "honeydew4=131,139,131;"
- "LavenderBlush1=255,240,245;"
- "LavenderBlush2=238,224,229;"
- "LavenderBlush3=205,193,197;"
- "LavenderBlush4=139,131,134;"
- "MistyRose1=255,228,225;"
- "MistyRose2=238,213,210;"
- "MistyRose3=205,183,181;"
- "MistyRose4=139,125,123;"
- "azure1=240,255,255;"
- "azure2=224,238,238;"
- "azure3=193,205,205;"
- "azure4=131,139,139;"
- "SlateBlue1=131,111,255;"
- "SlateBlue2=122,103,238;"
- "SlateBlue3=105,89,205;"
- "SlateBlue4=71,60,139;"
- "RoyalBlue1=72,118,255;"
- "RoyalBlue2=67,110,238;"
- "RoyalBlue3=58,95,205;"
- "RoyalBlue4=39,64,139;"
- "blue1=0,0,255;"
- "blue2=0,0,238;"
- "blue3=0,0,205;"
- "blue4=0,0,139;"
- "DodgerBlue1=30,144,255;"
- "DodgerBlue2=28,134,238;"
- "DodgerBlue3=24,116,205;"
- "DodgerBlue4=16,78,139;"
- "SteelBlue1=99,184,255;"
- "SteelBlue2=92,172,238;"
- "SteelBlue3=79,148,205;"
- "SteelBlue4=54,100,139;"
- "DeepSkyBlue1=0,191,255;"
- "DeepSkyBlue2=0,178,238;"
- "DeepSkyBlue3=0,154,205;"
- "DeepSkyBlue4=0,104,139;"
- "SkyBlue1=135,206,255;"
- "SkyBlue2=126,192,238;"
- "SkyBlue3=108,166,205;"
- "SkyBlue4=74,112,139;"
- "LightSkyBlue1=176,226,255;"
- "LightSkyBlue2=164,211,238;"
- "LightSkyBlue3=141,182,205;"
- "LightSkyBlue4=96,123,139;"
- "SlateGray1=198,226,255;"
- "SlateGray2=185,211,238;"
- "SlateGray3=159,182,205;"
- "SlateGray4=108,123,139;"
- "LightSteelBlue1=202,225,255;"
- "LightSteelBlue2=188,210,238;"
- "LightSteelBlue3=162,181,205;"
- "LightSteelBlue4=110,123,139;"
- "LightBlue1=191,239,255;"
- "LightBlue2=178,223,238;"
- "LightBlue3=154,192,205;"
- "LightBlue4=104,131,139;"
- "LightCyan1=224,255,255;"
- "LightCyan2=209,238,238;"
- "LightCyan3=180,205,205;"
- "LightCyan4=122,139,139;"
- "PaleTurquoise1=187,255,255;"
- "PaleTurquoise2=174,238,238;"
- "PaleTurquoise3=150,205,205;"
- "PaleTurquoise4=102,139,139;"
- "CadetBlue1=152,245,255;"
- "CadetBlue2=142,229,238;"
- "CadetBlue3=122,197,205;"
- "CadetBlue4=83,134,139;"
- "turquoise1=0,245,255;"
- "turquoise2=0,229,238;"
- "turquoise3=0,197,205;"
- "turquoise4=0,134,139;"
- "cyan1=0,255,255;"
- "cyan2=0,238,238;"
- "cyan3=0,205,205;"
- "cyan4=0,139,139;"
- "DarkSlateGray1=151,255,255;"
- "DarkSlateGray2=141,238,238;"
- "DarkSlateGray3=121,205,205;"
- "DarkSlateGray4=82,139,139;"
- "aquamarine1=127,255,212;"
- "aquamarine2=118,238,198;"
- "aquamarine3=102,205,170;"
- "aquamarine4=69,139,116;"
- "DarkSeaGreen1=193,255,193;"
- "DarkSeaGreen2=180,238,180;"
- "DarkSeaGreen3=155,205,155;"
- "DarkSeaGreen4=105,139,105;"
- "SeaGreen1=84,255,159;"
- "SeaGreen2=78,238,148;"
- "SeaGreen3=67,205,128;"
- "SeaGreen4=46,139,87;"
- "PaleGreen1=154,255,154;"
- "PaleGreen2=144,238,144;"
- "PaleGreen3=124,205,124;"
- "PaleGreen4=84,139,84;"
- "SpringGreen1=0,255,127;"
- "SpringGreen2=0,238,118;"
- "SpringGreen3=0,205,102;"
- "SpringGreen4=0,139,69;"
- "green1=0,255,0;"
- "green2=0,238,0;"
- "green3=0,205,0;"
- "green4=0,139,0;"
- "chartreuse1=127,255,0;"
- "chartreuse2=118,238,0;"
- "chartreuse3=102,205,0;"
- "chartreuse4=69,139,0;"
- "OliveDrab1=192,255,62;"
- "OliveDrab2=179,238,58;"
- "OliveDrab3=154,205,50;"
- "OliveDrab4=105,139,34;"
- "DarkOliveGreen1=202,255,112;"
- "DarkOliveGreen2=188,238,104;"
- "DarkOliveGreen3=162,205,90;"
- "DarkOliveGreen4=110,139,61;"
- "khaki1=255,246,143;"
- "khaki2=238,230,133;"
- "khaki3=205,198,115;"
- "khaki4=139,134,78;"
- "LightGoldenrod1=255,236,139;"
- "LightGoldenrod2=238,220,130;"
- "LightGoldenrod3=205,190,112;"
- "LightGoldenrod4=139,129,76;"
- "LightYellow1=255,255,224;"
- "LightYellow2=238,238,209;"
- "LightYellow3=205,205,180;"
- "LightYellow4=139,139,122;"
- "yellow1=255,255,0;"
- "yellow2=238,238,0;"
- "yellow3=205,205,0;"
- "yellow4=139,139,0;"
- "gold1=255,215,0;"
- "gold2=238,201,0;"
- "gold3=205,173,0;"
- "gold4=139,117,0;"
- "goldenrod1=255,193,37;"
- "goldenrod2=238,180,34;"
- "goldenrod3=205,155,29;"
- "goldenrod4=139,105,20;"
- "DarkGoldenrod1=255,185,15;"
- "DarkGoldenrod2=238,173,14;"
- "DarkGoldenrod3=205,149,12;"
- "DarkGoldenrod4=139,101,8;"
- "RosyBrown1=255,193,193;"
- "RosyBrown2=238,180,180;"
- "RosyBrown3=205,155,155;"
- "RosyBrown4=139,105,105;"
- "IndianRed1=255,106,106;"
- "IndianRed2=238,99,99;"
- "IndianRed3=205,85,85;"
- "IndianRed4=139,58,58;"
- "sienna1=255,130,71;"
- "sienna2=238,121,66;"
- "sienna3=205,104,57;"
- "sienna4=139,71,38;"
- "burlywood1=255,211,155;"
- "burlywood2=238,197,145;"
- "burlywood3=205,170,125;"
- "burlywood4=139,115,85;"
- "wheat1=255,231,186;"
- "wheat2=238,216,174;"
- "wheat3=205,186,150;"
- "wheat4=139,126,102;"
- "tan1=255,165,79;"
- "tan2=238,154,73;"
- "tan3=205,133,63;"
- "tan4=139,90,43;"
- "chocolate1=255,127,36;"
- "chocolate2=238,118,33;"
- "chocolate3=205,102,29;"
- "chocolate4=139,69,19;"
- "firebrick1=255,48,48;"
- "firebrick2=238,44,44;"
- "firebrick3=205,38,38;"
- "firebrick4=139,26,26;"
- "brown1=255,64,64;"
- "brown2=238,59,59;"
- "brown3=205,51,51;"
- "brown4=139,35,35;"
- "salmon1=255,140,105;"
- "salmon2=238,130,98;"
- "salmon3=205,112,84;"
- "salmon4=139,76,57;"
- "LightSalmon1=255,160,122;"
- "LightSalmon2=238,149,114;"
- "LightSalmon3=205,129,98;"
- "LightSalmon4=139,87,66;"
- "orange1=255,165,0;"
- "orange2=238,154,0;"
- "orange3=205,133,0;"
- "orange4=139,90,0;"
- "DarkOrange1=255,127,0;"
- "DarkOrange2=238,118,0;"
- "DarkOrange3=205,102,0;"
- "DarkOrange4=139,69,0;"
- "coral1=255,114,86;"
- "coral2=238,106,80;"
- "coral3=205,91,69;"
- "coral4=139,62,47;"
- "tomato1=255,99,71;"
- "tomato2=238,92,66;"
- "tomato3=205,79,57;"
- "tomato4=139,54,38;"
- "OrangeRed1=255,69,0;"
- "OrangeRed2=238,64,0;"
- "OrangeRed3=205,55,0;"
- "OrangeRed4=139,37,0;"
- "red1=255,0,0;"
- "red2=238,0,0;"
- "red3=205,0,0;"
- "red4=139,0,0;"
- "DebianRed=215,7,81;"
- "DeepPink1=255,20,147;"
- "DeepPink2=238,18,137;"
- "DeepPink3=205,16,118;"
- "DeepPink4=139,10,80;"
- "HotPink1=255,110,180;"
- "HotPink2=238,106,167;"
- "HotPink3=205,96,144;"
- "HotPink4=139,58,98;"
- "pink1=255,181,197;"
- "pink2=238,169,184;"
- "pink3=205,145,158;"
- "pink4=139,99,108;"
- "LightPink1=255,174,185;"
- "LightPink2=238,162,173;"
- "LightPink3=205,140,149;"
- "LightPink4=139,95,101;"
- "PaleVioletRed1=255,130,171;"
- "PaleVioletRed2=238,121,159;"
- "PaleVioletRed3=205,104,137;"
- "PaleVioletRed4=139,71,93;"
- "maroon1=255,52,179;"
- "maroon2=238,48,167;"
- "maroon3=205,41,144;"
- "maroon4=139,28,98;"
- "VioletRed1=255,62,150;"
- "VioletRed2=238,58,140;"
- "VioletRed3=205,50,120;"
- "VioletRed4=139,34,82;"
- "magenta1=255,0,255;"
- "magenta2=238,0,238;"
- "magenta3=205,0,205;"
- "magenta4=139,0,139;"
- "orchid1=255,131,250;"
- "orchid2=238,122,233;"
- "orchid3=205,105,201;"
- "orchid4=139,71,137;"
- "plum1=255,187,255;"
- "plum2=238,174,238;"
- "plum3=205,150,205;"
- "plum4=139,102,139;"
- "MediumOrchid1=224,102,255;"
- "MediumOrchid2=209,95,238;"
- "MediumOrchid3=180,82,205;"
- "MediumOrchid4=122,55,139;"
- "DarkOrchid1=191,62,255;"
- "DarkOrchid2=178,58,238;"
- "DarkOrchid3=154,50,205;"
- "DarkOrchid4=104,34,139;"
- "purple1=155,48,255;"
- "purple2=145,44,238;"
- "purple3=125,38,205;"
- "purple4=85,26,139;"
- "MediumPurple1=171,130,255;"
- "MediumPurple2=159,121,238;"
- "MediumPurple3=137,104,205;"
- "MediumPurple4=93,71,139;"
- "thistle1=255,225,255;"
- "thistle2=238,210,238;"
- "thistle3=205,181,205;"
- "thistle4=139,123,139;"
- "gray0=0,0,0;"
- "grey0=0,0,0;"
- "gray1=3,3,3;"
- "grey1=3,3,3;"
- "gray2=5,5,5;"
- "grey2=5,5,5;"
- "gray3=8,8,8;"
- "grey3=8,8,8;"
- "gray4=10,10,10;"
- "grey4=10,10,10;"
- "gray5=13,13,13;"
- "grey5=13,13,13;"
- "gray6=15,15,15;"
- "grey6=15,15,15;"
- "gray7=18,18,18;"
- "grey7=18,18,18;"
- "gray8=20,20,20;"
- "grey8=20,20,20;"
- "gray9=23,23,23;"
- "grey9=23,23,23;"
- "gray10=26,26,26;"
- "grey10=26,26,26;"
- "gray11=28,28,28;"
- "grey11=28,28,28;"
- "gray12=31,31,31;"
- "grey12=31,31,31;"
- "gray13=33,33,33;"
- "grey13=33,33,33;"
- "gray14=36,36,36;"
- "grey14=36,36,36;"
- "gray15=38,38,38;"
- "grey15=38,38,38;"
- "gray16=41,41,41;"
- "grey16=41,41,41;"
- "gray17=43,43,43;"
- "grey17=43,43,43;"
- "gray18=46,46,46;"
- "grey18=46,46,46;"
- "gray19=48,48,48;"
- "grey19=48,48,48;"
- "gray20=51,51,51;"
- "grey20=51,51,51;"
- "gray21=54,54,54;"
- "grey21=54,54,54;"
- "gray22=56,56,56;"
- "grey22=56,56,56;"
- "gray23=59,59,59;"
- "grey23=59,59,59;"
- "gray24=61,61,61;"
- "grey24=61,61,61;"
- "gray25=64,64,64;"
- "grey25=64,64,64;"
- "gray26=66,66,66;"
- "grey26=66,66,66;"
- "gray27=69,69,69;"
- "grey27=69,69,69;"
- "gray28=71,71,71;"
- "grey28=71,71,71;"
- "gray29=74,74,74;"
- "grey29=74,74,74;"
- "gray30=77,77,77;"
- "grey30=77,77,77;"
- "gray31=79,79,79;"
- "grey31=79,79,79;"
- "gray32=82,82,82;"
- "grey32=82,82,82;"
- "gray33=84,84,84;"
- "grey33=84,84,84;"
- "gray34=87,87,87;"
- "grey34=87,87,87;"
- "gray35=89,89,89;"
- "grey35=89,89,89;"
- "gray36=92,92,92;"
- "grey36=92,92,92;"
- "gray37=94,94,94;"
- "grey37=94,94,94;"
- "gray38=97,97,97;"
- "grey38=97,97,97;"
- "gray39=99,99,99;"
- "grey39=99,99,99;"
- "gray40=102,102,102;"
- "grey40=102,102,102;"
- "gray41=105,105,105;"
- "grey41=105,105,105;"
- "gray42=107,107,107;"
- "grey42=107,107,107;"
- "gray43=110,110,110;"
- "grey43=110,110,110;"
- "gray44=112,112,112;"
- "grey44=112,112,112;"
- "gray45=115,115,115;"
- "grey45=115,115,115;"
- "gray46=117,117,117;"
- "grey46=117,117,117;"
- "gray47=120,120,120;"
- "grey47=120,120,120;"
- "gray48=122,122,122;"
- "grey48=122,122,122;"
- "gray49=125,125,125;"
- "grey49=125,125,125;"
- "gray50=127,127,127;"
- "grey50=127,127,127;"
- "gray51=130,130,130;"
- "grey51=130,130,130;"
- "gray52=133,133,133;"
- "grey52=133,133,133;"
- "gray53=135,135,135;"
- "grey53=135,135,135;"
- "gray54=138,138,138;"
- "grey54=138,138,138;"
- "gray55=140,140,140;"
- "grey55=140,140,140;"
- "gray56=143,143,143;"
- "grey56=143,143,143;"
- "gray57=145,145,145;"
- "grey57=145,145,145;"
- "gray58=148,148,148;"
- "grey58=148,148,148;"
- "gray59=150,150,150;"
- "grey59=150,150,150;"
- "gray60=153,153,153;"
- "grey60=153,153,153;"
- "gray61=156,156,156;"
- "grey61=156,156,156;"
- "gray62=158,158,158;"
- "grey62=158,158,158;"
- "gray63=161,161,161;"
- "grey63=161,161,161;"
- "gray64=163,163,163;"
- "grey64=163,163,163;"
- "gray65=166,166,166;"
- "grey65=166,166,166;"
- "gray66=168,168,168;"
- "grey66=168,168,168;"
- "gray67=171,171,171;"
- "grey67=171,171,171;"
- "gray68=173,173,173;"
- "grey68=173,173,173;"
- "gray69=176,176,176;"
- "grey69=176,176,176;"
- "gray70=179,179,179;"
- "grey70=179,179,179;"
- "gray71=181,181,181;"
- "grey71=181,181,181;"
- "gray72=184,184,184;"
- "grey72=184,184,184;"
- "gray73=186,186,186;"
- "grey73=186,186,186;"
- "gray74=189,189,189;"
- "grey74=189,189,189;"
- "gray75=191,191,191;"
- "grey75=191,191,191;"
- "gray76=194,194,194;"
- "grey76=194,194,194;"
- "gray77=196,196,196;"
- "grey77=196,196,196;"
- "gray78=199,199,199;"
- "grey78=199,199,199;"
- "gray79=201,201,201;"
- "grey79=201,201,201;"
- "gray80=204,204,204;"
- "grey80=204,204,204;"
- "gray81=207,207,207;"
- "grey81=207,207,207;"
- "gray82=209,209,209;"
- "grey82=209,209,209;"
- "gray83=212,212,212;"
- "grey83=212,212,212;"
- "gray84=214,214,214;"
- "grey84=214,214,214;"
- "gray85=217,217,217;"
- "grey85=217,217,217;"
- "gray86=219,219,219;"
- "grey86=219,219,219;"
- "gray87=222,222,222;"
- "grey87=222,222,222;"
- "gray88=224,224,224;"
- "grey88=224,224,224;"
- "gray89=227,227,227;"
- "grey89=227,227,227;"
- "gray90=229,229,229;"
- "grey90=229,229,229;"
- "gray91=232,232,232;"
- "grey91=232,232,232;"
- "gray92=235,235,235;"
- "grey92=235,235,235;"
- "gray93=237,237,237;"
- "grey93=237,237,237;"
- "gray94=240,240,240;"
- "grey94=240,240,240;"
- "gray95=242,242,242;"
- "grey95=242,242,242;"
- "gray96=245,245,245;"
- "grey96=245,245,245;"
- "gray97=247,247,247;"
- "grey97=247,247,247;"
- "gray98=250,250,250;"
- "grey98=250,250,250;"
- "gray99=252,252,252;"
- "grey99=252,252,252;"
- "gray100=255,255,255;"
- "grey100=255,255,255;"
- "dark grey=169,169,169;"
- "DarkGrey=169,169,169;"
- "dark gray=169,169,169;"
- "DarkGray=169,169,169;"
- "dark blue=0,0,139;"
- "DarkBlue=0,0,139;"
- "dark cyan=0,139,139;"
- "DarkCyan=0,139,139;"
- "dark magenta=139,0,139;"
- "DarkMagenta=139,0,139;"
- "dark red=139,0,0;"
- "DarkRed=139,0,0;"
- "light green=144,238,144;"
- "LightGreen=144,238,144".split(";")))
- COLOR = dict(zip("Abromeit 2001|Ackerman 2000|Adams 1992|Annaheim 1992"
- "|Bauer 2002|Beer 2000|Blumenwitz 2003|Bocklet 2003"
- "|Bouton 2001|Breit 2001|Brockhaus 1986|Brugger 1994"
- "|Buck 1996|Bundestag 2003|Bundestag 2006|Burgard 2000"
- "|Burghardt 2002|Böckenförde 1999"
- "|CRS Annotated Constitution 1992|Casper 2001"
- "|Century Foundation 1999|Chiang 2003|Currie 1998"
- "|Di Fabio 2001|Dippel 2001|Dix 2001|Duftner 2001"
- "|Egerer 1989|Examen Europaeum Consortium o.J."
- "|Fraenkel 1960|Freiburghaus 2003|Gebhardt 1987"
- "|Giering o.J.|Grimm 1994|Grimm 2001|Guérot 2001"
- "|Görlitz 2003|Görlitz 2003b|Habermas 2001|Haller 1973"
- "|Haller 2003|Haratsch 2000|Hartleif 2004|Heideking 1998"
- "|Heideking 2004|Held 2004|Hellriegel/Thoma 2005|Heun 1999"
- "|Hirsch 2001|Hirsch 2002|Hofmeister 1988|Hummer 2003"
- "|Häberle 1992|Häberle 2006|Hänsch 2003|Janssen 2005"
- "|Jouanjan 2003|Kimmel 1990|Kimmel 1994|Kirchhof 1998"
- "|Koeppen 2003|Kreis 2003|Kühnhardt 2003|Kühnhardt 2004"
- "|Kühnhardt 2005|LZB NDS 2004|Landtag-BW 2002|Langen 2003"
- "|Läufer 1994|Marcher 2002|Marhold 2006|Martenczuk 2000"
- "|Marxer 2004|Maurer 2003|Maurer 2005|Mayer 2003"
- "|Mayer 2004|Moisi 2001|Murphy 2000|Mäder 1999|NZZ 2003"
- "|Nettesheim 2002|Nettesheim 2004|Neuss 2000"
- "|Obermüller 2003|Opolka 1998|Pechstein 2000"
- "|Pentzlin 2003|Pernice 2001|Peters 2003|Peters 2004"
- "|Petrosjan 1965|Pieper 1998|Rakove 2003|Ratzmann 2003"
- "|Reinalter 2006|Reinhard 1999|Robbers 2003|Sautter 1976"
- "|Schäfer 2003|Scharpf 1995|Schieren 2002|Schmitz 2001"
- "|Schnepel 2003|Scholz 2001|Schulze 1999|Schwab 2001"
- "|Schäfer 2005|Schütz 2000|Shell 1992|Shell 2005"
- "|Sokatscheva 2000|Stein 1997|Steinberger 1987"
- "|Steinkamp 1999|Stern 1977|Stern 1980|Stern 1996"
- "|Stern 1997|Stoiber 2001|Stolleis 2002|Stürmer 2001"
- "|Supreme Court Center|Tammler 2003|Tammler 2004"
- "|Thalmaier 2005|Triebel 2003|Tushnet 1999"
- "|U.S. Diplomatic Mission to Germany"
- "|U.S. Diplomatic Mission to Germany 2004"
- "|Vaubel 2003|Vile 1991|Volkmann-Schluck 2001"
- "|Waibel 2001|Wasser 1997|Wasser 1997b|Weege 2005"
- "|Zehnpfennig 1997|Zippelius 1999".split("|"),
- u"yellowgreen olivedrab3 olivedrab2 olivedrab1"
- " olivedrab darkolivegreen darkolivegreen2"
- " darkolivegreen1 darkolivegreen3 greenyellow"
- " chartreuse3 chartreuse2 chartreuse1 chartreuse"
- " lawngreen darkgreen green forestgreen green3 green2"
- " limegreen lime green1 palegreen3 darkseagreen"
- " darkseagreen3 darkseagreen2 darkseagreen1"
- " mediumforestgreen seagreen2 seagreen1 seagreen3"
- " seagreen mediumseagreen springgreen3 springgreen2"
- " springgreen1 springgreen mediumspringgreen turquoise"
- " mediumturquoise teal darkcyan cyan3 cyan2 cyan1 cyan"
- " aqua darkturquoise turquoise3 turquoise2 turquoise1"
- " deepskyblue3 deepskyblue2 deepskyblue1 deepskyblue"
- " skyblue skyblue3 skyblue2 skyblue1 steelblue3"
- " steelblue2 steelblue1 steelblue dodgerblue3"
- " dodgerblue2 dodgerblue1 dodgerblue cornflowerblue"
- " royalblue3 royalblue2 royalblue1 royalblue mediumblue"
- " blue3 blue2 blue1 blue slateblue3 slateblue2"
- " slateblue1 slateblue mediumslateblue mediumpurple3"
- " mediumpurple2 mediumpurple1 mediumpurple purple1"
- " purple3 purple2 blueviolet purple darkorchid2"
- " darkorchid3 darkorchid1 darkorchid darkviolet"
- " mediumorchid3 mediumorchid2 mediumorchid1"
- " mediumorchid purple darkmagenta magenta3 magenta2"
- " magenta1 magenta fuchsia violet orchid3 orchid1 orchid"
- " orchid2 violetred mediumvioletred maroon3 maroon2"
- " maroon1 deeppink3 deeppink2 deeppink1 deeppink"
- " hotpink hotpink1 hotpink2 violetred2 violetred1"
- " violetred3 hotpink3 palevioletred3 palevioletred1"
- " palevioletred2 palevioletred crimson maroon darkred"
- " red3 brown firebrick red2 firebrick3 red1 brown3"
- " firebrick2 indianred3 indianred brown2 firebrick1"
- " brown1 indianred2 indianred1".split()))
- def get_color(quelle):
- if COLOR.has_key(quelle):
- return COLOR[quelle]
- return "red"
- def open_ly(filename, fragments):
- ly = codecs.open(filename, "w", encoding='utf-8')
- print >> ly, r'\documentclass[10pt,a4]{article}'
- print >> ly, r'\usepackage[ngerman]{babel}'
- # print >> ly, r'\usepackage[absolute,overlay,showboxes]{textpos}'
- print >> ly, r'\usepackage[absolute,overlay]{textpos}'
- print >> ly, r'\usepackage[T1]{fontenc}'
- print >> ly, r'\usepackage[utf8]{inputenc}'
- print >> ly, r'\usepackage[condensed,math]{iwona}'
- print >> ly, r'\usepackage{tikz}'
- print >> ly, r'\setlength{\parindent}{0pt}'
- print >> ly, r'\setlength{\TPHorizModule}{1mm}'
- print >> ly, r'\setlength{\TPVertModule}{\TPHorizModule}'
- print >> ly, r'\pagestyle{empty}'
- print >> ly, r'\begin{document}'
- title_hpos = 5
- title_hsize = DINA4_H - 2 * title_hpos
- title_vpos = 148
- print >> ly, r"\begin{textblock}{%i}(%i,%i)" % (title_hsize, title_hpos, title_vpos)
- quellen = dict()
- for page in xrange(PAGES):
- for frag in fragments[page]:
- cat = frag['src_cat']
- if cat != "" and cat != "N/A":
- quellen[cat] = quellen.get(cat, 0) + 1
- print >> ly, r'\large{}und: '
- names = quellen.keys()
- names.sort()
- print >> ly, ", ".join(names)
- print >> ly, r"\end{textblock}"
- subtitle_hpos = 10
- subtitle_hsize = 4 + DINA4_H - 2 * subtitle_hpos
- subtitle_vpos = 259
- print >> ly, r"\begin{textblock}{%i}(%i,%i)" % (subtitle_hsize, subtitle_hpos, subtitle_vpos)
- print >> ly, r'\center{\Huge{}GuttenPlag - Kritische Edition vom \today}'
- print >> ly, r"\end{textblock}"
- return ly
- def close_ly(ly):
- print >> ly, '\end{document}'
- ly.close()
- zlnpos = dict()
- zfnpos = dict()
- def get_zeilenpositionen():
- zp = open("zeilenpositionen.txt")
- for line in zp:
- line = line.strip()
- if line == "" or line[0] == "#" or line.find(":") == -1:
- continue
- (lnr, pos, fnpos) = line.split(":")
- lnr = int(lnr)
- if pos != "":
- pos = map(lambda str: float(str), pos.split(","))
- else:
- pos = []
- if fnpos != "":
- fnpos = map(lambda str: float(str), fnpos.split(","))
- else:
- fnpos = []
- zlnpos[lnr] = pos
- zfnpos[lnr] = fnpos
- zp.close()
- LINEHEIGHT = 6
- FNLINEHEIGHT = 4
- def get_line_start_mm(page, lnr):
- if lnr < 101:
- pos = zlnpos
- else:
- pos = zfnpos
- lnr = lnr - 100
- lnr = lnr - 1;
- val = pos[page][lnr] * DINA4_V / 100.0
- # Korrektur...
- MIDDLE = 230.0
- STRETCH = 1.11
- val = (val - MIDDLE) * STRETCH + MIDDLE
- return val
- def get_line_end_mm(page, lnr):
- if lnr < 101:
- return get_line_start_mm(page, lnr) + LINEHEIGHT
- else:
- return get_line_start_mm(page, lnr) + FNLINEHEIGHT
- def dump_fragment(stream, frag):
- print >> stream, "Fundort : p. %s, %s" % (frag['dst_page'], frag['dst_line'])
- # print >> stream, frag['dst_text']
- # print >> stream, "Original: p. %s, %s in %s" % (frag['src_page'], frag['src_line'], frag['src_author'])
- # print >> stream, frag['src_text']
- # print >> stream, "Kategorie: %s %s" % (frag['plagtype'], frag['categories'])
- # print >> stream, "XXX", frag['plagtype'], frag['src_cat']
- # print >> stream, "Anmerkung: %s" % frag['comment']
- def process_page(fragments, page):
- title = page.getAttribute ("title")
- print "Processing %s" % title
- data = page.getElementsByTagName("rev")[0].childNodes[0].data
- data = data.encode("utf-8")
- plb_layout = parseString(data).getElementsByTagName("plb_layout")[0]
- frag = dict()
- frag['title'] = title
- frag['dst_page'] = plb_layout.getAttribute('val_1')
- frag['dst_line'] = plb_layout.getAttribute('val_2')
- frag['dst_text'] = plb_layout.getAttribute('val_3')
- frag['src_page'] = plb_layout.getAttribute('val_4')
- frag['src_line'] = plb_layout.getAttribute('val_5')
- frag['src_text'] = plb_layout.getAttribute('val_6')
- plagtype = plb_layout.getAttribute('val_7')
- frag['plagtype'] = plagtype
- frag['in_lit'] = plb_layout.getAttribute('val_8')
- frag['src_author'] = plb_layout.getAttribute('val_9')
- frag['src_link'] = plb_layout.getAttribute('val_10')
- frag['comment'] = plb_layout.getAttribute('val_11')
- # Determine source category from "[[Kategorie:xyz]]"
- categories = plb_layout.getAttribute('cswikitext')
- cats = categories.split("\r\n")
- cats = map(lambda str: str[12:-2], cats)
- # Can sometimes happen.
- cats = filter(lambda str: str != '', cats)
- frag['categories'] = cats
- src_cat = filter(lambda str: not (str.find("Seite_") == 0
- or str.find("Seite ") == 0
- or str.find("seite_") == 0
- or str.find("seite ") == 0
- or str == "Wissenschaftlicher Dienst"
- or str == "Doppelt-Gemoppelt"
- or str == "Rechtschreibfehler"
- or str == u'Pr\xfcfung'
- or str == u'KopiertesZitat'
- or str == u'\xdcbersetzungsPlagiat'
- or str == u'Versch\xe4rftesBauernOpfer'
- or str == u'BauernOpfer'
- or str == u'KeinPlagiat'
- or str == u'KomplettPlagiat'
- or str == u'Verschleierung'
- or str == u'Verd\xe4chtig'
- or str == plagtype), cats)
- if len(src_cat) == 0:
- print "WARNUNG: [[%s]] (%s) hat keine Quellenkategorie in %s" % (title, plagtype, str(cats))
- frag['src_cat'] = 'N/A';
- elif len(src_cat) > 1:
- print "WARNUNG: [[%s]] (%s) hat mehr als eine Quellenkategorie in %s" % (title, src_cat[0], str(src_cat))
- frag['src_cat'] = src_cat[0]
- else:
- frag['src_cat'] = src_cat[0]
- frag['src_cat'] = frag['src_cat'].replace(u"_",u" ")
- tst_plagtype_cat = filter (lambda str: str == plagtype, cats)
- if len(tst_plagtype_cat) == 0:
- print "WARNUNG: [[%s]] (%s) hat fehlenden oder falschen Kategorietyp in %s" % (title, plagtype, str(cats))
- tst_plagtype_cat = filter(lambda str: str == u'\xdcbersetzungsPlagiat'
- or str == u'Versch\xe4rftesBauernOpfer'
- or str == u'BauernOpfer'
- or str == u'KeinPlagiat'
- or str == u'Strukturplagiat'
- or str == u'HalbsatzFlickerei'
- or str == u'ShakeAndPaste'
- or str == u'KomplettPlagiat'
- or str == u'Verschleierung'
- or str == u'Verd\xe4chtig', cats)
- if len(tst_plagtype_cat) != 1:
- print "WARNUNG: [[%s]] (%s) hat doppelten PlagiatsKategorietyp in %s" % (title, plagtype,
- str(tst_plagtype_cat))
- if frag['dst_page'] == '':
- print "WARNUNG: [[%s]] hat keine Diss. Seitenzahl" % title
- if frag['src_page'] == '':
- print "WARNUNG: [[%s]] hat keine Quellen-Seitenzahl" % title
- if plagtype == u'KeinPlagiat' or plagtype == u'Verd\xe4chtig':
- print "WARNUNG: [[%s]] ignoriert, weil type = %s" % (title, plagtype)
- else:
- fragments[int(frag['dst_page'])].append(frag)
- dump_fragment (sys.stdout, frag)
- def process_file(fragments, filename):
- print "Processing file %s" % file
- dom = parse (file)
- pages = dom.getElementsByTagName("page")
- for page in pages:
- process_page(fragments, page)
- def output_fragments(ly, fragments):
- for page in xrange(PAGES):
- for frag in fragments[page]:
- dst_line = frag['dst_line']
- if dst_line.find("-") != -1:
- (start,end) = map(lambda str: int(str), dst_line.split('-'))
- else:
- start = end = int(dst_line)
- # In mm.
- vpos = get_line_start_mm(page, start)
- vpos_end = get_line_end_mm(page, end)
- # text_color = "red"
- text_color = COLORMAP[get_color (frag['src_cat'])]
- text_alpha = 0.3
- text_hsize = 168
- text_vsize = vpos_end - vpos
- text_hpos = 24
- print >> ly, r"\begin{textblock}{%i}(%i,%i)" % (text_hsize, text_hpos, vpos)
- print >> ly, r'\begin{tikzpicture}'
- print >> ly, r'\definecolor{fragcol}{RGB}{%s}' % text_color
- print >> ly, r'\draw[fill=fragcol,opacity=%f] (0,0) rectangle (%.1f,%.1f);' % (text_alpha,
- text_hsize / 10.0,
- text_vsize / 10.0)
- print >> ly, r'\end{tikzpicture}'
- print >> ly, r"\end{textblock}"
- margin_hsize = 22
- if page % 2 == 0:
- margin_hpos = 1
- else:
- margin_hpos = 193
- print >> ly, r"\begin{textblock}{%i}(%i,%i)\small" % (margin_hsize, margin_hpos, vpos)
- print >> ly, r"%s\\" % (frag['src_cat'])
- if frag['src_page'] != "":
- if frag['src_line'] != "":
- print >> ly, r"S. %s (Z. %s)\\" % (frag['src_page'], frag['src_line'])
- else:
- print >> ly, r"S. %s\\" % frag['src_page']
- else:
- if frag['src_line'] != "":
- # FIXME: WARNUNG?
- print >> ly, r"Z. %s\\" % (frag['src_line'])
- print >> ly, r"%s\\" % (frag['plagtype'])
- print >> ly, r"\end{textblock}"
- if page != PAGES - 1:
- print >> ly, r'\hphantom{1em}'
- print >> ly, r'\newpage'
- get_zeilenpositionen()
- files = []
- for arg in sys.argv[1:]:
- files.append (arg)
- fragments = dict(map(lambda pnr: [pnr, []], xrange(PAGES)))
- for file in files:
- process_file(fragments, file)
- ly = open_ly("overlay-file.ly", fragments)
- output_fragments(ly, fragments)
- close_ly(ly)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement