107: #line 127 "latex_weaver.ipk" 108: def prolog(self,kwds): 109: 110: # see Kopka pp25-27 111: # the default document class is for a book 112: # other standard classes include: 113: # article report letter 114: 115: documentclass = 'book' 116: if kwds.has_key('documentclass'): 117: documentclass=kwds['documentclass'] 118: 119: # the options are a python list of words 120: # for the standard book class they're from the set: 121: # 10pt 11pt 12pt 122: # letterpaper legalpaper executivepaper 123: # a4paper a5paper b5paper 124: # landscape 125: # onecolumn twocolumn 126: # oneside twoside 127: # openright openany 128: # notitlepage titlepage 129: 130: # note: the default paper size Latex uses is 131: # american letterpaper. Don't count on this, 132: # I intend to make the ISO Standard A4 that everyone 133: # else uses the default! 134: 135: docopts = [] 136: if kwds.has_key('documentclass_options'): 137: docopts =kwds['documentclass'] 138: docoptstr='' 139: if docopts: docoptstr = docopts[0] 140: for opt in range(1,len(docopts)): 141: docoptstr = dosoptstr + ', ' + opt 142: self._writeline('\\documentclass['+docoptstr+']{'+documentclass+'}') 143: 144: if kwds.has_key('heading_level_offset'): 145: self.heading_level_offset = kwds['heading_level_offset'] 146: 147: # page heading control 148: pagestyle = 'headings' 149: if kwds.has_key('pagestyle'): 150: pagestyle=kwds['pagestyle'] 151: self._writeline('\\pagestyle{'+pagestyle+'}') 152: 153: pagenumbering= 'arabic' 154: if kwds.has_key('pagenumbering'): 155: pagenumbering=kwds['pagenumbering'] 156: self._writeline('\\pagenumbering{'+pagenumbering+'}') 157: 158: # page layout 159: page_format_params = [ 160: 'topmargin','headheight','headsep','topskip','textheight','footskip', 161: 'oddsidemargin','evensidemargin', 162: 'textwidth'] 163: for p in page_format_params: 164: if kwds.has_key(p): 165: param=kwds[p] 166: self._writeline('\\setlength{\\'+p+'}{'+param+'}') 167: 168: # lines and paragraphs 169: 170: # Note: we do _not_ permit indented paragraphs AT ALL. 171: # Don't even try it. FAR FAR too many things are broken 172: # by indentation. 173: 174: baselinestretch= 1 175: if kwds.has_key('baselinestretch'): 176: baselinestretch=kwds['baselinestretch'] 177: self._writeline('\\renewcommand{\\baselinestretch}{'+str(baselinestretch)+'}') 178: 179: self._writeline('\\setlength{\\parskip 2mm plus 0.5mm minus 1mm}') 180: self._writeline('\\setlength{\\parindent 0mm}') 181: 182: self._writeline( '\\begin{document}') 183: if kwds.has_key('title'): 184: title=kwds['title'] 185: else: 186: title = self.sink.pass_frame.master.filename 187: self._writeline('\\title{'+cvt_text(title)+'}') 188: if kwds.has_key('author'): 189: author =kwds['author'] 190: self._writeline('\\author{'+cvt_text(author)+'}') 191: 192: self._writeline( '\\maketitle') 193: 194: def epilog(self): 195: self._writeline('\\end{document}') 196: