Thread: [Epydoc-commits] SF.net SVN: epydoc: [1156] trunk/epydoc/src/epydoc/docwriter/latex.py
Brought to you by:
edloper
From: <ed...@us...> - 2006-04-04 02:31:01
|
Revision: 1156 Author: edloper Date: 2006-04-03 19:30:57 -0700 (Mon, 03 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1156&view=rev Log Message: ----------- - Fixed bug in display code for variable values Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2006-04-04 02:23:00 UTC (rev 1155) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2006-04-04 02:30:57 UTC (rev 1156) @@ -769,8 +769,8 @@ pyval_repr = var_doc.value.pyval_repr() if pyval_repr is not UNKNOWN: out(self._pprint_var_value(pyval_repr, 80)) - else: - out(self._pprint_var_value(parse_repr, 80)) + elif var_doc.value.parse_repr is not UNKNOWN: + out(self._pprint_var_value(var_doc.value.parse_repr, 80)) if has_type: ptype = self.docstring_to_latex(var_doc.type_descr, 12).strip() out('%s\\textit{(type=%s)}' % (' '*12, ptype)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-04-09 23:23:05
|
Revision: 1205 Author: edloper Date: 2006-04-09 16:23:01 -0700 (Sun, 09 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1205&view=rev Log Message: ----------- - Fixed bug that was causing tex files to be written for classes even if list_classes_separately=False. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2006-04-09 21:17:46 UTC (rev 1204) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2006-04-09 23:23:01 UTC (rev 1205) @@ -118,7 +118,8 @@ if isinstance(val_doc, ModuleDoc): filename = '%s-module.tex' % val_doc.canonical_name self._write(self.write_module, directory, filename, val_doc) - elif isinstance(val_doc, ClassDoc): + elif (isinstance(val_doc, ClassDoc) and + self._list_classes_separately): filename = '%s-class.tex' % val_doc.canonical_name self._write(self.write_class, directory, filename, val_doc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-04-12 19:49:47
|
Revision: 1220 Author: edloper Date: 2006-04-12 12:49:32 -0700 (Wed, 12 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1220&view=rev Log Message: ----------- - Fixed the case where a base's canonical_name is None. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2006-04-12 19:46:21 UTC (rev 1219) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2006-04-12 19:49:32 UTC (rev 1220) @@ -420,7 +420,7 @@ width = self._find_tree_width(doc)+2 linespec = [] s = ('&'*(width-4)+'\\multicolumn{2}{l}{\\textbf{%s}}\n' % - plaintext_to_latex('%s'%doc.canonical_name)) + plaintext_to_latex('%s'%self._base_name(doc))) s += '\\end{tabular}\n\n' top = 1 else: @@ -438,6 +438,15 @@ return s + def _base_name(self, doc): + if doc.canonical_name is None: + if doc.parse_repr is not None: + return doc.parse_repr + else: + return '??' + else: + return '%s' % doc.canonical_name + def _find_tree_width(self, doc): if not isinstance(doc, ClassDoc): return 2 width = 2 @@ -446,16 +455,17 @@ return width def _base_tree_line(self, doc, width, linespec): + base_name = plaintext_to_latex(self._base_name(doc)) + # linespec is a list of booleans. - s = '%% Line for %s, linespec=%s\n' % (doc.canonical_name, linespec) + s = '%% Line for %s, linespec=%s\n' % (base_name, linespec) labelwidth = width-2*len(linespec)-2 # The base class name. - shortname = plaintext_to_latex('%s'%doc.canonical_name) s += ('\\multicolumn{%s}{r}{' % labelwidth) - s += '\\settowidth{\\BCL}{%s}' % shortname - s += '\\multirow{2}{\\BCL}{%s}}\n' % shortname + s += '\\settowidth{\\BCL}{%s}' % base_name + s += '\\multirow{2}{\\BCL}{%s}}\n' % base_name # The vertical bars for other base classes (top half) for vbar in linespec: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-02-07 07:30:27
|
Revision: 1441 http://svn.sourceforge.net/epydoc/?rev=1441&view=rev Author: edloper Date: 2007-02-06 23:30:25 -0800 (Tue, 06 Feb 2007) Log Message: ----------- - Added \pysrcdefname command (necessary after previous checkin to markup/doctest.py) Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-02-07 06:37:21 UTC (rev 1440) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-02-07 07:30:25 UTC (rev 1441) @@ -55,6 +55,7 @@ "\\definecolor{py@inputcolour}{rgb}{0,0,0}", "\\definecolor{py@outputcolour}{rgb}{0,0,1}", "\\definecolor{py@exceptcolour}{rgb}{1,0,0}", + "\\definecolor{py@defnamecolour}{rgb}{1,0.5,0.5}", "\\definecolor{py@builtincolour}{rgb}{0.58039,0,0.58039}", "\\definecolor{py@identifiercolour}{rgb}{0,0,0}", "\\definecolor{py@linenumcolour}{rgb}{0.4,0.4,0.4}", @@ -71,6 +72,8 @@ "{\\small\\textbf{#1}}}", "\\newcommand{\\pysrcstring}[1]{\\textcolor{py@stringcolour}" "{\\small\\textbf{#1}}}", + "\\newcommand{\\pysrcdefname}[1]{\\textcolor{py@defnamecolour}" + "{\\small\\textbf{#1}}}", "\\newcommand{\\pysrcother}[1]{\\small\\textbf{#1}}", "% Comments", "\\newcommand{\\pysrccomment}[1]{\\textcolor{py@commentcolour}" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-02-13 20:22:19
|
Revision: 1475 http://svn.sourceforge.net/epydoc/?rev=1475&view=rev Author: edloper Date: 2007-02-13 12:22:12 -0800 (Tue, 13 Feb 2007) Log Message: ----------- - Fixed bug caused by previous checkin Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-02-13 19:53:08 UTC (rev 1474) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-02-13 20:22:12 UTC (rev 1475) @@ -815,7 +815,7 @@ out('\\raggedright ') if has_descr: out(self.docstring_to_latex(var_doc.descr, 10).strip()) - if has_type or has_repr: out('\n\n') + out('\n\n') out('\\textbf{Value:} \n') out(self._pprint_var_value(var_doc)) if has_type: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-02-13 22:01:18
|
Revision: 1479 http://svn.sourceforge.net/epydoc/?rev=1479&view=rev Author: edloper Date: 2007-02-13 14:01:15 -0800 (Tue, 13 Feb 2007) Log Message: ----------- - Fixed bug where latex writer would crash if vardoc.value was UNKNOWN. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-02-13 21:59:10 UTC (rev 1478) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-02-13 22:01:15 UTC (rev 1479) @@ -812,29 +812,21 @@ out(' & ') has_descr = var_doc.descr not in (None, UNKNOWN) has_type = var_doc.type_descr not in (None, UNKNOWN) - out('\\raggedright ') + has_value = var_doc.value is not UNKNOWN + if has_type or has_value: + out('\\raggedright ') if has_descr: out(self.docstring_to_latex(var_doc.descr, 10).strip()) - out('\n\n') - out('\\textbf{Value:} \n') - out(self._pprint_var_value(var_doc)) + if has_type or has_value: out('\n\n') + if has_value: + out('\\textbf{Value:} \n{\\tt %s}' % + var_doc.value.summary_pyval_repr().to_latex(None)) if has_type: ptype = self.docstring_to_latex(var_doc.type_descr, 12).strip() out('%s\\textit{(type=%s)}' % (' '*12, ptype)) out('&\\\\\n') out('\\cline{1-2}\n') - def _pprint_var_value(self, var_doc): - pyval_repr = var_doc.value.pyval_repr().to_latex(None) - if '\n' in pyval_repr: - return ('\\begin{alltt}\n%s\\end{alltt}' % - pyval_repr) - #plaintext_to_latex(pyval_repr, nbsp=False, breakany=True)) - else: - return '{\\tt %s}' % pyval_repr - #plaintext_to_latex(pyval_repr, nbsp=True, - #breakany=True) - def write_property_list_line(self, out, var_doc): prop_doc = var_doc.value out('\\raggedright ') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dva...@us...> - 2007-03-13 21:57:51
|
Revision: 1584 http://svn.sourceforge.net/epydoc/?rev=1584&view=rev Author: dvarrazzo Date: 2007-03-13 14:57:48 -0700 (Tue, 13 Mar 2007) Log Message: ----------- - Fixed encoding in LaTeX generator. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-03-11 17:28:59 UTC (rev 1583) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-03-13 21:57:48 UTC (rev 1584) @@ -118,7 +118,7 @@ self._top_section = 2 self._index_functions = 1 self._hyperref = 1 - self._encoding = kwargs.get('encoding', 'latin1') + self._encoding = kwargs.get('encoding', 'utf-8') self.valdocs = sorted(docindex.reachable_valdocs( imports=False, packages=False, bases=False, submodules=False, subclasses=False, private=self._show_private)) @@ -180,7 +180,7 @@ log.progress(self._files_written/self._num_files, filename) path = os.path.join(directory, filename) - if self._encoding == 'utf8': + if self._encoding == 'utf-8': f = codecs.open(path, 'w', 'utf-8') write_func(f.write, *args) f.close() @@ -194,8 +194,9 @@ log.error("Output could not be represented with the " "given encoding (%r). Unencodable characters " "will be displayed as '?'. It is recommended " - "that you use a different output encoding (utf8, " - "if it's supported by latex on your system).") + "that you use a different output encoding (utf-8, " + "if it's supported by latex on your system)." + % self._encoding) s = s.encode(self._encoding, 'replace') f = open(path, 'w') f.write(s) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dva...@us...> - 2007-03-20 00:58:55
|
Revision: 1587 http://svn.sourceforge.net/epydoc/?rev=1587&view=rev Author: dvarrazzo Date: 2007-03-19 17:58:51 -0700 (Mon, 19 Mar 2007) Log Message: ----------- - Allow the LaTeX representation of an encoding to be different from the one used by Python. - Comments delimiting sections converted into API groups. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-03-14 01:53:42 UTC (rev 1586) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-03-20 00:58:51 UTC (rev 1587) @@ -118,7 +118,12 @@ self._top_section = 2 self._index_functions = 1 self._hyperref = 1 + + #: The Python representation of the encoding. + #: Update L{latex_encodings} in case of mismatch between it and + #: the C{inputenc} LaTeX package. self._encoding = kwargs.get('encoding', 'utf-8') + self.valdocs = sorted(docindex.reachable_valdocs( imports=False, packages=False, bases=False, submodules=False, subclasses=False, private=self._show_private)) @@ -226,7 +231,7 @@ os.mkdir(directory) #//////////////////////////////////////////////////////////// - # Main Doc File + #{ Main Doc File #//////////////////////////////////////////////////////////// def write_topfile(self, out): @@ -274,7 +279,7 @@ out('\n') # Set the encoding. - out('\\usepackage[%s]{inputenc}' % self._encoding) + out('\\usepackage[%s]{inputenc}' % self.get_latex_encoding()) # If we're generating hyperrefs, add the appropriate packages. if self._hyperref: @@ -309,7 +314,7 @@ #//////////////////////////////////////////////////////////// - # Chapters + #{ Chapters #//////////////////////////////////////////////////////////// def write_module(self, out, doc): @@ -405,7 +410,7 @@ out(' ' + self.indexterm(doc, 'end')) #//////////////////////////////////////////////////////////// - # Module hierarchy trees + #{ Module hierarchy trees #//////////////////////////////////////////////////////////// def write_module_tree(self, out): @@ -463,7 +468,7 @@ out(' '*depth + ' \\end{itemize}\n') #//////////////////////////////////////////////////////////// - # Base class trees + #{ Base class trees #//////////////////////////////////////////////////////////// def base_tree(self, doc, width=None, linespec=None): @@ -539,7 +544,7 @@ return s #//////////////////////////////////////////////////////////// - # Class List + #{ Class List #//////////////////////////////////////////////////////////// def write_class_list(self, out, doc): @@ -583,7 +588,7 @@ out((', p.~\\pageref{%s})}\n\n' % self.label(doc))) #//////////////////////////////////////////////////////////// - # Function List + #{ Function List #//////////////////////////////////////////////////////////// def write_func_list(self, out, heading, doc, value_type, seclevel=1): @@ -752,7 +757,7 @@ return '(%s)' % (', '.join([self._arg_name(a) for a in arg])) #//////////////////////////////////////////////////////////// - # Variable List + #{ Variable List #//////////////////////////////////////////////////////////// # Also used for the property list. @@ -848,7 +853,7 @@ out('\\cline{1-2}\n') #//////////////////////////////////////////////////////////// - # Standard Fields + #{ Standard Fields #//////////////////////////////////////////////////////////// # Copied from HTMLWriter: @@ -903,7 +908,7 @@ #//////////////////////////////////////////////////////////// - # Docstring -> LaTeX Conversion + #{ Docstring -> LaTeX Conversion #//////////////////////////////////////////////////////////// # We only need one linker, since we don't use context: @@ -922,7 +927,7 @@ hyperref=self._hyperref) #//////////////////////////////////////////////////////////// - # Helpers + #{ Helpers #//////////////////////////////////////////////////////////// def write_header(self, out, where): @@ -1002,6 +1007,15 @@ def label(self, doc): return ':'.join(doc.canonical_name) + #: Map the Python encoding representation into mismatching LaTeX ones. + latex_encodings = { + 'utf-8': 'utf8', + } - - + def get_latex_encoding(self): + """ + @return: The LaTeX representation of the selected encoding. + @rtype: C{str} + """ + enc = self._encoding.lower() + return self.latex_encodings.get(enc, enc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-09-23 14:08:42
|
Revision: 1615 http://epydoc.svn.sourceforge.net/epydoc/?rev=1615&view=rev Author: edloper Date: 2007-09-23 07:08:40 -0700 (Sun, 23 Sep 2007) Log Message: ----------- - If a param has a @type but no @param, then make sure it still gets listed in the function's details section. - Fixed sf bug 1720374 -- latex failed if type descr contained a newline, since \textit{...} is not allowed to include para breaks. (switched to use {\it ...} instead.) Also fixed some related bugs (e.g., by replacing \texttt{...} with {\tt ...}). Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 13:49:51 UTC (rev 1614) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 14:08:40 UTC (rev 1615) @@ -653,13 +653,20 @@ out(' '*6+'\\textbf{Parameters}\n') out(' '*6+'\\begin{quote}\n') out(' \\begin{Ventry}{%s}\n\n' % (longest*'x')) - # Params that have @type but not @param info: - unseen_types = set(func_doc.arg_types) - # List everything that has a @param: - for (arg_names, arg_descr) in func_doc.arg_descrs: + # Add params that have @type but not @param info: + arg_descrs = list(func_doc.arg_descrs) + args = set() + for arg_names, arg_descr in arg_descrs: + args.update(arg_names) + for arg in var_doc.value.arg_types: + if arg not in args: + arg_descrs.append( ([arg],None) ) + # Display params + for (arg_names, arg_descr) in arg_descrs: arg_name = plaintext_to_latex(', '.join(arg_names)) out('%s\\item[%s]\n\n' % (' '*10, arg_name)) - out(self.docstring_to_latex(arg_descr, 10)) + if arg_descr: + out(self.docstring_to_latex(arg_descr, 10)) for arg_name in arg_names: arg_typ = func_doc.arg_types.get(arg_name) if arg_typ is not None: @@ -668,7 +675,7 @@ else: lhs = 'type of %s' % arg_name rhs = self.docstring_to_latex(arg_typ).strip() - out('%s\\textit{(%s=%s)}\n\n' % (' '*12, lhs, rhs)) + out('%s{\\it (%s=%s)}\n\n' % (' '*12, lhs, rhs)) out(' \\end{Ventry}\n\n') out(' '*6+'\\end{quote}\n\n') out(' \\vspace{1ex}\n\n') @@ -682,7 +689,7 @@ if rdescr not in (None, UNKNOWN): out(self.docstring_to_latex(rdescr, 6)) if rtype not in (None, UNKNOWN): - out(' '*6+'\\textit{(type=%s)}\n\n' % + out(' '*6+'{\\it (type=%s)}\n\n' % self.docstring_to_latex(rtype, 6).strip()) elif rtype not in (None, UNKNOWN): out(self.docstring_to_latex(rtype, 6)) @@ -745,7 +752,7 @@ def func_arg(self, name, default): s = '\\textit{%s}' % plaintext_to_latex(self._arg_name(name)) if default is not None: - s += '=\\texttt{%s}' % default.summary_pyval_repr().to_latex(None) + s += '={\\tt %s}' % default.summary_pyval_repr().to_latex(None) return s def _arg_name(self, arg): @@ -829,7 +836,7 @@ var_doc.value.summary_pyval_repr().to_latex(None)) if has_type: ptype = self.docstring_to_latex(var_doc.type_descr, 12).strip() - out('%s\\textit{(type=%s)}' % (' '*12, ptype)) + out('%s{\\it (type=%s)}' % (' '*12, ptype)) out('&\\\\\n') out('\\cline{1-2}\n') @@ -847,7 +854,7 @@ if has_type: out('\n\n') if has_type: ptype = self.docstring_to_latex(prop_doc.type_descr, 12).strip() - out('%s\\textit{(type=%s)}' % (' '*12, ptype)) + out('%s{\\it (type=%s)}' % (' '*12, ptype)) # [xx] List the fget/fset/fdel functions? out('&\\\\\n') out('\\cline{1-2}\n') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-09-23 14:31:26
|
Revision: 1616 http://epydoc.svn.sourceforge.net/epydoc/?rev=1616&view=rev Author: edloper Date: 2007-09-23 07:31:24 -0700 (Sun, 23 Sep 2007) Log Message: ----------- - don't include the 'inputenc' package delclaration that is supplied by restructuredtext; it can conflict with our own. (utf8x vs utf8 -- how do these actually differ?) Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 14:08:40 UTC (rev 1615) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 14:31:24 UTC (rev 1616) @@ -279,7 +279,7 @@ out('\n') # Set the encoding. - out('\\usepackage[%s]{inputenc}' % self.get_latex_encoding()) + out('\\usepackage[%s]{inputenc}\n' % self.get_latex_encoding()) # If we're generating hyperrefs, add the appropriate packages. if self._hyperref: @@ -301,16 +301,17 @@ if 'restructuredtext' in epydoc.markup.MARKUP_LANGUAGES_USED: from epydoc.markup import restructuredtext rst_head = restructuredtext.latex_head_prefix() + rst_head = ''.join(rst_head).split('\n') for line in rst_head[1:]: m = re.match(r'\\usepackage(\[.*?\])?{(.*?)}', line) if m and m.group(2) in ( 'babel', 'hyperref', 'color', 'alltt', 'parskip', 'fancyhdr', 'boxedminipage', 'makeidx', 'multirow', 'longtable', 'tocbind', 'assymb', - 'fullpage'): + 'fullpage', 'inputenc'): pass else: - out(line) + out(line+'\n') #//////////////////////////////////////////////////////////// This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-09-23 18:28:34
|
Revision: 1620 http://epydoc.svn.sourceforge.net/epydoc/?rev=1620&view=rev Author: edloper Date: 2007-09-23 11:28:23 -0700 (Sun, 23 Sep 2007) Log Message: ----------- - method & var descriptions are now 'inset' a little bit -- makes it easier to read the page. - added support for inheritance options w/ latex. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 15:17:43 UTC (rev 1619) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 18:28:23 UTC (rev 1620) @@ -84,6 +84,25 @@ "% Exceptions", "\\newcommand{\\pysrcexcept}[1]{\\textcolor{py@exceptcolour}" "{\\small\\textbf{#1}}}", + # Size of the function description boxes. + "\\newlength{\\funcindent}", + "\\newlength{\\funcwidth}", + "\\setlength{\\funcindent}{1cm}", + "\\setlength{\\funcwidth}{\\textwidth}", + "\\addtolength{\\funcwidth}{-2\\funcindent}", + # Size of the var description tables. + "\\newlength{\\varindent}", + "\\newlength{\\varnamewidth}", + "\\newlength{\\vardescrwidth}", + "\\newlength{\\varwidth}", + "\\setlength{\\varindent}{1cm}", + "\\setlength{\\varnamewidth}{.3\\textwidth}", + "\\setlength{\\varwidth}{\\textwidth}", + "\\addtolength{\\varwidth}{-4\\tabcolsep}", + "\\addtolength{\\varwidth}{-3\\arrayrulewidth}", + "\\addtolength{\\varwidth}{-2\\varindent}", + "\\setlength{\\vardescrwidth}{\\varwidth}", + "\\addtolength{\\vardescrwidth}{-\\varnamewidth}", # Define new environment for displaying parameter lists. textwrap.dedent("""\ \\newenvironment{Ventry}[1]% @@ -124,7 +143,7 @@ #: the C{inputenc} LaTeX package. self._encoding = kwargs.get('encoding', 'utf-8') - self.valdocs = sorted(docindex.reachable_valdocs( + self.valdocs = valdocs = sorted(docindex.reachable_valdocs( imports=False, packages=False, bases=False, submodules=False, subclasses=False, private=self._show_private)) self._num_files = self.num_files() @@ -132,6 +151,11 @@ if self._show_private: self._public_filter = None else: self._public_filter = True + self.class_list = [d for d in valdocs if isinstance(d, ClassDoc)] + """The list of L{ClassDoc}s for the documented classes.""" + self.class_set = set(self.class_list) + """The set of L{ClassDoc}s for the documented classes.""" + def write(self, directory=None): """ Write the API documentation for the entire project to the @@ -591,8 +615,10 @@ #//////////////////////////////////////////////////////////// #{ Function List #//////////////////////////////////////////////////////////// + _FUNC_GROUP_HEADER = '\n\\large{\\textbf{\\textit{%s}}}\n\n' def write_func_list(self, out, heading, doc, value_type, seclevel=1): + # Divide all public variables of the given type into groups. groups = [(plaintext_to_latex(group_name), doc.select_variables(group=group_name, imported=False, value_type=value_type, @@ -607,16 +633,76 @@ self.write_start_of(out, heading) out(' '+self.section(heading, seclevel)) + # Write a section for each group. + grouped_inh_vars = {} for name, var_docs in groups: - if name: - out('\n%s\\large{%s}\n' % (self.HRULE, name)) - for var_doc in var_docs: - self.write_func_list_box(out, var_doc) - # [xx] deal with inherited methods better???? - #if (self._inheritance == 'listed' and - # isinstance(container, ClassDoc)): - # out(self._inheritance_list(group, container.uid())) + self.write_func_group(out, doc, name, var_docs, grouped_inh_vars) + + # Write a section for each inheritance pseudo-group (used if + # inheritance=='grouped') + if grouped_inh_vars: + for base in doc.mro(): + if base in grouped_inh_vars: + hdr = ('Inherited from %s' % + plaintext_to_latex('%s' % base.canonical_name)) + if self._crossref and base in self.class_set: + hdr += ('\\textit{(Section \\ref{%s})}' % + self.label(base)) + out(self._FUNC_GROUP_HEADER % (hdr)) + for var_doc in grouped_inh_vars[base]: + self.write_func_list_box(out, var_doc) + + def write_func_group(self, out, doc, name, var_docs, grouped_inh_vars): + # Split up the var_docs list, according to the way each var + # should be displayed: + # - listed_inh_vars -- for listed inherited variables. + # - grouped_inh_vars -- for grouped inherited variables. + # - normal_vars -- for all other variables. + listed_inh_vars = {} + normal_vars = [] + for var_doc in var_docs: + if var_doc.container != doc: + base = var_doc.container + if (base not in self.class_set or + self._inheritance == 'listed'): + listed_inh_vars.setdefault(base,[]).append(var_doc) + elif self._inheritance == 'grouped': + grouped_inh_vars.setdefault(base,[]).append(var_doc) + else: + normal_vars.append(var_doc) + else: + normal_vars.append(var_doc) + # Write a header for the group. + if name: + out(self._FUNC_GROUP_HEADER % name) + # Write an entry for each normal var: + for var_doc in normal_vars: + self.write_func_list_box(out, var_doc) + # Write a subsection for inherited vars: + if listed_inh_vars: + self.write_func_inheritance_list(out, doc, listed_inh_vars) + + def write_func_inheritance_list(self, out, doc, listed_inh_vars): + for base in doc.mro(): + if base not in listed_inh_vars: continue + #if str(base.canonical_name) == 'object': continue + var_docs = listed_inh_vars[base] + if self._public_filter: + var_docs = [v for v in var_docs if v.is_public] + if var_docs: + hdr = ('Inherited from %s' % + plaintext_to_latex('%s' % base.canonical_name)) + if self._crossref and base in self.class_set: + hdr += ('\\textit{(Section \\ref{%s})}' % + self.label(base)) + out(self._FUNC_GROUP_HEADER % hdr) + out('\\begin{quote}\n') + out('%s\n' % ', '.join( + ['%s()' % plaintext_to_latex(var_doc.name) + for var_doc in var_docs])) + out('\\end{quote}\n') + def write_func_list_box(self, out, var_doc): func_doc = var_doc.value is_inherited = (var_doc.overrides not in (None, UNKNOWN)) @@ -629,7 +715,8 @@ # Start box for this function. out(' \\vspace{0.5ex}\n\n') - out(' \\begin{boxedminipage}{\\textwidth}\n\n') + out('\\hspace{.8\\funcindent}') + out('\\begin{boxedminipage}{\\funcwidth}\n\n') # Function signature. out(' %s\n\n' % self.function_signature(var_doc)) @@ -767,6 +854,7 @@ #//////////////////////////////////////////////////////////// #{ Variable List #//////////////////////////////////////////////////////////// + _VAR_GROUP_HEADER = '\\multicolumn{2}{|l|}{\\textit{%s}}\\\\\n' # Also used for the property list. def write_var_list(self, out, heading, doc, value_type, seclevel=1): @@ -784,9 +872,13 @@ self.write_start_of(out, heading) out(' '+self.section(heading, seclevel)) + # [xx] without this, there's a huge gap before the table -- why?? + out(' \\vspace{-1cm}\n') + + out('\\hspace{\\varindent}') out('\\begin{longtable}') - out('{|p{.30\\textwidth}|') - out('p{.62\\textwidth}|l}\n') + out('{|p{\\varnamewidth}|') + out('p{\\vardescrwidth}|l}\n') out('\\cline{1-2}\n') # Set up the headers & footer (this makes the table span @@ -803,23 +895,87 @@ out('\\cline{1-2}\n') out('\\endlastfoot') + # Write a section for each group. + grouped_inh_vars = {} for name, var_docs in groups: - if name: - out('\\multicolumn{2}{|l|}{') - out('\\textbf{%s}}\\\\\n' % name) - out('\\cline{1-2}\n') - for var_doc in var_docs: - if isinstance(var_doc, PropertyDoc): - self.write_property_list_line(out, var_doc) + self.write_var_group(out, doc, name, var_docs, grouped_inh_vars) + + # Write a section for each inheritance pseudo-group (used if + # inheritance=='grouped') + if grouped_inh_vars: + for base in doc.mro(): + if base in grouped_inh_vars: + hdr = ('Inherited from %s' % + plaintext_to_latex('%s' % base.canonical_name)) + if self._crossref and base in self.class_set: + hdr += (' \\textit{(Section \\ref{%s})}' % + self.label(base)) + out(self._VAR_GROUP_HEADER % (hdr)) + out('\\cline{1-2}\n') + for var_doc in grouped_inh_vars[base]: + if isinstance(var_doc, PropertyDoc): + self.write_property_list_line(out, var_doc) + else: + self.write_var_list_line(out, var_doc) + + out('\\end{longtable}\n\n') + + def write_var_group(self, out, doc, name, var_docs, grouped_inh_vars): + # Split up the var_docs list, according to the way each var + # should be displayed: + # - listed_inh_vars -- for listed inherited variables. + # - grouped_inh_vars -- for grouped inherited variables. + # - normal_vars -- for all other variables. + listed_inh_vars = {} + normal_vars = [] + for var_doc in var_docs: + if var_doc.container != doc: + base = var_doc.container + if (base not in self.class_set or + self._inheritance == 'listed'): + listed_inh_vars.setdefault(base,[]).append(var_doc) + elif self._inheritance == 'grouped': + grouped_inh_vars.setdefault(base,[]).append(var_doc) else: - self.write_var_list_line(out, var_doc) - # [xx] deal with inherited methods better???? - #if (self._inheritance == 'listed' and - # isinstance(container, ClassDoc)): - # out(self._inheritance_list(group, container.uid())) + normal_vars.append(var_doc) + else: + normal_vars.append(var_doc) + + # Write a header for the group. + if name: + out(self._VAR_GROUP_HEADER % name) + out('\\cline{1-2}\n') + # Write an entry for each normal var: + for var_doc in normal_vars: + if isinstance(var_doc, PropertyDoc): + self.write_property_list_line(out, var_doc) + else: + self.write_var_list_line(out, var_doc) + # Write a subsection for inherited vars: + if listed_inh_vars: + self.write_var_inheritance_list(out, doc, listed_inh_vars) - out('\\end{longtable}\n\n') - + def write_var_inheritance_list(self, out, doc, listed_inh_vars): + for base in doc.mro(): + if base not in listed_inh_vars: continue + #if str(base.canonical_name) == 'object': continue + var_docs = listed_inh_vars[base] + if self._public_filter: + var_docs = [v for v in var_docs if v.is_public] + if var_docs: + hdr = ('Inherited from %s' % + plaintext_to_latex('%s' % base.canonical_name)) + if self._crossref and base in self.class_set: + hdr += (' \\textit{(Section \\ref{%s})}' % + self.label(base)) + out(self._VAR_GROUP_HEADER % hdr) + out('\\multicolumn{2}{|p{\\varwidth}|}{' + '\\raggedright %s}\\\\\n' % + ', '.join(['%s' % plaintext_to_latex(var_doc.name) + for var_doc in var_docs])) + out('\\cline{1-2}\n') + + def write_var_list_line(self, out, var_doc): out('\\raggedright ') out(plaintext_to_latex(var_doc.name, nbsp=True, breakany=True)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2007-09-23 18:54:26
|
Revision: 1621 http://epydoc.svn.sourceforge.net/epydoc/?rev=1621&view=rev Author: edloper Date: 2007-09-23 11:54:23 -0700 (Sun, 23 Sep 2007) Log Message: ----------- - Set parskip to 2ex. (including inside function descriptions) Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 18:28:23 UTC (rev 1620) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2007-09-23 18:54:23 UTC (rev 1621) @@ -38,6 +38,7 @@ "\\setlength{\\topmargin}{-\\headsep}", # By default, do not indent paragraphs. "\\setlength{\\parindent}{0ex}", + "\\setlength{\\parskip}{2ex}", # Double the standard size boxedminipage outlines. "\\setlength{\\fboxrule}{2\\fboxrule}", # Create a 'base class' length named BCL for use in base trees. @@ -272,9 +273,9 @@ # Add a table of contents. self.write_start_of(out, 'Table of Contents') - out('\\addtolength{\\parskip}{-1ex}\n') + out('\\addtolength{\\parskip}{-2ex}\n') out('\\tableofcontents\n') - out('\\addtolength{\\parskip}{1ex}\n') + out('\\addtolength{\\parskip}{2ex}\n') # Include documentation files. self.write_start_of(out, 'Includes') @@ -727,11 +728,12 @@ out(' \\rule{\\textwidth}{0.5\\fboxrule}\n') # Description + out("\\setlength{\\parskip}{2ex}\n") if func_doc.descr not in (None, UNKNOWN): out(self.docstring_to_latex(func_doc.descr, 4)) - out(' \\vspace{1ex}\n\n') # Parameters + out("\\setlength{\\parskip}{1ex}\n") if func_doc.arg_descrs or func_doc.arg_types: # Find the longest name. longest = max([0]+[len(n) for n in func_doc.arg_types]) @@ -739,6 +741,7 @@ longest = max([longest]+[len(n) for n in names]) # Table header. out(' '*6+'\\textbf{Parameters}\n') + out(' \\vspace{-1ex}\n\n') out(' '*6+'\\begin{quote}\n') out(' \\begin{Ventry}{%s}\n\n' % (longest*'x')) # Add params that have @type but not @param info: @@ -766,13 +769,13 @@ out('%s{\\it (%s=%s)}\n\n' % (' '*12, lhs, rhs)) out(' \\end{Ventry}\n\n') out(' '*6+'\\end{quote}\n\n') - out(' \\vspace{1ex}\n\n') # Returns rdescr = func_doc.return_descr rtype = func_doc.return_type if rdescr not in (None, UNKNOWN) or rtype not in (None, UNKNOWN): out(' '*6+'\\textbf{Return Value}\n') + out(' \\vspace{-1ex}\n\n') out(' '*6+'\\begin{quote}\n') if rdescr not in (None, UNKNOWN): out(self.docstring_to_latex(rdescr, 6)) @@ -782,11 +785,11 @@ elif rtype not in (None, UNKNOWN): out(self.docstring_to_latex(rtype, 6)) out(' '*6+'\\end{quote}\n\n') - out(' \\vspace{1ex}\n\n') # Raises if func_doc.exception_descrs not in (None, UNKNOWN, [], ()): out(' '*6+'\\textbf{Raises}\n') + out(' \\vspace{-1ex}\n\n') out(' '*6+'\\begin{quote}\n') out(' \\begin{description}\n\n') for name, descr in func_doc.exception_descrs: @@ -795,7 +798,6 @@ out(self.docstring_to_latex(descr, 10)) out(' \\end{description}\n\n') out(' '*6+'\\end{quote}\n\n') - out(' \\vspace{1ex}\n\n') ## Overrides if var_doc.overrides not in (None, UNKNOWN): @@ -913,7 +915,7 @@ out(self._VAR_GROUP_HEADER % (hdr)) out('\\cline{1-2}\n') for var_doc in grouped_inh_vars[base]: - if isinstance(var_doc, PropertyDoc): + if isinstance(var_doc.value3, PropertyDoc): self.write_property_list_line(out, var_doc) else: self.write_var_list_line(out, var_doc) @@ -947,7 +949,7 @@ out('\\cline{1-2}\n') # Write an entry for each normal var: for var_doc in normal_vars: - if isinstance(var_doc, PropertyDoc): + if isinstance(var_doc.value, PropertyDoc): self.write_property_list_line(out, var_doc) else: self.write_var_list_line(out, var_doc) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-23 06:01:48
|
Revision: 1747 http://epydoc.svn.sourceforge.net/epydoc/?rev=1747&view=rev Author: edloper Date: 2008-02-22 22:01:41 -0800 (Fri, 22 Feb 2008) Log Message: ----------- - --graph=classtree and --graph=umlclasstree are now supported by the latex writer. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 06:00:30 UTC (rev 1746) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 06:01:41 UTC (rev 1747) @@ -31,6 +31,7 @@ PREAMBLE = [ "\\documentclass{article}", "\\usepackage[%s]{epydoc}", + "\\usepackage{graphicx}", ] SECTIONS = ['\\part{%s}', '\\chapter{%s}', '\\section{%s}', @@ -59,7 +60,7 @@ self._hyperref = 1 # [xx] check into this: - self._pdflatex = kwargs.get('action', '') == "pdflatex" + self._pdflatex = (kwargs['pdfdriver'] == 'pdflatex') self._graph_types = kwargs.get('graphs', ()) or () """Graphs that we should include in our output.""" @@ -334,7 +335,8 @@ self.write_standard_fields(out, doc) # If it's a package, list the sub-modules. - if self._list_submodules and doc.submodules != UNKNOWN and doc.submodules: + if (self._list_submodules and doc.submodules != + UNKNOWN and doc.submodules): self.write_module_list(out, doc) # Contents. @@ -358,14 +360,13 @@ if graph is None: return '' graph.caption = graph.title = None if self._pdflatex: - return graph.to_dot2tex() -## image_url = '%s.ps' % graph.uid -## image_file = os.path.join(self._directory, image_url) -## return graph.to_pdf(image_file, image_url) + image_url = '%s.pdf' % graph.uid + image_file = os.path.join(self._directory, image_url) + return graph.to_latex(image_file, 'pdf') or '' else: image_url = '%s.eps' % graph.uid image_file = os.path.join(self._directory, image_url) - return graph.to_latex(image_file, image_url) + return graph.to_latex(image_file, 'ps') or '' def write_class(self, out, doc): if self._list_classes_separately: @@ -391,12 +392,10 @@ (doc.subclasses not in (UNKNOWN,None) and len(doc.subclasses)>0)): # Display bases graphically, if requested. if 'umlclasstree' in self._graph_types: -## linker = self._LatexDocstringLinker() graph = uml_class_tree_graph(doc, self._docstring_linker, doc) out(self.render_graph(graph)) elif 'classtree' in self._graph_types: -## linker = self._LatexDocstringLinker() graph = class_tree_graph([doc], self._docstring_linker, doc) out(self.render_graph(graph)) @@ -407,11 +406,12 @@ if doc.bases not in (UNKNOWN, None) and len(doc.bases) > 0: out(self.base_tree(doc)) - # The class's known subclasses - if doc.subclasses not in (UNKNOWN, None) and len(doc.subclasses) > 0: - sc_items = [_hyperlink(sc, '%s' % sc.canonical_name) - for sc in doc.subclasses] - out(self._descrlist(sc_items, 'Known Subclasses', short=1)) + # The class's known subclasses + if (doc.subclasses not in (UNKNOWN, None) and + len(doc.subclasses) > 0): + sc_items = [_hyperlink(sc, '%s' % sc.canonical_name) + for sc in doc.subclasses] + out(self._descrlist(sc_items, 'Known Subclasses', short=1)) # The class's description. if doc.descr not in (None, UNKNOWN): @@ -1088,23 +1088,8 @@ def translate_identifier_xref(self, identifier, label=None): if label is None: label = markup.plaintext_to_latex(identifier) return '\\texttt{%s}' % label - # [xx] Should this be added to the DocstringLinker interface??? - # Currently, this is *only* used by dotgraph. def url_for(self, identifier): return None -## if isinstance(identifier, (basestring, DottedName)): -## doc = self.docindex.find(identifier, self.container) -## if doc: -## return identifier -## else: -## return None -## -## elif isinstance(identifier, APIDoc): -## return ':'.join(identifier.canonical_name) -## doc = identifier -## -## else: -## raise TypeError('Expected string or APIDoc') _docstring_linker = _LatexDocstringLinker() def docstring_to_latex(self, docstring, indent=0, breakany=0): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-23 16:24:47
|
Revision: 1752 http://epydoc.svn.sourceforge.net/epydoc/?rev=1752&view=rev Author: edloper Date: 2008-02-23 08:24:45 -0800 (Sat, 23 Feb 2008) Log Message: ----------- - Supply context info when rendering docstrings to latex Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 16:12:43 UTC (rev 1751) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 16:24:45 UTC (rev 1752) @@ -328,7 +328,7 @@ # Add the module's description. if doc.descr not in (None, UNKNOWN): out(' '*4 + '\\begin{EpydocModuleDescription}%\n') - out(self.docstring_to_latex(doc.descr, 4)) + out(self.docstring_to_latex(doc.descr, doc, 4)) out(' '*4 + '\\end{EpydocModuleDescription}\n') # Add version, author, warnings, requirements, notes, etc. @@ -411,7 +411,7 @@ # The class's description. if doc.descr not in (None, UNKNOWN): out(' '*4 + '\\begin{EpydocClassDescription}\n') - out(self.docstring_to_latex(doc.descr)) + out(self.docstring_to_latex(doc.descr, doc)) out(' '*4 + '\\end{EpydocClassDescription}\n') # Version, author, warnings, requirements, notes, etc. @@ -478,7 +478,7 @@ out(' '*depth + '\\item[%s]' % _hyperlink(doc, doc.canonical_name[-1])) if doc.summary not in (None, UNKNOWN): - out(' %s\n' % self.docstring_to_latex(doc.summary)) + out(' %s\n' % self.docstring_to_latex(doc.summary, doc)) out(self.crossref(doc) + '\n\n') if doc.submodules != UNKNOWN and doc.submodules: out(' '*depth + ' \\begin{EpydocModuleList}\n') @@ -600,7 +600,7 @@ out(' ' + '\\item[%s]' % _hyperlink(var_doc.target, var_doc.name)) if doc.summary not in (None, UNKNOWN): - out(': %s\n' % self.docstring_to_latex(doc.summary)) + out(': %s\n' % self.docstring_to_latex(doc.summary, doc)) out(self.crossref(doc) + '\n\n') #//////////////////////////////////////////////////////////// @@ -733,7 +733,7 @@ # Argument 2: the function description if func_doc.descr not in (None, UNKNOWN): - out(self.docstring_to_latex(func_doc.descr, 4)) + out(self.docstring_to_latex(func_doc.descr, func_doc, 4)) out('}{%\n') # Argument 3: the function parameter descriptions @@ -743,12 +743,14 @@ # Argument 4: The return description if func_doc.return_descr not in (None, UNKNOWN): - out(self.docstring_to_latex(func_doc.return_descr, 6)) + out(self.docstring_to_latex(func_doc.return_descr, + func_doc, 6)) out('}{%\n') # Argument 5: The return type if func_doc.return_type not in (None, UNKNOWN): - out(self.docstring_to_latex(func_doc.return_type, 6).strip()) + out(self.docstring_to_latex(func_doc.return_type, + func_doc, 6).strip()) out('}{%\n') # Argument 6: The raises section @@ -757,7 +759,7 @@ for name, descr in func_doc.exception_descrs: out(' '*10+'\\item[%s]\n\n' % plaintext_to_latex('%s' % name)) - out(self.docstring_to_latex(descr, 10)) + out(self.docstring_to_latex(descr, func_doc, 10)) out(' '*6+'\\end{EpydocFunctionRaises}\n\n') out('}{%\n') @@ -798,7 +800,7 @@ arg_name = plaintext_to_latex(', '.join(arg_names)) out('%s\\item[%s]\n\n' % (' '*10, arg_name)) if arg_descr: - out(self.docstring_to_latex(arg_descr, 10)) + out(self.docstring_to_latex(arg_descr, func_doc, 10)) # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # !!! JEG - this loop needs abstracting # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! @@ -809,7 +811,7 @@ lhs = 'type' else: lhs = 'type of %s' % arg_name - rhs = self.docstring_to_latex(arg_typ).strip() + rhs = self.docstring_to_latex(arg_typ, func_doc).strip() out('%s{\\it (%s=%s)}\n\n' % (' '*12, lhs, rhs)) out(' '*6+'\\end{EpydocFunctionParameters}\n\n') @@ -978,10 +980,11 @@ out('\\EpydocVariable{%s}{' % _hypertarget(var_doc, var_doc.name)) if has_descr: - out(self.docstring_to_latex(var_doc.descr, 10).strip()) + out(self.docstring_to_latex(var_doc.descr, var_doc, 10).strip()) out('}{') if has_type: - out(self.docstring_to_latex(var_doc.type_descr, 12).strip()) + out(self.docstring_to_latex(var_doc.type_descr, + var_doc, 12).strip()) out('}{') if has_repr: out(var_doc.value.summary_pyval_repr().to_latex(None)) @@ -997,10 +1000,12 @@ has_type = prop_doc.type_descr not in (None, UNKNOWN) out('\\EpydocProperty{%s}{' % _hypertarget(var_doc, var_doc.name)) if has_descr: - out(self.docstring_to_latex(prop_doc.descr, 10).strip()) + out(self.docstring_to_latex(prop_doc.descr, + prop_doc, 10).strip()) out('}{') if has_type: - out(self.docstring_to_latex(prop_doc.type_descr, 12).strip()) + out(self.docstring_to_latex(prop_doc.type_descr, + prop_doc, 12).strip()) out('}{') # [xx] What if the accessor is private and show_private=False? if (prop_doc.fget not in (None, UNKNOWN) and @@ -1050,7 +1055,7 @@ if arg: singular += ' (%s)' % arg plural += ' (%s)' % arg - out(self._descrlist([self.docstring_to_latex(d) for d in descrs], + out(self._descrlist([self.docstring_to_latex(d, doc) for d in descrs], field.singular, field.plural, field.short)) def _descrlist(self, items, singular, plural=None, short=0): @@ -1087,7 +1092,7 @@ return None _docstring_linker = _LatexDocstringLinker() - def docstring_to_latex(self, docstring, indent=0, breakany=0): + def docstring_to_latex(self, docstring, where, indent=0, breakany=0): if docstring is None: return '' s = docstring.to_latex(self._docstring_linker, indent=indent, directory=self._directory, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-23 16:38:47
|
Revision: 1754 http://epydoc.svn.sourceforge.net/epydoc/?rev=1754&view=rev Author: edloper Date: 2008-02-23 08:38:44 -0800 (Sat, 23 Feb 2008) Log Message: ----------- - Rewrapped lines >80chars - Removed stale (commented-out) code Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 16:37:10 UTC (rev 1753) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 16:38:44 UTC (rev 1754) @@ -540,7 +540,8 @@ # The base class name. s += ('\\multicolumn{%s}{r}{' % labelwidth) s += '\\settowidth{\\EpydocBCL}{%s}' % base_name - s += '\\multirow{2}{\\EpydocBCL}{%s}}\n' % _hyperlink(doc, self._base_name(doc)) + s += ('\\multirow{2}{\\EpydocBCL}{%s}}\n' % + _hyperlink(doc, self._base_name(doc))) # The vertical bars for other base classes (top half) for vbar in linespec: @@ -859,114 +860,6 @@ return '\\TupleArg{%s}' % '\\and '.join([self._arg_name(a) for a in arg]) - -# def write_func_list_box(self, out, var_doc): -# func_doc = var_doc.value -# is_inherited = (var_doc.overrides not in (None, UNKNOWN)) - -# out('\\begin{EpydocFunction}%\n') -# # Function signature. -# out(self.function_signature(var_doc)) - -# # nb: this gives the containing section, not a reference -# # directly to the function. -# if not is_inherited: -# out(' %s%%\n' % self.indexterm(func_doc)) - -# # If we have nothing else to say, then don't create an -# # \EpydocFunctionInfo environment. -# if not (func_doc.descr not in (None, UNKNOWN) or -# func_doc.arg_descrs or func_doc.arg_types or -# func_doc.return_descr not in (None, UNKNOWN) or -# func_doc.return_type not in (None, UNKNOWN) or -# func_doc.exception_descrs not in (None, UNKNOWN, [], ()) or -# var_doc.overrides not in (None, UNKNOWN) or -# func_doc.metadata not in (None, UNKNOWN, [], ())): -# out(' \\end{EpydocFunction}\n\n') -# return - -# out('\\begin{EpydocFunctionInfo}%\n') - -# # Description -# if func_doc.descr not in (None, UNKNOWN): -# out(' '*4 + '\\begin{EpydocFunctionDescription}\n') -# out(self.docstring_to_latex(func_doc.descr, 4)) -# out(' '*4 + '\\end{EpydocFunctionDescription}\n') - -# # Parameters -# if func_doc.arg_descrs or func_doc.arg_types: -# # Find the longest name. -# longest = max([0]+[len(n) for n in func_doc.arg_types]) -# for names, descrs in func_doc.arg_descrs: -# longest = max([longest]+[len(n) for n in names]) -# # Table header. -# out(' '*6+'\\begin{EpydocFunctionParameters}{%s}\n' % (longest*'x')) -# # Add params that have @type but not @param info: -# arg_descrs = list(func_doc.arg_descrs) -# args = set() -# for arg_names, arg_descr in arg_descrs: -# args.update(arg_names) -# for arg in var_doc.value.arg_types: -# if arg not in args: -# arg_descrs.append( ([arg],None) ) -# # Display params -# for (arg_names, arg_descr) in arg_descrs: -# arg_name = plaintext_to_latex(', '.join(arg_names)) -# out('%s\\item[%s]\n\n' % (' '*10, arg_name)) -# if arg_descr: -# out(self.docstring_to_latex(arg_descr, 10)) -# # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# # !!! JEG - this loop needs abstracting -# # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -# for arg_name in arg_names: -# arg_typ = func_doc.arg_types.get(arg_name) -# if arg_typ is not None: -# if len(arg_names) == 1: -# lhs = 'type' -# else: -# lhs = 'type of %s' % arg_name -# rhs = self.docstring_to_latex(arg_typ).strip() -# out('%s{\\it (%s=%s)}\n\n' % (' '*12, lhs, rhs)) -# out(' '*6+'\\end{EpydocFunctionParameters}\n\n') - -# # Returns -# rdescr = func_doc.return_descr -# rtype = func_doc.return_type -# if rdescr not in (None, UNKNOWN) or rtype not in (None, UNKNOWN): -# out(' '*6+'\\EpydocFunctionReturns') -# if rtype not in (None, UNKNOWN): -# out('[%s]' % self.docstring_to_latex(rtype, 6).strip()) -# if rdescr not in (None, UNKNOWN): -# out('{%s}' % self.docstring_to_latex(rdescr, 6)) -# else: -# out('{}') -# out('\n\n') - -# # Raises -# if func_doc.exception_descrs not in (None, UNKNOWN, [], ()): -# out(' '*6+'\\begin{EpydocFunctionRaises}\n') -# for name, descr in func_doc.exception_descrs: -# out(' '*10+'\\item[%s]\n\n' % -# plaintext_to_latex('%s' % name)) -# out(self.docstring_to_latex(descr, 10)) -# out(' '*6+'\\end{EpydocFunctionRaises}\n\n') - -# ## Overrides -# if var_doc.overrides not in (None, UNKNOWN): -# out('\\EpydocFunctionOverrides') -# if (func_doc.docstring in (None, UNKNOWN) and -# var_doc.overrides.value.docstring not in (None, UNKNOWN)): -# out('[1]') -# out('{%s}\n\n' -# % _hyperlink(var_doc.overrides, -# '%s' % var_doc.overrides.canonical_name)) - -# # Add version, author, warnings, requirements, notes, etc. -# self.write_standard_fields(out, func_doc) - -# out(' \\end{EpydocFunctionInfo}\n') -# out(' \\end{EpydocFunction}\n\n') - #//////////////////////////////////////////////////////////// #{ Variable Details #//////////////////////////////////////////////////////////// @@ -1090,6 +983,7 @@ return '\\texttt{%s}' % label def url_for(self, identifier): return None + _docstring_linker = _LatexDocstringLinker() def docstring_to_latex(self, docstring, where, indent=0, breakany=0): @@ -1194,8 +1088,9 @@ raise AssertionError('Bad index position %s' % pos) if pos in ['only', 'start'] and classCrossRef is not None: - term += classCrossRef % ('\\EpydocIndex[%s]{%s}' % (self.doc_kind(doc).lower(), - _dotted('%s'%doc.canonical_name))) + term += classCrossRef % ('\\EpydocIndex[%s]{%s}' % + (self.doc_kind(doc).lower(), + _dotted('%s'%doc.canonical_name))) return term This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-23 17:34:54
|
Revision: 1755 http://epydoc.svn.sourceforge.net/epydoc/?rev=1755&view=rev Author: edloper Date: 2008-02-23 09:34:49 -0800 (Sat, 23 Feb 2008) Log Message: ----------- - Replaced ._pdflatex with ._pdfdriver Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 16:38:44 UTC (rev 1754) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 17:34:49 UTC (rev 1755) @@ -55,13 +55,10 @@ self._exclude = kwargs.get('exclude', 1) self._list_submodules = kwargs.get('list_submodules', 1) self._sty = kwargs.get('sty') + self._pdfdriver = kwargs.get('pdfdriver', 'latex') self._top_section = 2 self._index_functions = 1 self._hyperref = 1 - - # [xx] check into this: - self._pdflatex = (kwargs['pdfdriver'] == 'pdflatex') - self._graph_types = kwargs.get('graphs', ()) or () """Graphs that we should include in our output.""" @@ -278,10 +275,12 @@ if self._hyperref: out('\\definecolor{UrlColor}{rgb}{0,0.08,0.45}\n') - if self._pdflatex: + if self._pdfdriver == 'pdflatex': driver = 'pdftex' - else: + elif self._pdfdriver == 'latex': driver = 'dvips' + else: + raise ValueError('bad pdfdriver: %s' % self._pdfdriver) out('\\usepackage[%s, pagebackref, pdftitle={%s}, ' 'pdfcreator={epydoc %s}, bookmarks=true, ' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-23 19:32:15
|
Revision: 1759 http://epydoc.svn.sourceforge.net/epydoc/?rev=1759&view=rev Author: edloper Date: 2008-02-23 11:32:13 -0800 (Sat, 23 Feb 2008) Log Message: ----------- - Removed stale code that was accidentally not deleted in previous checkin Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 19:06:41 UTC (rev 1758) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 19:32:13 UTC (rev 1759) @@ -134,7 +134,7 @@ (ValueDoc.SUMMARY_REPR_LINELEN, ValueDoc.REPR_LINELEN, ValueDoc.REPR_MAXLINES) = orig_valdoc_defaults - def _write_sty(self, directory, stylesheet, filename='epydoc.sty'): + def _write_sty(self, directory, stylesheet): """ Copy the requested LaTeX stylesheet to the target directory. The stylesheet can be specified as a name (i.e., a key from @@ -170,31 +170,7 @@ else: raise IOError("Can't find LaTeX style file: %r" % stylesheet) - - self._write_sty(directory, None, 'epydoc-default.sty') - - - - if stylesheet is None: - sty = STYLESHEETS['base'] - elif os.path.exists(stylesheet): - try: sty = open(stylesheet, 'rb').read() - except: raise IOError("Can't open LaTeX style file: %r" % - stylesheet) - self._write_sty(directory, None, 'epydoc-default.sty') - elif stylesheet in STYLESHEETS: - sty = STYLESHEETS[stylesheet] - if sty != STYLESHEETS['base']: - self._write_sty(directory, None, 'epydoc-default.sty') - else: - raise IOError("Can't find LaTeX style file: %r" % stylesheet) - - # Write the stylesheet. - out = open(os.path.join(directory, filename), 'wb') - out.write(sty) - out.close() - def _write(self, write_func, directory, filename, *args): # Display our progress. self._files_written += 1 @@ -302,9 +278,7 @@ out('\\usepackage[%s]{inputenc}\n' % self.get_latex_encoding()) # If we're generating hyperrefs, add the appropriate packages. - # !!!!!!!!!!!!!!!!!!!!!! - # !!! JEG - this needs to be the last thing in the preamble - # !!!!!!!!!!!!!!!!!!!!!! + # Note: this needs to be the last thing in the preamble -JEG if self._hyperref: out('\\definecolor{UrlColor}{rgb}{0,0.08,0.45}\n') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-23 20:10:36
|
Revision: 1763 http://epydoc.svn.sourceforge.net/epydoc/?rev=1763&view=rev Author: edloper Date: 2008-02-23 12:10:34 -0800 (Sat, 23 Feb 2008) Log Message: ----------- - DocstringLinker.url_for() is now an optional method Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 20:10:25 UTC (rev 1762) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-23 20:10:34 UTC (rev 1763) @@ -987,8 +987,6 @@ def translate_identifier_xref(self, identifier, label=None): if label is None: label = markup.plaintext_to_latex(identifier) return '\\texttt{%s}' % label - def url_for(self, identifier): - return None _docstring_linker = _LatexDocstringLinker() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-24 20:04:21
|
Revision: 1788 http://epydoc.svn.sourceforge.net/epydoc/?rev=1788&view=rev Author: edloper Date: 2008-02-24 12:04:18 -0800 (Sun, 24 Feb 2008) Log Message: ----------- - Pass context to ParsedDocstring.to_latex() Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-24 19:43:45 UTC (rev 1787) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-24 20:04:18 UTC (rev 1788) @@ -996,6 +996,7 @@ s = docstring.to_latex(self._docstring_linker, indent=indent, directory=self._directory, docindex=self.docindex, + context=where, hyperref=self._hyperref) return (' '*indent + '\\begin{EpydocDescription}%\n' + s.strip() + '%\n' + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-03-05 18:40:52
|
Revision: 1809 http://epydoc.svn.sourceforge.net/epydoc/?rev=1809&view=rev Author: edloper Date: 2008-03-05 10:40:49 -0800 (Wed, 05 Mar 2008) Log Message: ----------- - Use \raggedright for the subclass list - Use utf8x encoding, instead of utf8 - \EpydocDottedName now expects its argument to use escaped characters (underscore in particular.) E.g., \EpydocDottedName{foo\_bar}. It no longer uses the latex url package. This makes it work better with the hyperref package. - Misc changes to show_latex_warnings(). Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-03-05 18:40:33 UTC (rev 1808) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-03-05 18:40:49 UTC (rev 1809) @@ -405,7 +405,9 @@ len(doc.subclasses) > 0): sc_items = [_hyperlink(sc, '%s' % sc.canonical_name) for sc in doc.subclasses] + out('{\\raggedright%\n') out(self._descrlist(sc_items, 'Known Subclasses', short=1)) + out('}%\n') # The class's description. if doc.descr not in (None, UNKNOWN): @@ -1161,7 +1163,7 @@ #: Map the Python encoding representation into mismatching LaTeX ones. latex_encodings = { - 'utf-8': 'utf8', + 'utf-8': 'utf8x', } def get_latex_encoding(self): @@ -1202,20 +1204,17 @@ def _dotted(name): if not name: return '' - name = '%s' % name - # There are a couple of characters that even \\EpydocDottedName - # can't cope with; so filter them out. - name = re.sub('[%#]|\^\^+|\n', '?', name) - return '\\EpydocDottedName{%s}' % name + return '\\EpydocDottedName{%s}' % plaintext_to_latex('%s' % name) LATEX_WARNING_RE = re.compile('|'.join([ - r'(?P<file>\([\.a-zA-Z_\-/\\ \n0-9]+[.\n][a-z]{2,3}\b)', + r'(?P<file>\([\.a-zA-Z_\-/\\0-9]+[.\n][a-z]{2,3}\b)', (r'(?P<pkgwarn>^(Package|Latex) (?P<pkgname>[\w-]+) '+ r'Warning:[^\n]*\n(\((?P=pkgname)\)[^\n]*\n)*)'), r'(?P<overfull>^(Overfull|Underfull)[^\n]*\n[^\n]*)', r'(?P<latexwarn>^LaTeX\s+Warning:\s+[^\n]*)', r'(?P<otherwarn>^[^\n]*Warning:[^\n]*)', - r'(?P<paren>[()])']), + r'(?P<paren>[()])', + r'(?P<pageno>\[\d+({[^\}]+})?\])']), re.MULTILINE+re.IGNORECASE) OVERFULL_RE = re.compile( @@ -1235,7 +1234,11 @@ #[xx] we should probably pay special attention to overfull \vboxes. overfull = underfull = 0 filestack = ['latex'] + block = None + BLOCK = 'LaTeX Warnings: %s' + pageno = 1 for m in LATEX_WARNING_RE.finditer(s): + #log.debug(m.group()) # Check if it's something we don't care about. for regexp in IGNORE_WARNING_REGEXPS: if regexp.match(m.group()): @@ -1245,47 +1248,66 @@ if m.group('file'): filename = ''.join(m.group('file')[1:].split()) filename = re.sub(r'^\./', '', filename) + if filename == 'api.toc': filename = 'Table of contents (api.toc)' + if filename == 'api.ind': filename = 'Index (api.ind)' filestack.append(filename) - # Latex reported an overfull/underfull warning: + if block is not None: epydoc.log.end_block() + epydoc.log.start_block(BLOCK % filename) + block = filename + # LaTeX started writing a new page + elif m.group('pageno'): + if pageno == int(m.group()[1:-1].split('{')[0]): + pageno += 1 + # LateX reported an overfull/underfull warning: elif m.group('overfull'): msg = m.group('overfull').strip().split('\n')[0] + msg = re.sub(r'(\d+)\.\d+', r'\1', msg) + msg = re.sub(r'(lines \d+)--(\d+)', r'\1-\2', msg) if msg.lower().startswith('overfull'): overfull += 1 else: underfull += 1 - m2 = OVERFULL_RE.match(msg) - if m2: - if m2.group('boxtype') == 'vbox': - log.warning('%s: %s' % (filestack[-1], msg)) - elif (m2.group('typ').lower()=='overfull' and - int(m2.group('size')) > 50): - log.warning('%s: %s' % (filestack[-1], msg)) - else: - log.debug('%s: %s' % (filestack[-1], msg)) - else: - log.debug('%s: %s' % (filestack[-1], msg)) + log.warning(msg)#+' (page %d)' % pageno) +# m2 = OVERFULL_RE.match(msg) +# if m2: +# if m2.group('boxtype') == 'vbox': +# log.warning(msg) +# elif (m2.group('typ').lower()=='overfull' and +# int(m2.group('size')) > 50): +# log.warning(msg) +# else: +# log.debug(msg) +# else: +# log.debug(msg) # Latex reported a warning: elif m.group('latexwarn'): - msg = m.group('latexwarn').strip() - log.warning('%s: %s' % (filestack[-1], msg)) + log.warning(m.group('latexwarn').strip()+' (page %d)' % pageno) # A package reported a warning: elif m.group('pkgwarn'): - msg = m.group('pkgwarn').strip() - log.warning('%s:\n%s' % (filestack[-1], msg)) + log.warning(m.group('pkgwarn').strip()) else: # Display anything else that looks like a warning: if m.group('otherwarn'): - msg = m.group('otherwarn').strip() - log.warning('%s: %s' % (filestack[-1], msg)) + log.warning(m.group('otherwarn').strip()) # Update to account for parens. n = m.group().count('(') - m.group().count(')') if n > 0: filestack += [None] * n if n < 0: del filestack[n:] - if overfull or underfull: - msgs = [] - if overfull == 1: msgs.append('1 overfull box') - elif overfull: msgs.append('%d overfull boxes' % overfull) - if underfull == 1: msgs.append('1 underfull box') - elif underfull: msgs.append('%d underfull boxes' % underfull) - log.warning('LaTeX reported %s' % ' and '.join(msgs)) + # Don't let filestack become empty: + if not filestack: filestack.append('latex') + if (filestack[-1] is not None and + block is not None and block != filestack[-1]): + epydoc.log.end_block() + epydoc.log.start_block(BLOCK % filestack[-1]) + if block: + epydoc.log.end_block() + +# if overfull or underfull: +# msgs = [] +# if overfull == 1: msgs.append('1 overfull box') +# elif overfull: msgs.append('%d overfull boxes' % overfull) +# if underfull == 1: msgs.append('1 underfull box') +# elif underfull: msgs.append('%d underfull boxes' % underfull) +# log.warning('LaTeX reported %s' % ' and '.join(msgs)) + #log.register_logger(log.SimpleLogger(log.DEBUG)) #show_latex_warnings(open('/tmp/po.test').read()) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-07-08 13:08:00
|
Revision: 1244 Author: edloper Date: 2006-07-08 06:07:55 -0700 (Sat, 08 Jul 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1244&view=rev Log Message: ----------- - Define commands pysrckeyword, pysrcprompt, etc, which are used by source code colorization. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2006-07-05 22:54:40 UTC (rev 1243) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2006-07-08 13:07:55 UTC (rev 1244) @@ -30,6 +30,7 @@ "\\usepackage{alltt, parskip, fancyheadings, boxedminipage}", "\\usepackage{makeidx, multirow, longtable, tocbibind, amssymb}", "\\usepackage{fullpage}", + "\\usepackage[usenames]{color}", # Fix the heading position -- without this, the headings generated # by the fancyheadings package sometimes overlap the text. "\\setlength{\\headheight}{16pt}", @@ -45,6 +46,41 @@ "\\pagestyle{fancy}", "\\renewcommand{\\sectionmark}[1]{\\markboth{#1}{}}", "\\renewcommand{\\subsectionmark}[1]{\\markright{#1}}", + # Colorization for python source code + "\\definecolor{py@keywordcolour}{rgb}{1,0.45882,0}", + "\\definecolor{py@stringcolour}{rgb}{0,0.666666,0}", + "\\definecolor{py@commentcolour}{rgb}{1,0,0}", + "\\definecolor{py@ps1colour}{rgb}{0.60784,0,0}", + "\\definecolor{py@ps2colour}{rgb}{0.60784,0,1}", + "\\definecolor{py@inputcolour}{rgb}{0,0,0}", + "\\definecolor{py@outputcolour}{rgb}{0,0,1}", + "\\definecolor{py@exceptcolour}{rgb}{1,0,0}", + "\\definecolor{py@builtincolour}{rgb}{0.58039,0,0.58039}", + "\\definecolor{py@identifiercolour}{rgb}{0,0,0}", + "\\definecolor{py@linenumcolour}{rgb}{0.4,0.4,0.4}", + "\\definecolor{py@inputcolour}{rgb}{0,0,0}", + "% Prompt", + "\\newcommand{\\pysrcprompt}[1]{\\textcolor{py@ps1colour}" + "{\\small\\textbf{#1}}}", + "\\newcommand{\\pysrcmore}[1]{\\textcolor{py@ps2colour}" + "{\\small\\textbf{#1}}}", + "% Source code", + "\\newcommand{\\pysrckeyword}[1]{\\textcolor{py@keywordcolour}" + "{\\small\\textbf{#1}}}", + "\\newcommand{\\pysrcbuiltin}[1]{\\textcolor{py@builtincolour}" + "{\\small\\textbf{#1}}}", + "\\newcommand{\\pysrcstring}[1]{\\textcolor{py@stringcolour}" + "{\\small\\textbf{#1}}}", + "\\newcommand{\\pysrcother}[1]{\\small\\textbf{#1}}", + "% Comments", + "\\newcommand{\\pysrccomment}[1]{\\textcolor{py@commentcolour}" + "{\\small\\textbf{#1}}}", + "% Output", + "\\newcommand{\\pysrcoutput}[1]{\\textcolor{py@outputcolour}" + "{\\small\\textbf{#1}}}", + "% Exceptions", + "\\newcommand{\\pysrcexcept}[1]{\\textcolor{py@exceptcolour}" + "{\\small\\textbf{#1}}}", # Define new environment for displaying parameter lists. textwrap.dedent("""\ \\newenvironment{Ventry}[1]% @@ -226,7 +262,6 @@ # If we're generating hyperrefs, add the appropriate packages. if self._hyperref: - out('\\usepackage[usenames]{color}\n') out('\\definecolor{UrlColor}{rgb}{0,0.08,0.45}\n') out('\\usepackage[dvips, pagebackref, pdftitle={%s}, ' 'pdfcreator={epydoc %s}, bookmarks=true, ' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2008-02-20 00:49:51
|
Revision: 1731 http://epydoc.svn.sourceforge.net/epydoc/?rev=1731&view=rev Author: edloper Date: 2008-02-19 16:49:48 -0800 (Tue, 19 Feb 2008) Log Message: ----------- - Use 'show_private' option to specify whether to show/hide private vars. NOTE: This changes the default behavior of that latex writer. Previously, it hid private vars by default; now it will show them by default. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/latex.py Modified: trunk/epydoc/src/epydoc/docwriter/latex.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-19 16:51:20 UTC (rev 1730) +++ trunk/epydoc/src/epydoc/docwriter/latex.py 2008-02-20 00:49:48 UTC (rev 1731) @@ -128,7 +128,7 @@ def __init__(self, docindex, **kwargs): self.docindex = docindex # Process keyword arguments - self._show_private = kwargs.get('private', 0) + self._show_private = kwargs.get('show_private', 0) self._prj_name = kwargs.get('prj_name', None) or 'API Documentation' self._crossref = kwargs.get('crossref', 1) self._index = kwargs.get('index', 1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |