Risposte nei forum create
-
AutoreRisposte
-
::
claudio” post=79411Confermo, funziona ma cambia la gestione delle dimensioni immagini quindi bisogna riscalare il tutto
ciao
claudioIn alcuni casi è vero, ma dipende ovviamente dal tipo di lavoro che si deve fare. Chiaramente se stai componendo il documento principale in Charter e fai le figure con la classe standalone senza preoccuparti di nulla, il risutato finale sarà un casotto. Idem per il corpo. Ma la classe può gestire queste situazioni, come quella della dimensione delle immagini.
Segnalo, inoltre, un piccolo problema legato al bounding box della singola figura composta con tikz, che standalone potrebbe “tagliare” eccessivamente se l’utente non è smaliziato abbastanza. Il link è questo.
L’uso di standalone non è certamente il solo che si può utilizzare per comporre separatamente le figure e migliorare la velocità di compilazione. Esiste anche la possibilità di esternalizzare le figure con la libreria [tt]external[/tt] (predefinita in TikZ e pgfplots) e passo ora ad indicare il metodo che ho seguito nella mia tesi. Sebbene abbia utilizzato la libreria external di default, ho incontrato alcune situazioni problematiche: plot con messa in evidenza di parti del grafico realizzate con la libreria [tt]spy[/tt], plot con un numero di punti estremamente elevato in cui solo LuaLaTeX mi ha salvato, plot con legenda personalizzata creata con il metodo [tt]\label{}[/tt] -> [tt]\ref[/tt]. In tutti questi casi la libreria external ha fallito.
Componendo la tesi con la classe toptesi, ho pensato di creare a parte dei documenti con la stessa classe contenenti le singole figure. Nessun problema, quindi, di margini, scalamento di figure o altro. Creato il pdf ho poi provveduto a farne il crop con il comodissimo pdfcrop (texdoc pdfcrop) e ad importare nel documento principale il risultato scontornato.
Ciao
Claudio
3 Novembre 2012 alle 7:04 in risposta a: Personalizzare ambiente listings (lunghezza riga e colori) #80230::l3on4rdo” post=79429Ciao a tutti.
Ho iniziato, con l’aiuto della breve guida “L’arte di scrivere codici con LaTeX”, ad inserire i codici nelle appendici della mia tesi.
Nel preambolo, ho dato le istruzioni:
`\usepackage{listings}
\addto\captionsitalian{\renewcommand{\lstlistingname}{Codice}}
\lstset{basicstyle=\small\ttfamily,
language=C++,
numbers=left,
numberstyle=\tiny,
tabsize=4,
frame=single}`e funziona quasi tutto a meraviglia, a parte due comportamenti che non riesco a gestire.
Il primo è dovuto al fatto che mi capita molto spesso di “sforare” i limiti del frame, sebbene io sia stato attento, nell’editor di testo in cui ho scritto i codici, a non andare oltre le 72 battute (limite spesso consigliato).
Purtroppo, anche se ho impostato i caratteri come piccoli, non riesco a capire se sia possibile aumentare il numero di battute che possano rientrare nel frame… oppure ridurre ulteriormente la dimensione dei caratteri.Un secondo problema è relativo alla colorazione del codice.
Mi piacerebbe vedere l’effetto grafico, per capire se mi “piace”.
A tale scopo, ho aggiunto ad lstset le chiavi:
`
keywordstyle=\color{black}\bfseries,
commentstyle=\color{darkgray},
stringstyle=\color{black}
`
… ma o non mi colora nulla… oppure mi dà addirittura errore se inserisco nel codice C++ le direttive del precompilatore.Vi ringrazio in anticipo
Ciao 🙂Problema numero 1: prova la chiave [tt]breaklines=true[/tt] (la trovi sul manuale – texdoc listings pagina 33). Per ridurre le dimensioni:
`
\normalfont
\small
\footnotesize
\scriptsize
\tiny
` in ordine di corpo decrescente. Vanno inserite nelle dichiarazioni di stile, vedi esempio successivo.Problema numero 2; prova qualcosa tipo:
`
\lstset{language=C++,
basicstyle=\small\ttfamily,
keywordstyle=\small\color{blue}\ttfamily,
stringstyle=\small\color{red}\ttfamily,
commentstyle=\small\color{green}\ttfamily,
morecomment=[l][\small\color{magenta}]{\#}
}`
con un codice di esempio:
`
\begin{lstlisting}
#include
#include
// A comment
int main(void)
{
printf(“Hello World\n”);
return 0;
}
\end{lstlisting}
` Il risultato dovrebbe essere così.Ciao
Claudio
::claudio” post=79377vorrei diminuire i tempi di compilazione
ho molte immagini con tikz e il pc dorme credo
che ne pensate dell’uso del pacchetto standaline?Non vorrei modificare il codice e poi scoprire che il gioco non vale la candela.
la soluzione interna externalize proposta da tikz non mi ha mai funzionato
o meglio funziona con certe figure e con altre nouna soluzione tipo Questa
che ne pensate?
claudioDirei che è valida. 🙂
Un riferimento migliore: link.
Ciao
Claudio
::kboy” post=79350Salve a tutti! Premetto che sono nuovo nel forum quindi perdonate gli errori che sicuramente farò.
Andiamo al dunque: ho inserito in un documento due immagini fatte con geogebra e convertite in formato .png; con la prima non ho avuto problemi ma dopo aver inserito la seconda, qualunque cosa scriva dopo di essa, nel file in pdf viene visualizzato prima… Cosa devo fare? Grazie in anticipo dell’aiuto!Ciao e benvenuto 🙂
Il comportamento che descrivi è assolutamente normale in quanto probabilmente hai inserito le figure come oggetti flottanti. Leggi una guida introduttiva come L’Arte, che puoi trovare nella sezione Documentazione del sito: anche se a te sembra di perdere tempo non è assolutamente così e ti abituerai più in fretta al fatto che [tt]LaTeX[/tt] non è Word.
Ciao
Claudio
::Marco87″ post=79354Ciao Enrico,
chiedo scusa. Ecco un codice che riproduce il comportamento che ho descritto:
`\documentclass[a4paper,11pt,extrafontsizes,twoside,openright]{memoir}
\usepackage{etex}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek,italian]{babel}
\usepackage{microtype}
\pagestyle{empty}
\usepackage{ifthen}\usepackage{xcolor}
\usepackage{tikz}
% Librerie
\usetikzlibrary{automata}
\usetikzlibrary{arrows}
\usetikzlibrary{backgrounds}
\usetikzlibrary{calc}
\usetikzlibrary{hobby}
\usetikzlibrary{intersections}
\usetikzlibrary{patterns}
\usetikzlibrary{positioning}
\usetikzlibrary{shadows}
\usetikzlibrary{shapes}
\usetikzlibrary{through}
% Pacchetti
\usepackage{tkz-euclide}
\usetkzobj{all}% TikZ
%Distanza fra due punti (la lunghezza viene espressa in punti, quindi usare \calcLV pt)
\makeatletter
\def\calcLV(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@xa=\pgf@x%
\pgf@ya=\pgf@y%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@xa}}%
\FPeval\@temp@b{\pgfmath@tonumber{\pgf@ya}}%
\FPeval\@temp@sum{(\@temp@a*\@temp@a+\@temp@b*\@temp@b)}%
\FProot{\FPMathLen}{\@temp@sum}{2}%
\FPround\FPMathLen\FPMathLen5\relax
\global\expandafter\edef\csname #3\endcsname{\FPMathLen}
}
\makeatother% Distanza fra due punti lungo X (la lunghezza viene espressa in punti, quindi usare \calcLVX pt)
\makeatletter
\def\calcLVX(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@xa=\pgf@x%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@xa}}%
\FPround\@temp@a\@temp@a5\relax
\global\expandafter\edef\csname #3\endcsname{\@temp@a}
}
\makeatother% Distanza fra due punti lungo Y (la lunghezza viene espressa in punti, quindi usare \calcLVY pt)
\makeatletter
\def\calcLVY(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{center}}%
{\pgfpointanchor{#2}{center}}%
\pgf@ya=\pgf@y%
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@ya}}%
\FPround\@temp@a\@temp@a5\relax
\global\expandafter\edef\csname #3\endcsname{\@temp@a}
}
\makeatother% MIO NUOVO COMMANDO
\newcommand{\my}[4]{%
\coordinate (medio) at ($(#1)!.5!(#2)$);
\calcLV(#1,medio){dist}
\coordinate (o) at (0,0);
\coordinate (temp) at (#3,0);
\calcLV(o,temp){rag}
\pgfmathsetmacro{\differenza}{\dist-\rag}
%
\ifdim \differenza pt = 0 pt
\def\abc{2}
\else
\def\abc{3}
\fi
}\begin{document}
\begin{tikzpicture}[scale=1]
\draw [help lines] (0,0) grid (3,3);
\coordinate [label={270:\tiny $O$}] (or) at (0,0);
\coordinate [label={270:\tiny $A$}] (a) at (50:2);
\coordinate [label={270:\tiny $B$}] (b) at (50+180:2);\my{a}{b}{2}{}
\fill [black] (a) circle (1.5pt);
\fill [black] (b) circle (1.5pt);
\fill [cyan] (\abc,\abc) circle (2pt);\end{tikzpicture}
\end{document}`
Nel comando [tt]\my[/tt] quello che faccio (cerco di fare) per ora è eseguire questo:- Dati due punti, ne creo uno posto esattamente al centro;
- Misuro la distanza che c’è tra questo e uno dei due punti forniti in ingresso;
- Converto il raggio inserito in ingresso in pt (sull’efficienza del mio codice credo che ci sia molto da dire);
- Calcolo la differenza che c’è tra queste due distanze;
- A seconda del valore di questa differenza eseguo un codice o un altro.
Nell’esempio che ho riportato [tt]\differenza[/tt] dovrebbe essere nulla, di conseguenza [tt]\abc[/tt] dovrebbe essere pari a [tt]2,[/tt] e quindi il punto azzurro dovrebbe avere coordinate [tt](2,2),[/tt] ma non è così. Cosa sbaglio?
Grazie e buona giornata,
Marco.Alcuni consigli:
1) puoi fare un po’ di debug creando un nodo e stampando le misure che ti servono. Esempio:
`\newcommand{\my}[4]{%
\coordinate (medio) at ($(#1)!.5!(#2)$);
\calcLV(#1,medio){dist}
\coordinate (o) at (0,0);
\coordinate (temp) at (#3,0);
\calcLV(o,temp){rag}\node at (o) {\rag};
\pgfmathsetmacro{\differenza}{\dist-\rag}
\node at ($(medio)!0..5!(o)$) {\differenza};
%
\ifdim \differenza pt = 0 pt
\def\abc{2}
\else
\def\abc{3}
\fi
}`
È una cosa abbastanza utile che permette di capire se ci sono errori grossi.2) Puoi utilizzare funzioni interne di pgf; cerca sul manuale Comparison and logical functions. O anche il pacchetto etoolbox.
3) A volte è necessario andare a spulciare proprio il codice di pgf per capire alcune cose (parlo in primis per le librerie).. in genere poi uno si deprime perché non è proprio banale, però aiuta. Ad esempio tu stai utilizzando il pacchetto pgfmath. Vai sul terminale e digita (beh.. se utilizzi linux)
`
gedit $(kpsewhich pgfmath.sty)
`
Ti aprirà il file con il codice del pacchetto. Ora preparati a qualche decina di scatole cinesi.. ogni volta che trovi qualche [tt]\input[/tt] in teoria è qualcosa di interessante. Ad esempio, pgfmath.sty è così composto:`
\input{pgfmath.code.tex}\endinput
` Apri quindi [tt]pgfmath.code.tex[/tt] con:
`
gedit $(kpsewhich pgfmath.code.tex)
` Perciò sono di potenziale interesse [tt]pgfmathcalc.code.tex[/tt] e [tt]pgfmathfloat.code.tex[/tt]. Continua ad aprire i vari files come prima; ad esempio, a te serve [tt]pgfmathcalc.code.tex[/tt]:
`
gedit $(kpsewhich pgfmathcalc.code.tex)
` E così via.Ciao
Claudio
::Marco87″ post=79298Ciao Enrico,
Non vedo perché usare fp quando PGF/TikZ ha già le sue librerie per il “floating point”
In realtà quel codice l’ho preso in rete e, per la precisione, qui. In effetti, cercando di capire le righe di quel codice ho cercato sul manuale di [tt]TikZ[/tt] i vari comandi che vi vengono usati, ma alcuni non li ho trovati. Se capissi quelli, forse potrei scriverne i corrispondenti usando le librerie per il “floating point” di [tt]PGF/TikZ.[/tt]
Ciao,
Marco.Oltre al codice di Alain Matthes che tu hai utilizzato, su TeX.SX ci sono altre risposte che ti potrebbero essere utili: Coordinates A, B: compute |B-A| and angle between +x and (B-A) e TikZ: How to determine the vector between two co-ordinates. Dico subito però che nessuna aiuta per quanto riguarda il segno.
In breve, nel codice di Alain si fa uso del pacchetto fp, ma le operazioni base dovrebbero essere (presunte dato che non ho mai usato fp):
`\pgf@xa=\pgf@x% estrazione coordinata x
\pgf@ya=\pgf@y% estrazione coordinata y
\FPeval\@temp@a{\pgfmath@tonumber{\pgf@xa}}% trasformazione in numero e valutazione in floating point
\FPeval\@temp@b{\pgfmath@tonumber{\pgf@ya}}% idem
\FPeval\@temp@sum{(\@temp@a*\@temp@a+\@temp@b*\@temp@b)}% somma dei quadrati
\FProot{\FPMathLen}{\@temp@sum}{2}% radice della somma dei quadrati
\FPround\FPMathLen\FPMathLen5\relax % arrotondamento di qualche tipo
\global\expandafter\edef\csname #3\endcsname{\FPMathLen} % stampa in una macro di uscita
`A me di quel codice in realtà è piaciuto il fatto che fornisce una macro in uscita. Per un pacchetto che ho pubblicato qualche minuto fa mi serviva proprio il calcolo della distanza fra due rettangoli, di cui conoscevo le ancore. Ecco come ho risolto:
`\def\CalcHeight(#1,#2)#3{%
\pgfpointdiff{\pgfpointanchor{#1}{south west}}{\pgfpointanchor{#2}{north west}}
\pgfmathsetmacro{\myheight}{veclen(\pgf@x,\pgf@y)}
\global\expandafter\edef\csname #3\endcsname{\myheight}
}
…\coordinate (A) at (module1);
\coordinate (B) at (module\maxsmitem);
\CalcHeight(A,B){heightmodules}
\pgfmathadd{\heightmodules}{\priorityarrowheightadvance}
\pgfmathsetmacro{\distancemodules}{\pgfmathresult}
`Ciao
Claudio
::Marco87″ post=79235Ciao Claudio,
non so come ringraziarti! 🙂 Ho modificato il tuo codice in questo modo:
`\newdimen\beamer@miniframeradius
\beamer@miniframeradius=0.05cm
\define@key{beamer@margin}{mini frame radius}{\beamer@miniframeradius=#1\relax}
\setbeamertemplate{mini frame}
{%
\begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
\pgfpathmoveto{\pgfpoint{0pt}{0pt}}
\pgfpathlineto{\pgfpoint{2pt}{0pt}}
\pgfpathlineto{\pgfpoint{2pt}{2pt}}
\pgfpathlineto{\pgfpoint{0pt}{2pt}}
\pgfpathlineto{\pgfpoint{0pt}{0pt}}
\pgfpathlineto{\pgfpoint{2pt}{0pt}}
\pgfusepath{fill,stroke}
\end{pgfpicture}%
}
\setbeamertemplate{mini frame in current subsection}
{%
\begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
\pgfpathmoveto{\pgfpoint{0pt}{0pt}}
\pgfpathlineto{\pgfpoint{2pt}{0pt}}
\pgfpathlineto{\pgfpoint{2pt}{2pt}}
\pgfpathlineto{\pgfpoint{0pt}{2pt}}
\pgfpathlineto{\pgfpoint{0pt}{0pt}}
\pgfpathlineto{\pgfpoint{2pt}{0pt}}
\pgfusepath{stroke}
\end{pgfpicture}%
}`
Il risultato è quello che desideravo!EDIT: quando avrai creato il quadrato molto probabilmente ti renderai conto che il risultato non è entusiasmante. Ma non ho idea di come fare a distanziare i quadratini.
Non ho idea del perché, m nel risultato che ottengo io, i quadratini sono distanziati tra loro tanto quanto i pallini che c’erano prima (o qualcosina, ma pochissimo, di più).
Ciao e grazie mille ancora,
Marco.Ah benissimo allora. 🙂
Io mi ricordo vagamente che quando avevo provato mi era venuta una schifezza: tutti i quadratini attaccati, non si capiva nulla. Avevo provato a ruotarli ottenendo dei piccoli rombi, ma anche quella soluzione non mi soddisfaceva.
Ciao
Claudio
::Marco87″ post=79232Ciao a tutti,
sto preparando una presentazione con l’uso della classe beamer. Il codice che uso è questo:
`\documentclass[10pt]{beamer}%———————————
\usepackage{etex}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[greek,italian]{babel}
\usepackage{microtype}\usepackage{xcolor}
\usepackage{relsize}%———————————
% Autore
\author{Nome Cognome}% Data
\date[24/10/12]{24 ottobre 2012}% Titolo e logo nel titolo
\title[Titolo corto]{Titolo lungo \\ molto lungo}
\titlegraphic{\includegraphics[width=1cm]{logo}}% Corso di studi e università
\institute[UniBS]{\scshape Corso di Laurea Specialistica in …}
\logo{\includegraphics[width=.7cm]{logo}}%———————————
% Beamer
% Tema
\usetheme{Luebeck}
% Outer theme (elementi di contorno della diapositiva)
\useoutertheme{smoothbars}
% Font
\usefonttheme[onlylarge]{structurebold}
\setbeamerfont*{frametitle}{size=\normalsize,series=\bfseries}
% Navigazione
\setbeamertemplate{navigation symbols}{}
% Trasparenza del testo delle diapositive successive
\setbeamercovered{dynamic}\begin{document}
\thispagestyle{empty}
\begin{frame}
\maketitle
\vspace{-.5cm}
\begin{center}
\relsize{-3} Università degli Studi di Città
\end{center}
\end{frame}\section{Sezione 1}
\subsection{Sottosezione 1.1}
\begin{frame}
\frametitle{Titolo della slide}
\framesubtitle{Sottotitolo}
\begin{itemize}
\item<1-> Primo;
\item<2-> Secondo;
\item<3-> Terzo;
\end{itemize}
\end{frame}\section{Sezione 2}
\subsection{Sotto-sezione 2.1}
\begin{frame}
Testo di grande fantasia.
\end{frame}\begin{frame}
Ecco i blocchi:
\begin{block}{Titolo del blocco}
Contenuto del blocco.
\end{block}
\pause
\begin{exampleblock}{Titolo del blocco d'esempio}
Contenuto del blocco.
\end{exampleblock}
\pause
\begin{alertblock}{Titolo del blocco di avviso}
Contenuto del blocco.
\end{alertblock}
\end{frame}\begin{frame}
Un semplice ciao.
\end{frame}\end{document}`
Come si può notare, nella barra di navigazione in alto, sotto le scritte “Sezione 1” e “Sezione 2” compaiono dei pallini, che indicano lo stato di avanzamento della presentazione. Mi piacerebbe, però, adeguarli allo stile delle diapositive. È possibile sostituire questi pallini con dei quadratini?Grazie e buona giornata,
Marco.Ottima domanda. 🙂
I template che devi modificare sono [tt]mini frame[/tt] e [tt]mini frame in current subsection[/tt], ma ti servono comandi [tt]pgf[/tt]. Per un tema li avevo modificati in questo modo per renderli più piccoli:
`
\newdimen\beamer@miniframeradius
\beamer@miniframeradius=0.05cm
\define@key{beamer@margin}{mini frame radius}{\beamer@miniframeradius=#1\relax}
\setbeamertemplate{mini frame}
{%
\begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
\pgfpathcircle{\pgfpoint{\beamer@miniframeradius}{\beamer@miniframeradius}}{\beamer@miniframeradius}
\pgfusepath{fill,stroke}
\end{pgfpicture}%
}
\setbeamertemplate{mini frame in current subsection}
{%
\begin{pgfpicture}{0pt}{0pt}{2\beamer@miniframeradius}{2\beamer@miniframeradius}
\pgfpathcircle{\pgfpoint{\beamer@miniframeradius}{\beamer@miniframeradius}}{\beamer@miniframeradius}
\pgfusepath{stroke}
\end{pgfpicture}%
}
`
A te chiaramente serve creare un quadrato al posto di [tt]pgfpathcircle[/tt], ma mantieni il resto della sintassi ([tt]\pgfusepath{fill,stroke}[/tt] e [tt]\pgfusepath{stroke}[/tt]) per avere ancora la differenza fra sezione corrente e non.EDIT: quando avrai creato il quadrato molto probabilmente ti renderai conto che il risultato non è entusiasmante. Ma non ho idea di come fare a distanziare i quadratini.
Ciao
Claudio
::ernded” post=79227Qual è il parametro che regola la dimensione del filetto che crea \fbox?
In altre parole se mi serve contornare qualcosa con una riga più spessa, su che parametro devo agire?
grazie
ciao
ErnestoPuoi partire da qualcosa tipo questa soluzione.
Ciao
Claudio
20 Ottobre 2012 alle 9:23 in risposta a: Problema installazione pacchetto kile in ambiente linux #79961::davidepa” post=79173Ciao a tutti!
Spero di non sbagliare sezione!
Sto cercando di utilizzare Kile su linux, e fin qui tuto bene. Non ho però capito come fare ad installare i pacchetti. Avrei bisogno del pacchetto Textpos, ma non sono riuscito a capire come installarlo.
Qualcuno può essermi d’aiuto!
Vi ringrazio anticipatamente.Davide
Dipende da quanto è aggiornata la tua distribuzione. Se hai installato TeXLive con il packet manager allora la tua distribuzione è incompleta e del 2009. Per avere una versione aggiornata e completa (per cui [tt]textpos[/tt] sarebbe già incluso) devi seguire le istruzioni della guda texlive-ubuntu.pdf (cambiando l’anno in 2012).
Ciao
Claudio
::
Riprendo la discussione dopo qualche esperimento sul pacchetto. 🙂In realtà l’autore ha predisposto che il pacchetto sia fruibile come libreria (in realtà creare delle librerie per TikZ non è poi così complicato), ma credo che sostituire in toto il precedente algoritmo per avere immediatamente [tt]\draw[/tt] ed [tt]\addplot[/tt] hobby-aware (anche con il benestare di Tantau e Feuersänger) non sarebbe così facile.
La “nuova” versione di hobby, presente su launchpad, tra le altre cose, permette però di sfruttare l’algoritmo per il classico plot di TikZ su coordinate. Ad esempio, si può scrivere:
`
\tikz[hobby] \draw (1,0) — plot coordinates {(0,0) (1,1) (2,0) (3,1) (2,1) (10:2cm)};
`
Questa nuova versione potrebbe essere disponibile a breve anche su CTAN.Ciao
Claudio
::Dr Spencer Reid” post=79026salve a tutti, spero che questa discussione non sia inutile…
volevo radunare, se possibile, i vari editor esistenti per mac, oltre i comuni texmaker, texstudio, texwork e texshop.
editor sia free che a pagamento!questa mai iniziativa nasce dal fatto che alcuni editor sono compatibili fino alla versione precedente a mountain lion. lungi da me criticare le scelte apple… ma sarebbe bello radunare i vari editor con la relativa compatibilià su mac.
in futuro sarebbe fattibilie una sorta di elenco – guida per fare in modo che tutti conoscano quanti più software possibili? magari creare un lista anche su windows e ubuntu?
Comincia da http://en.wikipedia.org/wiki/Comparison_of_TeX_editors
Ciao
Claudio
-
AutoreRisposte