GNU Texmacs

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
GNU Texmacs
software
Logo
Schermata di esempio
GenereEditor di testo
Sviluppatoreprogetto GNU
Ultima versione1.99.12
Sistema operativoGNU
LinguaggioC++
Scheme
LicenzaGNU GPL v3+
(licenza libera)
Sito webwww.texmacs.org

GNU TeXmacs è un editor di testo WYSIWYG destinato particolarmente a scopi di tipo scientifico come la scrittura di libri, articoli e presentazioni. È ispirato a TeX e Emacs, ma sviluppato in maniera completamente indipendente da questi programmi. L'ideatore e sviluppatore principale è Joris van der Hoeven, coadiuvato da un gruppo di collaboratori[1]. Il programma genera documenti strutturati mediante un'interfaccia utente WYSIWYG. Gli utenti possono creare nuovi stili per i documenti; l'editor rende disponibili algoritmi di alta qualità per la tipografia permettendo di ottenere documenti dall'aspetto professionale.

Caratteristiche[modifica | modifica wikitesto]

TeXmacs permette la scrittura di formule matematiche in maniera efficiente e può interfacciarsi con diversi programmi con un'interattività simile ad una shell (Maxima, mupad, python, scypy, Mathematica, Bash). È distribuito con la licenza GNU GPL v3. TeXmacs supporta il linguaggio di estensione Guile permettendo così di estendere la funzionalità del programma.

Uno screenshot che mostra formule matematiche e caratteri corsivi.

Come in molti editor WYSIWYG (per esempio Microsoft Word), gli utenti manipolano sullo schermo un documento dalla disposizione grafica simile a quella che il documento avrà una volta stampato. L'obiettivo di TeXmacs è fornire un editor WYSIWYG che renda possibile scrivere in maniera strutturata. TeXmacs non è un front-end per LaTeX ma i documenti TeXmacs possono essere convertiti in formato LaTeX; è anche possibile importare documenti LaTeX (l'importazione è limitata ad un insieme di comandi). Inoltre ci sono filtri per l'importazione ed esportazione verso i formati HTML, Scheme, "Verbatim", and XML. È disponibile la conversione nel formato MathML, e nei formati PDF e PostScript per ottenere versioni stampabili del documento.

Attualmente ci sono eseguibili TeXmacs per la maggior parte delle architetture basate su Unix fra le quali Linux, FreeBSD, Cygwin e macOS. Al fianco della versione Cygwin è presente un port nativo per Microsoft Windows.

Fra gli stili di TeXmacs è incluso uno stile per presentazioni; il programma comprende inoltre un piccolo editor grafico.

Inserimento delle formule matematiche[modifica | modifica wikitesto]

L'input di formule matematiche in TeXmacs è reso snello dalla possibilità di inserire simboli usando combinazioni di tasti. Per esempio, il simbolo può essere inserito con la sequenza di tasti =>.

Simboli che non sono rappresentati con sequenze di tasti (per esempio ) sono suddivisi in gruppi; ogni gruppo è assegnato ad un tasto e gli elementi del gruppo sono successivamente raggiungibili tramite la pressione ripetuta del tasto tab.

Il formato di TeXmacs[modifica | modifica wikitesto]

Tutti i documenti di TeXmacs (e ogni loro parte) possono essere visti come alberi. Per esempio, l'albero

TeXmacs tree.png

rappresenta la formula

TeXmacs tree rendered.png

Gli alberi di TeXmacs sono rappresentati su disco come stringhe, e nell'editor di TeXmacs come la rappresentazione tipografica del documento combinata con la sua interattività [2]. Nella rappresentazione su schermo degli alberi di TeXmacs, il movimento del cursore coincide con il movimento all'interno dell'albero.

Composizione tipografica e controllo del documento[modifica | modifica wikitesto]

Il processo di composizione tipografica converte gli alberi di TeXmacs in "scatole"[3]. La trasformazione degli alberi in scatole avviene attraverso riduzione di primitive, o in altre parole a ogni macro viene sostituito il suo risultato. Le primitive per la composizione tipografica sono state progettate in modo tale da essere molto veloci e sono integrate nell'editor; il rendering di molte delle primitive puo' essere modificato attraverso le variabili d'ambiente integrate nell'editor stesso; i fogli di stile supportano un linguaggio con il quale gli utenti possono aggiungere nuovo primitive nella forma di macro.

Controllo dei documenti[modifica | modifica wikitesto]

I documenti possono essere controllati con un sistema di macro nativo o usando Guile-Scheme. È possibile personalizzare i menu dell'editor e le scorciatoie da tastiera e manipolare programmaticamente gli alberi di TeXmacs.

La macro di TeXmacs[modifica | modifica wikitesto]

Le macro di TeXmacs sono un modo di effettuare l'input strutturato (come in TeX/LaTeX) e sono rese tipograficamente in tempo reale, mantenendo allo stesso tempo campi di input editabili.

Controllo dei documenti tramite Scheme[modifica | modifica wikitesto]

Scheme è integrato in TeXmacs attraverso Guile. L'editor stesso può essere controllato in questo modo, personalizzando i menu e le scorciatoie da tastiera[3]. I comandi di Scheme possono essere invocati interattivamente dai documenti di TeXmacs, possono essere invocati dalla linea di comando e all'interno delle macro. Gli alberi di TeXmacs sono passati a Scheme in varie forme: come "alberi passivi" (una buona rappresentazione per la manipolazione del contenuto attraverso l'azione di routines di Scheme su liste), "alberi attivi" (che contengono l'informazione sulla posizione dell'albero all'interno dell'albero globale del documento e possono essere usati per la modifica programmatica dei documenti) e in una rappresentazione "ibrida".

Grafica[modifica | modifica wikitesto]

Gli oggetti grafici sono parte del formato di TeXmacs e possono essere manipolati programmaticamente attraverso Scheme; gli oggetti grafici generati tramite Scheme sono accessibili e modificabili anche dall'editor grafico. Un esempio di grafica generata in una sessione di Scheme in TeXmacs è mostrato qui di seguito, assieme con il codice usato per generarla.

Scheme]  (define pi (acos -1))
;; A function to define a point in the TeXmacs graphics format using two coordinates
Scheme]  (define (pt x y)
  (point ,(number->string x) ,(number->string y)))
;; Set points
Scheme]  (define xC (- (* 2 (cos (/ pi 3)))))
Scheme]  (define yC (* 2 (sin (/ pi 3))))
Scheme]  (define pA (pt -2 0))
Scheme]  (define pB (pt 2 0))
Scheme]  (define pC (pt xC yC))
Scheme]  (define tA (pt -2.3 -0.5))
Scheme]  (define tB (pt 2.1 -0.5))
Scheme]  (define tC (pt (- xC 0.2) (+ yC 0.2)))
;; Generate graphics
Scheme]  (stree->tree
 (with "gr-geometry" (tuple "geometry" "400px" "300px" "center")
    (graphics
      (with "color" "blue"  (text-at (TeXmacs) ,(pt -0.55 -0.75)))
      (with "color" "black" (arc ,pA ,pC ,pB))
      (with "color" "black" (line ,pA ,pB))
      (with "color" "red"   (cline ,pA ,pB ,pC))
      (with "color" "black" (text-at "A" ,tA))
      (with "color" "black" (text-at "B" ,tB))
      (with "color" "black" (text-at "C" ,tC)))))

Back-end supportati[modifica | modifica wikitesto]

TeXmacs supporta molti back-end:

Linguaggi di programmazione: CLISP, CMUCL, Python, R, Shell

Sistemi di calcolo simbolico: Axiom, Giac, Macaulay 2, Mathematica, Maxima, MuPAD, PARI/GP, Reduce, SageMath, Yacas

Sistemi di calcolo numerico: GNU Octave, Matlab, Scilab

Programmi per la rappresentazione grafica delle funzioni: Gnuplot, Graphviz, XYpic, Mathemagix

Altri: DraTeX, Eukleides, GTybalt, Lush, Juris-M or Zotero (programmi per la ricerca di referenze e la gestione delle bibliografie).

Note[modifica | modifica wikitesto]

  1. ^ Authors of GNU TeXmacs, su texmacs.org.
  2. ^ Joris van der Hoeven, The TeXmacs format, su texmacs.org. URL consultato il 10 agosto 2019.
  3. ^ a b M. Gubinelli, The Guile in TeXmacs, presentation at the Guile and Guix Days in Strasbourg, June 21–22 2019 (pdf) Retrieved 2019-09-22

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]