Lessico TeX e LaTeX in Scite

  • Creatore
    Topic
  • #59239
    Up
    0
    Down
    ::


    Salve a tutti.

    Sto cercando di sistemare Scite per l’uso con TeX e LaTeX. Il problema è che per fargli riconoscere la sintassi sembra necessario letteralmente elencare TUTTE le reserved word di un linguaggio, altrimenti non le evidenzia. Qualcosa come:

    `keywordclass.primitives.tex=\
    above abovedisplayshortskip abovedisplayskip abovewithdelims accent adjdemerits advance afterassignment aftergroup atop atopwithdelims badness baselineskip batchmode begingroup belowdisplayshortskip belowdisplayskip binoppenalty botmark box boxmaxdepth brokenpenalty catcode char chardef cleaders closein cl
    [ecc]`

    Questo approccio funziona con le primitive di TeX, ma già con le macro sembra non funzionare più.

    E’ possibile impostare Scite per fargli riconoscere come appartenente alla sintassi TeX o LaTeX qualunque ‘escape character’ seguito da una ‘control sequence’? Magari con una espressione regolare?

    Grazie e ciao.

    Sam Qasbah

Visualizzazione 1 filone di risposte
  • Autore
    Risposte
    • #59240
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Salve a tutti.

        Sto cercando di sistemare Scite per l’uso con TeX e LaTeX. Il problema è che per fargli riconoscere la sintassi sembra necessario letteralmente elencare TUTTE le reserved word di un linguaggio, altrimenti non le evidenzia. Qualcosa come:

        `keywordclass.primitives.tex=\
        above abovedisplayshortskip abovedisplayskip abovewithdelims accent adjdemerits advance afterassignment aftergroup atop atopwithdelims badness baselineskip batchmode begingroup belowdisplayshortskip belowdisplayskip binoppenalty botmark box boxmaxdepth brokenpenalty catcode char chardef cleaders closein cl
        [ecc]`

        Questo approccio funziona con le primitive di TeX, ma già con le macro sembra non funzionare più.

        E’ possibile impostare Scite per fargli riconoscere come appartenente alla sintassi TeX o LaTeX qualunque ‘escape character’ seguito da una ‘control sequence’? Magari con una espressione regolare?

        Grazie e ciao.

        Sam Qasbah

        Veramente la colorazione delle macro in Scite mi pare che avvenga in maniera piuttosto banale: Scite sa che il file di testo è un sorgente TeX per via dell’estensione del file .tex, allora se trova un backslash colora quel carattere e tutti i successivi caratteri fino ad incontrare uno spazio o un numero o una parentesi.

        Se scrivo \klmnsiljwn SciTE lo colorerà (di verde nel mio caso) come \klmnsiljwn.

        Penso che non è comunque semplice settare le altre proprietà dell’editor come il font ed il comando che deve essere lanciato se si preme F5 (esecuzione) o F7 (compilazione), ne è semplicissimo capire come personalizzare i comandi con Lua.

        Visto che SciTE è per molti uno strumento utilissimo (la selezione “rettangolare” del testo è comodissima e si ottiene tenendo premuto ALT+SHIFT ed i tasti freccia) una guida che spieghi un po’ le cose sarebbe gradita (lo so sono sempre a chiederti di scrivere una guida …).
        Ciao

      • #59241
        Up
        0
        Down
        ::

        … una guida che spieghi un po’ le cose sarebbe gradita (lo so sono sempre a chiederti di scrivere una guida …).
        Ciao

        La guida per il Gedit LaTeX Plugin avevo effettivamente iniziato a scriverla, ma in quel periodo le mie nozioni di LaTeX erano troppo confuse e misi da parte il progetto.

        Sono troppo distante dal poter scrivere una guida su Scite, editor che ho preso in mano praticamente in questi giorni. Quello che posso fare è pubblicare qui il mio file di configurazione per il TeX, con commenti, sperando che possa tornare utile a qualcuno.

          1) Settaggio dei font: si trova nel file SciTEGlobal.properties. Io mi sono limitato ad ingrandire un pò il font di default. Riporto la sezione preesistente (commentata) e qualla settata da me

          `#~ if PLAT_GTK
          #~ font.base=font:!Bitstream Vera Sans,size:9
          #~ font.small=font:!Bitstream Vera Sans,size:8
          #~ font.comment=font:!Bitstream Vera Serif,size:9
          #~ font.code.comment.box=$(font.comment)
          #~ font.code.comment.line=$(font.comment)
          #~ font.code.comment.doc=$(font.comment)
          #~ font.code.comment.nested=$(font.comment)
          #~ font.text=font:!Bitstream Charter,size:10
          #~ font.text.comment=font:!Serif,size:9
          #~ font.embedded.base=font:!Serif,size:9
          #~ font.embedded.comment=font:!Serif,size:9
          #~ font.monospace=font:!Bitstream Vera Sans Mono,size:9
          #~ font.vbs=font:!Bitstream Vera Sans Mono,size:9
          if PLAT_GTK
          font.base=font:!Bitstream Vera Sans,size:10
          font.small=font:!Bitstream Vera Sans,size:9
          font.comment=font:!Bitstream Vera Serif,size:10
          font.code.comment.box=$(font.comment)
          font.code.comment.line=$(font.comment)
          font.code.comment.doc=$(font.comment)
          font.code.comment.nested=$(font.comment)
          font.text=font:!Bitstream Charter,size:11
          font.text.comment=font:!Serif,size:10
          font.embedded.base=font:!Serif,size:10
          font.embedded.comment=font:!Serif,size:10
          font.monospace=font:!Bitstream Vera Sans Mono,size:10
          font.vbs=font:!Bitstream Vera Sans Mono,size:10`
          2) Comandi di compilazione ed evidenziazione della sintassi: li ho messi nel file tex.properties. Quello originale è stato scritto da Hans Hagen, io lo ho modificato radicalmente come segue (il simbolo # inizia la riga di commento)
          `# TeX: patterns
          # aggiunti i files *.cls e *.dtx
          file.patterns.tex=*.tex;*.sty;*.dtx
          file.patterns.latex=*.tex;*.sty;*.cls;*.aux;*.toc;*.idx;*.dtx

          # filter to be checked/tested:
          filter.context=TeX|$(file.patterns.tex)|
          filter.context=LaTeX|$(file.patterns.latex)|

          lexer.$(file.patterns.tex)=tex
          lexer.$(file.patterns.latex)=tex

          # TeX: commands
          # uso i motori XeTeX e XeLaTeX. I comandi da tastiera li ho settati più oltre
          command.compile.$(file.patterns.tex)=
          command.build.$(file.patterns.tex)=xetex $(FileNameExt)
          command.go.$(file.patterns.tex)=evince $(FileDir)/$(FileName).pdf

          command.compile.$(file.patterns.latex)=
          command.build.$(file.patterns.latex)=xelatex $(FileNameExt)
          command.go.$(file.patterns.latex)=evince $(FileDir)/$(FileName).pdf

          tabbar.visible=1
          tabbar.hide.one=0
          # eliminazione della barra con i numeri di linea.
          # Per visualizzarla (c'e' a chi piace) line.margin.visible=1
          line.margin.visible=0
          # grandezza della barra con i numeri di linea. In questo caso 4 cifre.
          # Ma è ininfluente dal momento che è stata resa invisibile.
          line.margin.width=4
          buffers=10

          # Comandi da tastiera per la compilazione.
          # Compaiono anche nel menù Tools (sotto il comando 'Go')
          command.name.1.*.tex=LaTeX Compile
          command.1.*.tex=xelatex $(FileNameExt)
          command.is.filter.1.*.tex=1
          command.save.before.1.*.tex=1
          command.subsystem.1.*.tex=1

          command.name.2.*.tex=TeX Compile
          command.2.*.tex=xetex $(FileNameExt)
          command.is.filter.2.*.tex=1
          command.save.before.2.*.tex=1
          command.subsystem.2.*.tex=1

          command.name.3.*.tex=View PDF
          command.3.*.tex=evince $(FileDir)/$(FileName).pdf
          command.is.filter.3.*.tex=1
          command.subsystem.3.*.tex=1

          command.name.4.*.tex=BibTeX
          command.4.*.tex=BibTeX $(FileDir)/$(FileName)
          command.is.filter.4.*.tex=1
          command.subsystem.4.*.tex=1

          # Evidenziazione della sintassi: ho scelto un tema con sfondo verde scuro
          # molto riposante per gli occhi, e con caratteri 'sofficemente luminosi'
          # Il significato di ogni settaggio dovrebbe essere auto-esplicativo.
          #
          # Default
          style.tex.0=fore:#FFA74F
          # Special
          style.tex.1=fore:#F5DEB3
          # Group
          style.tex.2=fore:#F5DEB3
          # Brace matching
          style.tex.34=fore:#F5DEB3,bold
          style.tex.34=back:#0EFF3B
          # Brace Non-Matching
          style.tex.35=fore:#F5DEB3,bold
          style.tex.35=back:#FF0000
          # Symbol
          style.tex.3=fore:#F5DEB3
          # Command
          style.tex.4=fore:#1ED6CF,bold
          # Text
          style.tex.5=fore:#F5DEB3
          #Background
          style.tex.32=back:#0F2F2F
          # Caret
          caret.width=2
          caret.period=300
          caret.fore=#DADADA
          # Selection
          selection.fore=#FFFFFF
          selection.back=#DD7EFF
          selection.alpha=50

          # TeX: comments
          comment.block.tex=%
          comment.block.at.line.start.tex=1

          # TeX: lexer.tex.interface.default
          #
          # 0 all \commands
          # 1 tex etex pdftex omega primitives
          # 2 context nl (when context.properties is loaded)
          # 3 context en (when context.properties is loaded)
          # 4 context de (when context.properties is loaded)
          # 5 context cz (when context.properties is loaded)
          # 6 context it (when context.properties is loaded)
          # 7 context ro (when context.properties is loaded)
          # 8 latex (no keywords yet; will move up)
          #
          # first lines of a tex file are interpreted as follows
          #
          # % interface=all|nl|en|de|cz|it|ro|latex
          #
          # Tradotto dall'inglese di Hans significa che se l'opzione qui sotto è 0
          # allora vengono considerate keyword tutte le sequenze di controllo
          # precedute da un \
          # Gli altri settaggi fanno invece riferimento a sotto-insiemi di comandi specifici per ogni
          # linguaggio o variante, esplicitamente elencati in apposite sottosezioni, che io ho
          # cancellato trovandole inutili ai miei scopi.
          lexer.tex.interface.default=0

          # TeX: lexer.tex.use.keywords
          #
          # 0 don't use keyword lists
          # 1 use keyword lists

          lexer.tex.use.keywords=1

          # TeX: lexer.tex.comment.process
          #
          # 0 don't interpret comment
          # 1 color comment like source code
          #
          # Questa opzione potrebbe essere utile per i files *.dtx (i packages di distribuzione).
          # Non ho ancora approfondito.
          lexer.tex.comment.process=0

          # TeX: lexer.tex.auto.if
          #
          # 0 don't handle \if
          # 1 treat \if
          as command

          lexer.tex.auto.if=1`

        Grazie, ciao.

        Sam Qasbah

    Visualizzazione 1 filone di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top