Squeak-Code mit LaTeX dokumentieren

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Squeak-Code mit LaTeX dokumentieren

André Wendt-3
Hallo *,

was ist die beste Möglichkeit, Squeak-Code in LaTeX zu dokumentieren?

Ich würde gern Quellcode aus Squeak in eine .st-Datei bekommen, um diese
dann mit dem listings-package einzubinden -- der fileOut-Mechanismus ist
dafür wohl kaum geeignet wegen der Steuerzeichen...

Für Ideen und Ratschläge bin ich dankbar!

Gruß,
André


Reply | Threaded
Open this post in threaded view
|

Re: Squeak-Code mit LaTeX dokumentieren

Markus Schlager-2
Hallo Andre!

Ich arbeite mit schlichtem Copy und Paste aus Squeaks Browser in meinen
Texteditor (meist emacs). Das klappt vollkommen problemlos, um die
Steuerzeichen wie _ und ^ kümmern sich meine Listingsdefinitionen (werden
in den literate-Einträgen übersetzt):

----------8X--------------------------------------------------------
\usepackage{listings}

%%% Smalltalkdefinition f"ur das listings-Paket
\lstdefinelanguage{Smalltalk}{
  keywordsprefix=\#,
  morekeywords={true,false,self,super,nil,thisContext},
 
morekeywords={[2]ifTrue,ifFalse,whileTrue,whileFalse,and,or,xor,not,eqv,to,by,do,timesRepeat,caseOf,otherwise},
  sensitive=true,
  morecomment=[s]{"}{"},
  morestring=[b]',
  moredelim=**[is][\itshape]{/+}{+/}, % benutzt f"ur tempor"are Variablen
  style=SmalltalkStyle
}
\lstdefinestyle{SmalltalkStyle}{
  tabsize=4,
  frame=leftline,
%  frame=bl,
  framerule=2pt,
  rulecolor=\color{gray},
%  backgroundcolor=\color{white},
  backgroundcolor=\usebeamercolor[bg]{listing},
  basicstyle=\ttfamily\footnotesize,
  keywordstyle={[2]\color{gray!70!black}\bfseries},
%  stringstyle=\color{orange},
  stringstyle=\mdseries\slshape\color{gray!50!black},
%  commentstyle=\color{brown},
  commentstyle=\slshape\color{gray},
  emphstyle={\color{red}\bfseries},
  emphstyle={[2]\color{red}},
  emphstyle={[3]\color{blue}\bfseries},
  emphstyle={[4]\color{blue}},
  literate={\ _\ }{{$\gets$}}3{^}{{$\uparrow$}}1
%  literate={:=}{{$\gets$}}1{^}{{$\uparrow$}}1
%  literate={^}{{$\uparrow$}}1
}
----------------------------------------X8--------------

Ein Quelltextbeispiel sieht dann beispielsweise so aus:

--------8X-----------------------------------------------
\begin{lstlisting}[language=Smalltalk, numbers=left,
  morekeywords={createLabels}, moreemph={romanNumerals}]  
WatchMorph>>createLabels
    | numeral font h r |
    self removeAllMorphs.
    font _ StrikeFont familyName: fontName size: (h _ self height min:
self width)//8.
    r _ 1.0 - (1.4 * font height / h).
    1 to: 12 do:
        [:hour |
        numeral _ romanNumerals
            ifTrue: [hour printStringRoman]
            ifFalse: [hour asString].
        self addMorphBack: ((StringMorph contents: numeral font: font
emphasis: 1)
            center: (self radius: r hourAngle: hour)) lock]
\end{lstlisting}}%
---------------------------------------------X8-------------

Das Beispiel ist aus einer Beamer-Präsentatino (daher auch die pgf-Syntax
der Farbdefinitionen). Für Overlays muß man das Listing noch in ein
\defverbatim packen.

Ich hoffe, das hilft Dir weiter

Markus
-----------------------------------------------
 Markus Schlager               m.slg(at)gmx.de

Reply | Threaded
Open this post in threaded view
|

Re: Squeak-Code mit LaTeX dokumentieren

André Wendt-3
In reply to this post by André Wendt-3
Hallo Markus,

> Ich arbeite mit schlichtem Copy und Paste aus Squeaks Browser in meinen
> Texteditor (meist emacs). Das klappt vollkommen problemlos, um die
> Steuerzeichen wie _ und ^ kümmern sich meine Listingsdefinitionen (werden
> in den literate-Einträgen übersetzt):

Auch 'ne Möglichkeit. An Copy + Paste hatte ich auch gedacht, aber dann
als "old school" verworfen ;-)

Inzwischen habe ich SmallAutoDoc ("With this package you will be able to
generate LaTeX files from your methods and classes comments.") und
FileOutProject <http://www.squeaksource.com/FileOutProject> gefunden,
vielleicht passe ich das bei Gelegenheit mal an.

Auf jeden Fall danke für die Anregungen!

Viele Grüße,
André

> Ich hoffe, das hilft Dir weiter
>
> Markus
> -----------------------------------------------
>  Markus Schlager               m.slg(at)gmx.de