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é
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
squeak-ev@lists.squeakfoundation.org