diff options
author | Karl Berry <karl@freefriends.org> | 2006-08-14 18:28:24 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-08-14 18:28:24 +0000 |
commit | fcb73a12b6a02f56d67959c643719fc60f32af13 (patch) | |
tree | 11b59db0b864eb1a12f2a759f710632a31e6fad9 /Master/texmf-dist/source/generic | |
parent | 2c98b1075f43a6811e5264ad94ccd112d1219a6f (diff) |
shapepar, to get examples in doc a la tetex (found by gerben)
git-svn-id: svn://tug.org/texlive/trunk@1957 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic')
-rw-r--r-- | Master/texmf-dist/source/generic/shapepar/proshap.py | 350 |
1 files changed, 0 insertions, 350 deletions
diff --git a/Master/texmf-dist/source/generic/shapepar/proshap.py b/Master/texmf-dist/source/generic/shapepar/proshap.py deleted file mode 100644 index e91e65e0a55..00000000000 --- a/Master/texmf-dist/source/generic/shapepar/proshap.py +++ /dev/null @@ -1,350 +0,0 @@ -""" -proshap.py v. 1.1 - -Desc: -Rasterizer for producing shapes useful for the LaTeX package -shapepar. It's a python script. www.python.org. - - -Copyright Manuel Gutierrez Algaba January 2003 -All rights reserved. -Released under GPL license. - -Contact: algaba@gmx.net - -Changes: -1.1 : New {10}{0}b{5.6} command, automatic now. -1.1 : New copyright notice - -known Bugs: - - Watch when have two forks at the same line. Example: - -------------------------------------------- - ----- --------------- -------- - -Solution: Increase the resolution (number of lines and height) and -don't put the two forks at the same line. - -It _may_ fail a 'bit'. - -""" - -import string - -test1 = """ - 3333 - 33333333333 - 33333333333333 - 3333333333333333 - 333333 - 333333 - 3333333 - 3333333 - 3333333 3333 - 3333333 33333333 - 3333333 33333333333 3 - 3333333 333333 33333 33 - 333333 333333 33333 3333 - 333333 333333 33333 3333 - 33333333333333333 3333333333 - 33333333333333 33333333 -""" - -test3 = """ - 33333333333333333 - 33333333333333333333333333333 - 333333333333333333333333333333333 - 33333333333333333333333333333333333 - 3333333333333333333333333333333333333 - 333333 3333333 333333 - 33333 33333 33333 - 333333 3333333 33333 - 33333333333333333 33333333333333333 - 333333333333333 333333333333333 - 3333333333333 3333333333333 - 333333333333333333333333333333 - 3333333333333333333333333333 - 33 333 - 333333 333333333 - 3333333333333333333333 -""" - -test4 = """ - 33 - 333333 - 33333333 - 3333333333 - 333333333333 - 33333333 - 3333333333333333 - 3333 - 3333 -""" - - -test5 = """ - - 333333333333333333333 - 3333333333333333333333 - 33333333333 3333 - 3333333 333 - 33333333 - 33333333333 - 3333333333333333333333333333333333333333333333 - 3333333333333333333333333333333333333333333333 - 3333333333333333333333333333333333333333333333 - 3333333333333333333333333333333333333333333333 - 3333333333333333333333333333333333333333333333 - 33333 333333333 3333333 - 333 3333333 33333 - 33 33333333333 333 - 3 3333333333333333 33 - -""" - -test6 = """ -3 -333 -333333333 - 333333333333 - 33333333333333333 - 33333333333333333 - 33333333333333333 - 33333333333333333 - 333333333333333333 - 3333333333333333333 - 3333333333333333333 - 33333333333333333333 - 33333333333333333 -""" - -test7 = """ - - 3333 33333 333333 333 33 - 333333333333 333 333 33 33 33 - 333 333 333 333 33 333 333 3333 -3333 33333333 333333 33 - - -""" -test8 = """ - - 33333333333333333333333333333333 - 33333333333333333333333333 - 33333 33333 - 3333333 3333333 - 333333333 333333333 - 333333333 333333333 - 3333333 3333333 - 33333333333333333333333333 -""" - -test9 = """ -333333333333333333333333333333333333333333333333333333333333 -333333333333333333333333333333333333333333333333333333333333 - 3333333333333333333333333333333333333333333333 - 33333333333333333333333333333333333333 - 33333333333333333333333333333333 - 333333333333333333333 - 33333333333333333 - 33333333333333333 - 33333333333333333 - 333333333333333333333 - 33333333333333333333333333333333 - 333333333333333333333333333333333333333 - 3333333333333333333333333333333333333333333333 -333333333333333333333333333333333333333333333333333333333333 -""" -test10 = """ - 3 - 3 - 3 - 33333 - 3333333 - 333 - 3 - 3 -""" - -test11 = """ - - 3 - 3333 - 333 -33 -""" - -test12 = """ -3333 3333 3333 3333 -33333 333333 333333 33333 -3333333 333333333 3333333333 333333 -33333333333333333333333333333333333333333333333 -""" -test = test3 -list_of_lines = string.split(test,"\n") - -def detect_start(line, index = 0): - """ - line : not containing \n - """ - c = index - for i in line: - if i!=" ": - return c - c = c +1 - return None - -def detect_end(line, index): - """ - line : not containing \n - """ - c = index - for i in line: - if i==" " : - break - c = c + 1 - return c - -def generate(current, last): - """ - current, last : list of segments, perhaps requiring a - join or a split - - """ - for i in xrange(0,len(current)): - if i == len(current) -1: - break - for j in last: - if j.overlaps(current[i], current[i+1]): - j.make_joint() - #print "o" - - for i in xrange(0,len(last)): - if i == len(last) -1: - break - for j in current: - if j.splits(last[i], last[i+1]): - #print "s" - j.make_split() - -class segment: - def __init__(self, start, end, number ): - self._start = start - self._end = end - self._split = 0 - self._joint = 0 - self._numberofline = number - - def get_no_line(self): - return self._numberofline - - def make_height(self, h): - self._height = h - - def make_joint(self): - self._joint = self._joint + 1 - - def make_split(self): - self._split = self._split + 1 - - def overlaps(self, seg1, seg2): - """ - This segment is the 'father' of seg1 , seg2 , See drawing: - -------------------- <-- seg this - --------- -------- <-- seg1 and seg2 - """ - return seg1._end > self._start and seg2._start < self._end - - def splits(self, seg1, seg2): - """ - This segment is the 'son' of seg1 , seg2 , See drawing: - --------- -------- <-- seg1 and seg2 - -------------------- <-- seg this - """ - return seg1._end > self._start and seg2._start < self._end - - def generate_line(self, factor, heading = None): - dev = "" - if not heading is None : - dev = dev + "{"+ str(self._height)+ "}" - dev = dev +"t{" - l = self._end - self._start - l = l * factor - if self._split: - c = "j" - else: - c = "s" - if self._split or self._joint: - a = self._split + self._joint # one of them will be 0 - div_f = a + 1.0 - dev = dev + str(self._start* factor) + "}{" + str(l/div_f) + \ - "}" - for i in xrange(0,a): - dev = dev + c+ "t{"+ \ - str(self._start* factor + (i+1)*l/div_f)+ \ - "}{" + str(l/div_f) +"}" - else: - dev = dev = dev + str(self._start* factor) + "}{" + str(l)+ "}" - return dev - -list_of_segments = [] -last_line_segments = [] -current_line_segments = [] - -numberofline = 0 -for i in list_of_lines: - numberofline = numberofline + 1 - s = detect_start(i) - if s is None: - continue - e = detect_end(line = i[s:], index = s) - while 1: - #print s,e - current_line_segments.append(segment(s,e, numberofline)) - s = detect_start(line = i[e:], index = e) - if s is None: - break - e = detect_end(line = i[s:], index = s) - - generate(current_line_segments, last_line_segments) - list_of_segments = list_of_segments + current_line_segments - last_line_segments = current_line_segments - current_line_segments =[] - -each_char = 0.4 -height = 0 -inc_height = 0.8 -numberofline = -1 - -#{20}{0}b{1.6} -result = "" -max = -1 -for i in list_of_segments: - if i._end > max: - max = i._end - i.make_height(height) - height = height + inc_height - nl= i.get_no_line() - if nl != numberofline: - numberofline = nl - result = result + "\\\\" - result = result + i.generate_line(each_char,heading = 1) + "\n" - else: - result = result + i.generate_line(each_char) + "\n" - -height = height + inc_height - -# str(list_of_segments[0]._start) -middle = str(each_char *max/2.0) - -result = "\\gdef\\bassshape{{"+ middle + \ - "}{0}b{"+ middle +"}\n" + result - - -result = result+ "\\\\{"+str(height) +"}e{"+ middle +"}" + "}\n" -print result -f = open("result.tex","w") -f.write(result) -f.close() - - |