summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-08-14 18:28:24 +0000
committerKarl Berry <karl@freefriends.org>2006-08-14 18:28:24 +0000
commitfcb73a12b6a02f56d67959c643719fc60f32af13 (patch)
tree11b59db0b864eb1a12f2a759f710632a31e6fad9 /Master/texmf-dist/source/generic
parent2c98b1075f43a6811e5264ad94ccd112d1219a6f (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.py350
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()
-
-