Quellcode mit listings anzeigen.

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


hauke
Forum-Newbie
Forum-Newbie
Beiträge: 1
Registriert: Sa 23. Jan 2010, 01:56

Quellcode mit listings anzeigen.

Beitrag von hauke »

Hallo

Ich will das listings Paket benutzen, um Methoden aus Quellcode einzubinden.
Ich weis nur, wie man mit Zeilennummern das erreicht, jedoch ist das nicht sehr flexibel, besonders dann, wenn man öfters Am Quellcode etwas ändert.

Ich wollte mal fragen,
wie man in LaTex Quellcode anzeigen kann, so dass man den Methoden- /
Funktionsnamen nur angibt. Ich weis nicht ob das mit listings Überhaupt geht.

Mit Zeilennummer geht das ja so:
\usepackage{listings}
\lstset{language=Java}
\lstset{keywordstyle=\color{blue}\bfseries\emph}
\lstset{breaklines=true}
\lstset{basicstyle=\ttfamily\fontsize{10}{10}}
\lstinputlisting[firstline=135,lastline=142,name=gesetzt, numbers=left]
{../ordner/bla.java}


http://www2.informatik.hu-berlin.de/~pi ... -quell.pdf
Dort wurde auch nichts davon erwähnt.

Benutzeravatar
KOMA
TeX-Entwickler
TeX-Entwickler
Beiträge: 2958
Registriert: Fr 4. Jul 2008, 17:28
Kontaktdaten:

Re: Quellcode mit listings anzeigen.

Beitrag von KOMA »

hauke hat geschrieben:Ich wollte mal fragen,
wie man in LaTex Quellcode anzeigen kann, so dass man den Methoden- /
Funktionsnamen nur angibt. Ich weis nicht ob das mit listings Überhaupt geht.
Das geht nicht. Dazu bräuchte man je Programmiersprache einen kompletten Parser. Es würde ja nicht einmal genügen, einfach beispielsweise nach "Beispielklasse:Methode" zu suchen, denn das könnte auch schlicht ein Kommentar oder Teil eines Strings sein. Auch das Ende einer Methode oder einer Funktion ist je nach Sprache ggf. nur zu erkennen, wenn man einen vollständigen Syntaxbaum aufbaut.

Einfacher wird es, wenn man sich auf wohlformatierten Code verlassen kann. Dann genügen eventuell Heuristiken der Art: Suche erste Zeile, die wie folgt beginnt, und nachfolgende erste Zeile, die wie folgt beginnt. So etwas könnte man ggf. sogar in TeX implementieren. Einfacher wäre es aber, sich dafür ein bash- oder perl-Script zu schreiben, das dann ggf. eine neue Datei mit einigen Makrodefinitionen anlegt, die genau diese Zeilennummern enthalten. Diese Datei kannst Du dann wiederum am Anfang Deines Dokuments einlesen.

Alles keine fertige Lösung, sondern nur Idee. Aber vielleicht hat ja jemand Lust, das aufzugreifen.

Antworten