LaTeX-Doclet

Auf dieser Seite finden Sie Informationen zu dem LaTeX-Doclet mit dem sich Javadoc Kommentare automatisch in LaTeX-Dokumente umwandeln lassen. Das Original-Doclet ist leider in einigen Bereichen fehlerhaft, deshalb hat Stefan Seltzsam es überarbeitet.

Die gepachte Version können Sie hier downloaden. Zusätzlich müssen Sie im LaTeX-Dokument noch folgende Änderung durchführen:

Um in den Javadoc-Kommentaren Umlaute verwenden zu können, muss man im LaTeX-Header \usepackage[latin1]{inputenc} einfügen (z.B. vor dem \usepackage{ifthen}).

Das kann man auch in ein Headerfile docinit.tex in dem Verzeichnis, in dem javadoc aufgerufen wird, schreiben. Dann geht das automatisch.
Alternativ kann man das -texinit Argument verwenden, um die Datei anzugeben, die eingebunden wird. Das geht aber nur mit der gepachten Version des TexDoclets.

Das Doclet hat auch Fehler gemacht, wenn man Arrays als Rückgabetypen hat, z.B.

public int[] testmethod(int [] p1, String [] p2)

In der Dokumentation wird dann ein int als Rückgabetyp angegeben.

Mit der gepachten Version sollten diese Bugs (und einige andere kleine) nicht mehr auftreten.

Beispielaufruf

javadoc -docletpath PFAD_ZUM_DOCLET/doclet.jar -doclet com.c2_tech.doclets.TexDoclet *.java
Wie unten zu sehen ist, kann man die Generierung durch weitere Parameter beeinflussen: z.B. nur public-Methoden, Einschränkung auf spezielle Packages,...

ACHTUNG: Anscheinend funktioniert dieses Doclet nur mit Java 1.3.1! Sie können also mit Java 6.0 programmieren und mit Javadoc/Java 1.3.1 die Dokumentation erstellen. Falls das Probleme macht, bitte mit dem Betreuer in Verbindung setzen!

Command Line Usage (aktualisiert)

usage: javadoc [options] [packagenames] [sourcefiles] [classnames] [@files]
-overview <file>          Read overview documentation from HTML file
-public                   Show only public classes and members
-protected                Show protected/public classes and members (default)
-package                  Show package/protected/public classes and members
-private                  Show all classes and members
-help                     Display command line options
-doclet <class>           Generate output via alternate doclet
-docletpath <path>        Specify where to find doclet class files
-1.1                      Generate output using JDK 1.1 emulating doclet
-sourcepath <pathlist>    Specify where to find source files
-classpath <pathlist>     Specify where to find user class files
-bootclasspath <pathlist> Override location of class files loaded
			  by the bootstrap class loader
-extdirs <dirlist>        Override location of installed extensions
-verbose                  Output messages about what Javadoc is doing
-locale <name>            Locale to be used, e.g. en_US or en_US_WIN
-encoding <name>          Source file encoding name
-J<flag>                  Pass <flag> directly to the runtime system

TexDoclet Usage:
-title <title>        A title to use for the generated output document.
                      No -title will result in no title page.
-output <outfile>     Specifies the output file to write to.  If none
                      specified, the default is docs.tex in the current
                      directory.
-docclass <class>     LaTeX2e document class, `report' is the default.
-doctype <type>       LaTeX2e document style, `myheadings' is the default.
-docdir <dirname>     Directory tree where package documentation exists.
-packagefile <name>   The name of the HTML file that has the packages' documentation
-classfilter <name>   The name of a class implementing the ClassFilter interface.
                      This class is used to indicate classes to be excluded.
                      Typically there are classes in a package that are non-public,
                      and this mechanism can be used to exclude them and only
                      include the public classes.
-date <date string>   The value to use for the document date.
-author <author>      Specifies string to use for document Author.
-texinit <file>       LaTeX2e statements included before \begin{document}.
-texsetup <file>      LaTeX2e statements included after \begin{document}.
-texfinish <file>     LaTeX2e statements included before \end{document}.
-texpackage <file>    LaTeX2e statements included before packages' \chapter.
-noinherited          Do not include inherited API information in output.
  

Das Original findet wurde entwickelt von Greg Wonderly von C2 Technologies Inc. Andere Versionen finden Sie bei java.net oder github.com.

Eine neueres Doclet namens TexGen das unabhängig entwickelt wurde finden sie auf CTAN. Es erstellt pro Klasse eine eigene .tex-Datei und versteht leider auch nicht alle javadoc-Anweisungen, z.B. {@code ...}.