GuIT

  • Increase font size
  • Default font size
  • Decrease font size
E-mail Stampa PDF

Just for (new) fun...

In questa carrellata troverai frammenti di codice assieme al corrispondente risultato scaricabile in formato PDF facendo click sull'immagine a fianco al codice. La collezione tenterà di darti una visione d'insieme su come funzionano i sistemi basati su TeX...
...ma non tentare di interpretare nel dettaglio il codice. Potresti incorrere in un'idea non corretta sulla sintassi. Durante la navigazione tra gli esempi, è molto meglio lavorare di intuizione e di curiosità e lasciare ad una buona guida --- tra quelle consigliate nella sezione Documentazione del sito per esempio --- il compito di presentarti il sistema nel modo corretto.

Strutture di base

L'elenco puntato

si costruisce in LaTeX con l'ambiente itemize in cui, comandi \item determinano i singoli paragrafi dell'elenco; è possibile anche annidare elenchi puntati annidando ambienti itemize. Alcuni pacchetti LaTeX come paralist, consentono di personalizzare queste importanti strutture

% nel preambolo
\usepackage{guit}

% nel documento
\begin{itemize}
\item studiare la Guida \GuIT;
\item iscriversi al gruppo perché;
   \begin{itemize}
      \item posso ricambiare l'aiuto ricevuto;
      \item aiuterò la diffusione di \TeX{} \& C.
   \end{itemize}

\item inoltre pacchetti \LaTeX{} come
          \textsf{paralist};
\item consentono di personalizzare gli elenchi.
\end{itemize}
Risultato del codice: elenco puntato

Tabelle

Una piccola grande tabella numerica (in LaTeX)

Formattazione automatica dei valori numerici ed uso dei filetti orizzontali corretti tipograficamente, ecco i punti di forza di questo esempio di tabella:

% nel preambolo
\usepackage[output-decimal-marker={,}]{siunitx}
\usepackage{booktabs}

% nel documento
 \begin{tabular}{SSS[table-format=3]} \toprule {Profondità base} & {Spessore} & $V_\mathrm{s}$\\ \si{m} & \si{m} & \si{m/s}\\ \midrule 0.40 & 0.40 & 330\\ 2.00 & 1.60 & 185\\ 3.00 & 1.00 & 280\\ 36.00 & 33.00 & 480\\ $\infty$ & $\infty$ & 920\\ \bottomrule \end{tabular} 
Tabella numerica

Matematica

Qualche formula in display (in LaTeX)

Le sofisticate capacità di composizione tipografica della matematica sono evidenziate in questo piccolo campionario di espressioni:

% nel preambolo
\usepackage{amsmath}

% nel documento
\[f(x) = \frac{1}{\sigma\sqrt{2\pi}}
   \quad
   e^{-\cfrac{(x-\mu)^2}{2\sigma^2}}
\]

\[
 P(X)=\frac{n!}{X!(n-X)!}\pi^X(1-\pi)^{n-X},
      \qquad
      X=0,1,2,\dots,n
\]

\[
\Bigl\{
   \Phi,    \quad
   \Psi,    \quad
   \Omega,  \quad
   \Xi,     \quad
   \models, \quad
   \asymp,  \quad
   \approx, \quad
   \neq,    \quad
   \geq,    \quad
   \bowtie, \quad
   \gg
\Bigr\}
\]

\[
\rho(\nu, T) = \frac{8\pi h\nu^3}{c^3}\,
               \frac{1}{e^{h\nu/kT}-1}
\] 
Espressioni matematiche

 

Grafica

Figura con TikZ (di @Marchetto)

Un primo esempio con il pacchetto TikZ che consente di produrre ottimi risultati con un codice elegante e sofisticato.

% contributo di Marchetto
\documentclass[tikz]{standalone}
\begin{document}
  \begin{tikzpicture}
     \draw [ultra thick] (-8,0) -- (8,0);
     \draw [ultra thick] (0,0) circle (8);
     \foreach \i in {0,1,2,3} 
         \draw [ultra thick, red] (90*\i:8) arc (270+90*\i:180+90*\i:8);

     \foreach \i in {0,1,...,7}
         \draw [very thick, green] (45*\i:8) arc (270+45*\i:135+45*\i:3.3);
            
     \foreach \i in {0,1,...,15}
         \draw [thick, blue] (22.5*\i:8) arc (270+22.5*\i:112.5+22.5*\i:1.6);

     \foreach \i in {0,1,...,31}
         \draw [thin, red] (11.25*\i:8) arc (270+11.25*\i:101.25+11.25*\i:0.8);

     \foreach \i in {0,1,...,63}
         \draw [ultra thin, blue] (5.625*\i:8) arc (270+5.625*\i:95.625+5.625*\i:0.4);
  \end{tikzpicture}
\end{document} 

Figura con TikZ (di @Elrond)

Ancora TikZ all'opera con un esempio tratto da un lavoro illustrativo.

% contributo di Elrond
\documentclass[tikz]{standalone}
\usepackage[light]{kpfonts}
\usetikzlibrary{calc,intersections}
\begin{document}
\begin{tikzpicture}
  \coordinate (O1) at (0,0); % centro stella
  \coordinate (O2) at (2.5,0); % centro pianeta
  \draw[name path=S,thick] (O1) circle (2); % disco stella (r=2)
  \draw[name path=P,thick] (O2) circle (1); % disco pianeta (r=1)

  % individuo punti di intersezione fra dischi di pianeta e stella
  \path[name intersections={of=S and P,by={A,B}}];
  \draw[dashed] (O1) -- (A) -- (O2) -- node[below,sloped] {$r_2$} (B) --
                node[above,sloped] {$r_1$}  (O1);
  \draw (A) -- (B);
  \draw[->] ($(B) - (0,0.5)$) node[left,fill=white,inner sep=0.4] {$S_1$} to
            [out=45,in=-80] (1.9,-0.1);
  \draw[->] ($(A) + (0,0.5)$) node[right] {$S_2$}
            to[out=180] (1.7,0.1);
  \draw[red,thick] let \n1 = {acos((1-4+2.5*2.5)/(2*1*2.5))} in
            ($(O2) - cos(\n1)*(0.2,0) + sin(\n1)*(0,0.2)$) arc
            (180-\n1:180+\n1:0.2);
  \draw[->] ($(O2) + (-0.2,0.5)$) node[red,right] {$\theta_2$}
            to[out=180,in=180] (2.3,0);
  \draw[blue,thick] let \n2 = {acos((4-1+2.5*2.5)/(2*2*2.5))} in
            ($(O1) + cos(\n2)*(0.3,0) - sin(\n2)*(0,0.3)$) arc (-\n2:\n2:0.3);
  \draw[->] ($(O1) + (0.5,-0.5)$) node[blue,below] {$\theta_1$} to[in=0] (0.3,0);
\end{tikzpicture}
\end{document} 

Un albero frattale (in METAPOST con ConTeXt mkiv)

Disegnare programmando in METAPOST è immediato utilizzando il nuovo formato ConTeXt mkiv. Questo esempio di albero frattale è composto da 1023 rami. Potete divertirvi a cambiare i parametri geometrici per ottenere il vostro albero personale.

\startMPpage[offset=5pt]
% instanziamo le costanti
numeric f, alpha, lw;

% fattore di riduzione
f := 0.75;

% angolo tra i rami
alpha := 40;

% spessore iniziale
lw := 12;

% funzione ricorsiva
vardef dotree(expr A, B, s, level)=
   save C, sx, dx, lw;
   pair C, sx, dx;
   numeric lw;
   if level > 0:
      draw A -- B
         withpen pencircle scaled s
         withcolor (1/level)*green;
      C := f*(B-A) + B;
      sx := C rotatedabout(B,-alpha/2);
      dx := C rotatedabout(B, alpha/2);
      lw := s*f;
      dotree(B,sx, lw, level-1);
      dotree(B,dx, lw, level-1);
   fi;
enddef;

dotree((5,5), (12,80), lw, 10);
\stopMPpage

 

Programmazione

Ripetere n volte lo stesso testo (in TeX, in LaTeX, in LuaTeX ed in LaTeX3)

La programmazione in TeX è assai peculiare. In questo linguaggio sono stati costruiti LaTeX e ConTeXt, ma utilizzarlo richiede grande competenza. In questo esempio un testo viene ripetuto n volte utilizzando un contatore ed un ciclo. Il codice TeX è completo ed è sufficiente compilarlo con pdftex.

Per confronto, accanto alla versione TeX del codice, compare quella in LaTeX e quella in LuaTeX, che potrebbe far girare anche la versione TeX, e quella in LaTeX3 che non è solamente la prossima versione di LaTeX ma è una nuova piattaforma di sviluppo completamente riprogettata.

%%% versione TeX
\newcount\i

\def\ripeti#1#2{%
   \i=0
   \loop\ifnum\i<#2
      \advance\i by 1
      \the\i\ --- #1\endgraf
   \repeat
}
\ripeti{Viva \TeX}{100}
\bye


%%% versione LaTeX % nel preambolo \newcounter{icount} \makeatletter \newcommand\ripeti[2]{
% \setcounter{icount}{0}% \@whilenum{\value{icount}<#2}\do{% \stepcounter{icount}
\theicount\  --- #1\par}} \makeatother

% nel corpo del documento \ripeti{Viva \LaTeX}{100}

%%% versione LuaTeX
\def\ripeti#1#2{
% \def\tmp{#1} \directlua{ local s = " --- \string\\tmp\string\\par" for i=1,#2 do tex.sprint(i..s) end }} \ripeti{Viva Lua\TeX}{100} \bye
%%% versione LaTeX3
\ExplSyntaxOn
\NewDocumentCommand{\vivaLatexTre}{}
{
\vl_repeat:
}


\cs_new_protected:Nn \vl_repeat:
{
\int_step_inline:nnnn { 1 }{ 1 }{ 100 }
{ ##1~--~Viva~\LaTeX3\par }
}

\ExplSyntaxOff

% all'interno del documento
\vivaLatexTre
 

 

Click to download the pdf file

 

Ciao!

%