[Epydoc-commits] SF.net SVN: epydoc: [1739] trunk/epydoc/doc/epydoc-latex-demo.tex
Brought to you by:
edloper
|
From: <ed...@us...> - 2008-02-23 01:59:28
|
Revision: 1739
http://epydoc.svn.sourceforge.net/epydoc/?rev=1739&view=rev
Author: edloper
Date: 2008-02-22 17:59:26 -0800 (Fri, 22 Feb 2008)
Log Message:
-----------
- A demonstration of the output generated by epydoc's latex writer
Added Paths:
-----------
trunk/epydoc/doc/epydoc-latex-demo.tex
Added: trunk/epydoc/doc/epydoc-latex-demo.tex
===================================================================
--- trunk/epydoc/doc/epydoc-latex-demo.tex (rev 0)
+++ trunk/epydoc/doc/epydoc-latex-demo.tex 2008-02-23 01:59:26 UTC (rev 1739)
@@ -0,0 +1,524 @@
+% epydoc -- Demo & description of latex writer output
+%
+% Copyright (C) 2008 Edward Loper
+% Author: Edward Loper <ed...@lo...>
+% URL: <http://epydoc.sf.net>
+%
+% $Id: apidoc.py 1729 2008-02-19 16:49:16Z edloper $
+
+% This is the basic preamble that's always included (in the api.tex file).
+% If any reStructuredText docstrings are used, then it is extended using
+% the preamble material used by reStructuredText.
+\documentclass{article}
+\usepackage[index]{epydoc}
+\usepackage[utf8]{inputenc}
+\definecolor{UrlColor}{rgb}{0,0.08,0.45}
+\usepackage[pdftex, pagebackref, pdftitle={API Documentation}, pdfcreator={epydoc 3.0.1}, bookmarks=true, bookmarksopen=false, pdfpagemode=UseOutlines, colorlinks=true, linkcolor=black, anchorcolor=black, citecolor=black, filecolor=black, menucolor=black, pagecolor=black, urlcolor=UrlColor]{hyperref}
+\begin{document}
+
+\title{Epydoc LaTeX Writer Output Demo}
+\author{}
+\date{}
+\maketitle
+
+This file provides a demonstration and description of epydoc's LaTeX
+output. Most of the important information is in the comments, so you
+should read this file in its original form (and not as a rendered pdf).
+By looking at this file, and at the epydoc-default.sty file, you should
+be able to determine how to write your own customized style file.
+
+% ======================================================================
+
+\section{General Formatting}
+
+\subsection{Hyperlinks and Crossreferences}
+
+% The \EpydocDottedName command is used to escape dotted names. In
+% particular, it escapes underscores (_) and allows non-hyphenated
+% wrapping at '.' separator characters.
+\EpydocDottedName{my_module.Zip}
+
+% The \EpydocHypertarget command is used to mark targets that hyperlinks
+% may point to. It takes two arguments: a target label, and text
+% contents. (In some cases, the text contents will be empty.) Target
+% labels are formed by replacing '.'s in the name with ':'s. The
+% default stylesheet creates a \label for the target label, and displays
+% the text.
+\EpydocHypertarget{foo:bar:baz}{\EpydocDottedName{foo.bar.baz}}
+
+% The \EpydocHyperlink command is used to create a link to a given target.
+% It takes two arguments: a target label, and text contents. The
+% default stylesheet just displays the text contents.
+\EpydocHyperlink{foo:bar:baz}{\EpydocDottedName{foo.bar.baz}}
+
+% The \CrossRef command creates a cross-reference to a given target,
+% including a pageref. It takes one argument, a target label.
+\CrossRef{foo:bar:baz}
+
+\subsection{Indexing}
+
+% The \EpydocIndex command is used to mark items that should be included
+% in the index. It takes one optional argument, specifying the 'kind'
+% of the object, and one required argument, the term that should be
+% included in the index. (This command is used inside the \index
+% command.) kind can be Package, Script, Module, Class, Class Method,
+% Static Method, Method, Function, or Variable.
+\index{\EpydocIndex[Script]{\EpydocDottedName{fooble}}}
+
+\subsection{Source Code Syntax Highlighting}
+
+% Doctest blocks are colorized using a variety of commands, all beginning
+% with the prefix "\pysrc". See epydoc-default.sty for a full list.
+\begin{alltt}
+\pysrcprompt{{\textgreater}{\textgreater}{\textgreater} }f(x)
+\pysrcoutput{123}\end{alltt}
+
+\subsection{reStructuredText Admonitions}
+
+% These would be defined by rst's style file:
+\newlength{\admonitionwidth}
+\setlength{\admonitionwidth}{.8\textwidth}
+
+% The reSTadmonition environment is used to display reStructuredText
+% admonitions, such as ``..warning::'' and ``..note::''. It takes
+% one optional argument, the admonition type.
+\begin{reSTadmonition}[note]
+ This is a note.
+\end{reSTadmonition}
+
+% ======================================================================
+
+% Each module is listed in its own section. (These sections are created
+% as separate files, and \include-ed into the main api.tex file). The
+% section contains:
+% - The module description (from the module's docstring)
+% - A metadata section (author, version, warnings, etc)
+% - A list of submodules (if it's a package)
+% - A list of classes defined by the module (only if the
+% --list-classes-separately option is used).
+% - A subsection describing the functions defined by the module.
+% - A subsection describing the variables defined by the module.
+% - A subsection for each class defined by the module (only if
+% the --list-classes-separately option is *not* used).
+\section{my\_module}
+
+ % The EpydocModuleDescription environment is used to mark the
+ % module's description (from its docstring)
+ \begin{EpydocModuleDescription}
+ This is an example module, used to demonstrate the LaTeX commands and
+ environments used by epydoc.
+ \end{EpydocModuleDescription}
+
+ % Each metadata item is listed separately. There are three environments
+ % and commands used for metadata:
+ % - The \EpydocMetadataSingleValue command is used to display a metadata
+ % field with a single value. It takes two arguments: the metadata
+ % field name and the metadata description.
+ % - The \EpydocMetadataShortList environment is used to display a
+ % metadata field with multiple values when the field declares that
+ % short=True; i.e., that multiple values should be combined into a
+ % single comma-delimited list. It takes one argument (the metadata
+ % field name); and items should be separated by the \and command.
+ % - The \EpydocMetadataLongList environment is used to display a
+ % metadata field with multiple values when the field declares that
+ % short=False; i.e., that multiple values should be listed
+ % separately in a bulleted list. It takes one argument (the metadata
+ % field name); and items should marked wit hthe \item command.
+ \EpydocMetadataSingleValue{See Also}{some reference.}
+
+ \begin{EpydocMetadataShortList}{Author}
+ joe \and mary
+ \end{EpydocMetadataShortList}
+
+ \begin{EpydocMetadataLongList}{Notes}
+ \item This is one note.
+ \item This is a second note.
+ \end{EpydocMetadataLongList}
+
+ % The list of submodules that a package contains is put it its own
+ % subsection. The list is displayed using the EpydocModuleList
+ % environment. Nested submodules are displayed using nested
+ % EpydocModuleList environments. If the modules are divided into
+ % groups (with the epydoc @group field), then groups are displayed
+ % using the \EpydocGroup command, followed by a nested EpydocModuleList.
+ \subsection{Submodules}
+ \begin{EpydocModuleList}
+ \item[\EpydocHyperlink{my_module:foo}{\EpydocDottedName{my_module.foo}}]
+ Description of my\_module.foo.
+ \item[\EpydocHyperlink{my_module:bar}{\EpydocDottedName{my_module.bar}}]
+ Description of my\_module.bar.
+ \begin{EpydocModuleList}
+ \item[\EpydocHyperlink{my_module:bar:soap}
+ {\EpydocDottedName{my_module.bar.soap}}]
+ Description of my\_module.bar.soap.
+ \end{EpydocModuleList}
+ \EpydocGroup{Some Group}
+ \begin{EpydocModuleList}
+ \item[\EpydocHyperlink{my_module:baz}
+ {\EpydocDottedName{my_module.baz}}]
+ Description of my\_module.baz.
+ \end{EpydocModuleList}
+ \end{EpydocModuleList}
+
+ % The list of classes that a module contains is just like the list
+ % of submodules that a package contains, except that the list
+ % environment EpydocClassList and the command \EpydocGroup
+ % are used. (Note that this list is only included when the
+ % --list-classes-separately option is used.)
+ \subsection{Classes}
+ \begin{EpydocClassList}
+ \item[\EpydocHyperlink{my_module:Zip}
+ {\EpydocDottedName{my_module.Zipasdkfjsdflsd}}]
+ Description of my\_module.Zip.
+ \item[\EpydocHyperlink{my_module:Zap}
+ {\EpydocDottedName{my_module.Zap}}]
+ Description of my\_module.Zap.
+ \EpydocGroup{Some Group}
+ \begin{EpydocClassList}
+ \item[\EpydocHyperlink{my_module:Zam}
+ {\EpydocDottedName{my_module.Zam}}]
+ Description of my\_module.Zam.
+ \item[\EpydocHyperlink{my_module:Zam}
+ {\EpydocDottedName{my_module.Zam}}]
+ Description of my\_module.Zam.
+ \end{EpydocClassList}
+ \end{EpydocClassList}
+
+ % The functions that a module contains are listed in a separate
+ % subsection. This subsection contains a single EpydocFunctionList
+ % environment
+ \subsection{Functions}
+
+ % The EpydocFunctionList environment is used to display functions.
+ % It contains one \EpydocFunction command for each function. This
+ % command takes 8 arguments:
+ %
+ % - The function's signature: an EpydocFunctionSignature environment
+ % specifying the signature for the function.
+ %
+ % - The function's description (from the docstring)
+ %
+ % - The function's parameters: An EpydocFunctionParameters list
+ % environment providing descriptions of the function's parameters.
+ % (from the epydoc @param, @arg, @kwarg, @vararg, @type fields)
+ %
+ % - The function's return description (from the epydoc @rerturns field)
+ %
+ % - The function's return type (from the epydoc @rtype field)
+ %
+ % - The function's exceptions: An EpydocFunctionRaises list
+ % environment describing exceptions that the function may raise
+ % (from the epydoc @raises field)
+ %
+ % - The function's override: An EpydocFunctionOverrides command
+ % describing the method that this function overrides (if any)
+ %
+ % - The function's metadata: Zero or more EpydocMetadata*
+ % commands/environments, taken from metadata fields (eg @author)
+ %
+ % All arguments except for the first (the signature) may be empty.
+ %
+ \begin{EpydocFunctionList}
+
+ \EpydocFunction{
+ % Argument 1: The function signature
+ %
+ % The EpydocFunctionSignature is used to display a function's
+ % signature. It expects one argument, the function's name. The
+ % body of the environment containd the parameter list. The
+ % following commands are used in the parameter list, to mark
+ % individual parameters:
+ % - \Param: Takes one required argument (the parameter name) and
+ % one optional argument (the defaultt value).
+ % - \VarArg: Takes one argument (the varargs parameter name)
+ % - \KWArg: Takes one argument (the keyword parameter name)
+ % - \GenericArg: Takes no arguments (this is used for '...', e.g.
+ % when the signature is unknown).
+ % - \TupleArg: Used inside of the \Param command, to mark
+ % argument tuples. Individual elements of the argument tuple
+ % are separated by the \and command.
+ %
+ % Parameters are separated by the \and command.
+ \begin{EpydocFunctionSignature}{myfunc}%
+ \Param{x}%
+ \and \Param{y}%
+ \and \Param{i}%
+ \and \Param{j}%
+ \and \Param{\TupleArg{a \and b}}%
+ \and \VarArg{rest}, \KWArg{keywords}%
+ \end{EpydocFunctionSignature}
+ }{
+ % Argument 2: The function description
+ This is an example function.
+ }{
+ % Argument 3: The function parameter descriptions
+ %
+ % The EpydocFunctionParameters list environment is used to
+ % describe the function's parameters. It takes a single
+ % required argument, a string which can be used to set the
+ % label width for the list. (I.e., this string is as long
+ % as the longest parameter name.) The list contains one
+ % \item for each parameter description. Parameter types
+ % are currently listed as part of the text (not using any
+ % special environments or commands)
+ \begin{EpydocFunctionParameters}{xxxxxxxx}
+ \item[x] Description of parameter x.
+
+ (type=int)
+
+ \item[i, j] Description of parameters x and y.
+
+ \item[keywords] Description of the keywords parameter.
+ \end{EpydocFunctionParameters}
+ }{
+ % Argument 4: The function return value description
+ description of the return value
+ }{
+ % Argument 5: The function return value tupe
+ int
+ }{
+ % Argument 6: The function exception descriptions
+ %
+ % The EpydocRaises list environment is used to display the
+ % list of exceptions that the function may raise. The list
+ % contains one \item for each exception.
+ \begin{EpydocFunctionRaises}
+ \item[ValueError] If there's some problem with a value.
+ \item[TypeError] If the wrong type is given.
+ \end{EpydocFunctionRaises}
+ }{
+ % Argument 7: The function overrides command
+ %
+ % (this is only used for methods, not functions)
+ }{
+ % Argument 8: The function metadta
+ %
+ % The metadata section uses the same commands that the module-
+ % level metadata section uses; see the discussion above.
+ \EpydocMetadataSingleValue{See Also}{some reference.}
+
+ \begin{EpydocMetadataShortList}{Author}
+ joe \and mary
+ \end{EpydocMetadataShortList}
+
+ \begin{EpydocMetadataLongList}{Notes}
+ \item This is one note.
+ \item This is a second note.
+ \end{EpydocMetadataLongList}
+ }
+
+ % If functions are divided into groups (with the epydoc @group
+ % field), then group headers are marked with the \EpydocGropu
+ % command.
+ \EpydocGroup{Some Group}
+
+ \EpydocFunction{
+ \begin{EpydocFunctionSignature}{\EpydocDottedName{some_func}}
+ \Param{x} \and \Param{y} \and \Param{z}
+ \end{EpydocFunctionSignature}}
+ {}{}{}{}{}{}{}
+
+ \end{EpydocFunctionList}
+
+ % The variables that a module contains are listed in a separate
+ % subsection. This section contains a single EpydocVariableList
+ % environment
+ \subsection{Variables}
+
+ % The EpydocVariableList environment is used to describe module
+ % variables. It contains one \EpydocVariable command for each
+ % variable. This command takes four required arguments:
+ %
+ % - The variable's name
+ % - The variable's description (from the docstring)
+ % - The variable's type (from the epydoc @type field)
+ % - The variable's value
+ %
+ % If any of these arguments is not available, then the empty
+ % string will be used.
+ %
+ % If the variables are divided into groups (with the epydoc @group
+ % field), then the \EpydocInternalHeader command is used to mark
+ % the beginning of each variable group.
+ \begin{EpydocVariableList}
+ \EpydocVariable{\EpydocHyperlink{my_module:gorp}
+ {\EpydocDottedName{my_module.gorp}}}
+ {Description of the variable gorp}
+ {int}
+ {12}
+ \EpydocVariable{\EpydocHyperlink{my_module:moo}
+ {\EpydocDottedName{my_module.moo}}}
+ {Description of the variable moo}
+ {str}
+ {'hello'}
+ \EpydocVariable{\EpydocHyperlink{my_module:cow}
+ {\EpydocDottedName{my_module.cow}}}
+ {} % no description
+ {} % no type
+ {} % no value
+ \end{EpydocVariableList}
+
+ % The remaineder of the module's section consists of one subsection
+ % for each class defined by the module. (However, if the
+ % --list-classes-separately option is used, then these subsections
+ % are not generated; instead, epydoc will generate a separate
+ % top-level section for each class.) Each class section contains:
+ % - The class's base tree (or a class tree graph, if the options
+ % "--graph classtree" or "--graph umlclasstree" are used).
+ % - A list of known subclasses.
+ % - The class description (from the class's docstring)
+ % - A metadata section (author, version, warnings, etc)
+ % - A list of methods defined by the class
+ % - A list of properties defined by the class
+ % - A list of class variables defined by the class
+ % - A list of instance variables defined by the class
+ \subsection{Class \EpydocDottedName{Zip}}
+
+ % The base tree is 'drawn' using a carefully constructed tabular
+ % environment. Here's an example of what it can look like:
+ \begin{tabular}{cccccc}
+ \multicolumn{2}{r}{
+ \settowidth{\EpydocBCL}{\EpydocDottedName{MyBaseClass}}
+ \multirow{2}{\EpydocBCL}{\EpydocHyperlink{object}
+ {\EpydocDottedName{MyBaseClass}}}}
+ && \\
+ \cline{3-3}
+ &&\multicolumn{1}{c|}{} && \\
+ &&\multicolumn{2}{l}{\textbf{\EpydocDottedName{my_module.Zip}}}
+ \end{tabular}
+
+ % The known subclasses are displayed using an \EpydocMetadataSingleValue
+ % command or an \EpydocMetadataShortList environment. See the
+ % description of these above (for module metadata).
+ \begin{EpydocMetadataShortList}{Known Subclasses}
+ \EpydocHyperlink{my_module:Zap}{\EpydocDottedName{my_module.zap}}
+ \and
+ \EpydocHyperlink{my_module:Zam}{\EpydocDottedName{my_module.zam}}
+ \end{EpydocMetadataShortList}
+
+ % The EpydocClassDescription environment is used to mark the
+ % class's description (from its docstring)
+ \begin{EpydocClassDescription}
+ This is an example class, used to demonstrate the LaTeX commands and
+ environments used by epydoc.
+ \end{EpydocClassDescription}
+
+ % The metadata section uses the same commands that the module-
+ % level metadata section uses; see the discussion above.
+ \EpydocMetadataSingleValue{See Also}{some reference.}
+
+ \begin{EpydocMetadataShortList}{Author}
+ joe \and mary
+ \end{EpydocMetadataShortList}
+
+ % The methods that a class defines are listed in a separate
+ % subsubsection. This subsubsection contains a single
+ % EpydocFunctionList environment.
+ \subsubsection{Methods}
+
+ % The EpydocFunction environment was described above (when it was
+ % used with module-level functions.) The only difference here is
+ % that functions may optionally include a command specifying
+ % what method is overridden by this method (\EpydocFunctionOverrides)
+ % as the seventh argument to the \EpydocFunction command.
+ \begin{EpydocFunctionList}
+ \EpydocFunction{
+ \begin{EpydocFunctionSignature}{mymethod}
+ \Param{x} \and \Param{y}
+ \end{EpydocFunctionSignature}}
+ {This is an example function.}
+ {}{}{}{}
+ {
+ % The \EpydocFunctionOverrides command specifies which method
+ % was overridden by this method. It comes just before the
+ % metadata section. It takes one optional argument, which will
+ % be "1" if documentation was inherited from the overridden
+ % method; and one required argument, containing the name of
+ % the overridden method.
+ \EpydocFunctionOverrides[1]{\EpydocHyperlink{MyBaseClass:mymethod}
+ {\EpydocDottedName{MyBaseClass.mymethod}}}
+ }{}
+ \end{EpydocFunctionList}
+
+ % The properties that a class defines are listed in a separate
+ % subsection. This section contains a single EpydocPropertyList
+ % environment.
+ \subsubsection{Properties}
+
+ % The EpydocPropertyList environment is used to describe class
+ % properties. It contains one \EpydocProperty command for each
+ % property. This command takes six required arguments:
+ %
+ % - The property's name
+ % - The property's description (from the docstring)
+ % - The property's type (from the epydoc @type field)
+ % - The property's fget function
+ % - The property's fset function
+ % - The property's fdel function
+ %
+ % If any of these arguments is not available, then the empty
+ % string will be used.
+ %
+ % If the properties are divided into groups (with the epydoc @group
+ % field), then the \EpydocInternalHeader command is used to mark
+ % the beginning of each property group.
+ %
+ % If any properties are inherited from a base class, and if
+ % --inheritance=listed (the default), then they will be listed
+ % after all the other properties, using the
+ % \EpydocInheritanceList command. This command will be used
+ % once for each base class that properties are inherited from.
+ % It takes two arguments: the name of the base class that the
+ % properties were inherited from, and a list of property names.
+ \begin{EpydocPropertyList}
+ \EpydocProperty{\EpydocHyperlink{my_module:Zip:duck}
+ {\EpydocDottedName{duck}}}
+ {Description of the property duck}
+ {int}
+ {\EpydocDottedName{get_dock}}
+ {\EpydocDottedName{set_dock}}
+ {\EpydocDottedName{del_dock}}
+ \EpydocInheritanceList{MyBaseClass}{goose, pig}
+ \end{EpydocPropertyList}
+
+ % The class variabless that a class defines are listed in a
+ % separate subsection. This section contains a single
+ % EpydocClassVariableList environment.
+ \subsubsection{Class Variables}
+
+ % The EpydocClassVariableList environment is used the same way as
+ % the EpydocVariableList environment (shown above), with one
+ % exception: if any variables are inherited from a base class,
+ % and if--inheritance=listed (the default), then they will be
+ % listed after all the other properties, using the
+ % \EpydocInheritanceList command. This command will be used
+ % once for each base class that variabless are inherited from.
+ % It takes two arguments: the name of the base class that the
+ % properties were inherited from, and a list of property names.
+ \begin{EpydocClassVariableList}
+ \EpydocVariable{\EpydocHyperlink{my_module:Zip:quack}
+ {\EpydocDottedName{my_module.Zip.quack}}}
+ {Description of the class variable quack}
+ {str} % type
+ {} % no value
+ \EpydocInheritanceList{MyBaseClass}{oink, bark}
+ \end{EpydocClassVariableList}
+
+ % The instance variabless that a instance defines are listed in a
+ % separate subsection. This section contains a single
+ % EpydocInstanceVariableList environment.
+ \subsubsection{Instance Variables}
+
+ % The EpydocInstanceVariableList environment is used the same
+ % way as the EpydocClassVariableList environment (shown above).
+ \begin{EpydocClassVariableList}
+ \EpydocVariable{\EpydocHyperlink{my_module:Zip:florp}
+ {\EpydocDottedName{my_module.Zip.flrop}}}
+ {Description of the class variable florp}
+ {list} % type
+ {} % no value
+ \EpydocInheritanceList{MyBaseClass}{blorp}
+ \end{EpydocClassVariableList}
+
+% That's all, folks!
+\end{document}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|