KRL in LaTeX setzen

  • Hallo!


    Ich musste neulich einige Listings von KRL Programmen mit LaTeX dokumentieren. Dafür habe ich das listings package um eine definition der KRL-Sprache erweitert. Ich weiss nicht, ob das für irgendwen spannend ist, aber ich leg mal die erste Version hier hin, ich weiss, das noch viele Befehle fehlen und man das was schlauer machen könnte, aber immerhin...
    Wenn Erweiterungen rein kommen, würd ich dann die neuen Versionen einfach hier hin legen, für den Fall, das es mal wer braucht.


    Kai


    ------------------------------------------------------------------------------
    \lst@definelanguage{KRL}%
    {morekeywords={% Variables definitions
    REAL,INT,CHAR,ENUM,E6POS,FRAME,DECL},%
    morekeywords=[2]{% internal variables
    $_I_O_ACTCONF,$ACC.CP,$ACC.ORI1,$ACC.ORI2,
    $ACC_AXIS,$ADAP_ACC,$ADVANCE,$ALARM_STOP,
    $APO.CDIS,$APO.CORI,$APO.CPTP,$APO.CVEL,
    $APO_DIS_PTP,$BASE,$CIRC_TYPE,$CONFIG.DAT,
    $CURR_LIM,$CURR_MAX,$CURR_RED,$CUSTOM.DAT,
    $CYCFLAG,$EXT_START,$EXT_START$IN,$FLAG,$I_O_ACTCONF,
    $I_O_ACTCONF $OUT,$IBUS_ON,$IN,$INSIM_TBL,
    $IOBLK_EXT,$IOSIM_IN,$IOSIM_OPT,$IOSIM_OUT,
    $IPO_MODE,$MACHINE.DAT,$NEARPATHTOL,$NULLFRAME,
    $NUM_AX,$ORI_TYPE,$OUT,$OUT_C,$OUT_NODRIVE,
    $OUTSIM_TBL,$POS_ACT,$POS_RET,$PRO_I_O,
    $PRO_MODE,$PSER,$RED_T1,$ROBCOR.DAT,$ROBROOT,
    $SET_IO_SIZE,$SINGUL_POS,$STOPMESS $OUT,
    $TIMER,$TIMER_FLAG,$TIMER_STOP,$TOOL,$TORQ_DIFF,
    $TORQ_VEL,$TORQMON_COM,$TORQMON_COM_DEF,
    $TORQMON_TIME,$TORQUE_AXIS,$VEL.CP,$VEL.ORI1,
    $VEL.ORI2,$VEL_AXIS,$WORLD
    },%
    morekeywords=[3]{% commands
    IF,THEN,ELSE,ENDIF,
    FOR,TO,DO,ENDFOR,
    WHILE,DO,ENDWHILE,
    LOOP,ENDLOOP,
    SWITCH,CASE,ENDSWITCH,
    AND,OR,NOT,EXOR,
    PTP,PTP_REL,LIN,LIN_REL,CIRC,CIRC_REL,
    ANIN,ANOUT,
    BRAKE,CCLOSE,CHANNEL,CONFIRM,CONTINUE,COPEN,CREAD,CCLOSE,CWRITE,
    DEF,DEFAULT,DEFDAT,DEFFCT,DELAY,DIGIN,DIGOUT,DISTANCE,ENDDAT,ENDFCT,
    EXIT,EXT,EXTFCT,GLOBAL,GOTO,HALF,IF,IMPORT,INTERRUPT,IS,MAXIMUM,MINIMUM,
    PRIO,PULSE,REPEAT,RESUME,RETURN,SEC,SIGNAL,SREAD,STRUC,SWRITE,TRIGGER,UNTIL,WAIT,WHEN},
    alsoletter=\`,%
    sensitive,%
    morecomment=[s]{/*}{*/},%
    morecomment=[l]//,% nonstandard
    morestring=[b]"%
    }[keywords,comments,strings]%
    ----------------------------------------------------------------------------------
    (Einfach raus kopieren und zu den übrigen Sprachdefinitionen einfügen.)

    If you and DEAD people can read Hex, how many people can read Hex?

  • Schritt für Schritt zum Roboterprofi!
  • Ich nehme mal die Anzahl der Reaktionen (Null) zum Anlass mal kurz nein bisschen genauer zu schreiben, um was es eigentlich geht...
    Also, Latex dient dazu technische Texte "mit Formeln drin" hübsch zu Papier zu bringen. Dazu wird nen Syntax ähnlich wie HTML benutzt, der sehr einfach zu erlernen ist. Sollte einen KRL-Programmierer auf keinen Fall überfordern. Um in diesen hübschen Ausdrucken auch schöne Programm-Listings zu haben, hat jemand das Listings Paket entwickelt. Dieses rückt schleifen ein und färbt bekannte Befehle, so wie beim syntax-highlighting in nem Editor, ein. Dafür muss das Listings-paket aber die Befehle kennen, dazu dient der code aus dem letzten Beitrag.
    Empfehlenswert sind http://www.miktex.org zum kompilieren und http://www.texniccenter.org als editor. Der bietet auch ne Rechtschreibkorrektur an.



    So, hoffe das hat keinen allzu sehr gelangweilt... ;)

    If you and DEAD people can read Hex, how many people can read Hex?

  • Hiho,


    ist zwar schon ne Weile her der Thread, aber bin eben erst durch Zufall drübergestolpert. Und da freuts mich natürlich, dass ich net der einzige bin der LaTeX nutzt. Ist aus deine Listing Klasse inzwischen was vollständiges geworden?


    Ich frag nur, weil mich das natürlich interessiert und zum anderen lass ich mir meine KRL-Dokumentationen aus Codekommentaren generieren. Bzw, lass ich mir die *.tex files generieren. Hab aber bisher nie großartig auf die Listingformatierung geachtet, sondern einfach eine verbatim Umgebung genommen.


    Gruß Thadäus


    edit: immer diese schnelltipperei ;)

    Einmal editiert, zuletzt von Thadäus ()

  • Hui,


    das ist echt lang her, ich hab das auch seitdem nicht mehr benutzt. Ich weiß auch nicht mehr, ob ich damals noch was geändert hatte, ist einfach zu lang her. Ich fand aber das Listing Paket extrem praktisch, weil sich über markierungen in den Kommentaren des Sourcecode auch Zeilennummern flexibel referenzieren lassen.


    Kai

    If you and DEAD people can read Hex, how many people can read Hex?

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden