Avere qualcosa di semplice è sempre desiderabile. Mi sono appena ricordato che esiste un ambiente disequazione comodissimo; si usa più o meno così `
\begin{disequazione}[intestazioni={Numeratore,Denominatore,Frazione}]{-1,0,1,3}
+ & + & – & + & +\endl
+ & – & – & – & +\endl
+ & – & + & – & +\endl
\end{disequazione}
` e fornisce in output
[attachment=1096]ScreenShot2014-09-13at4.13.04PM.png[/attachment]
Più semplice di questo non credo esista qualcosa, tuttavia non è perfetto e richiede un minimo di cooperazione da parte dell’utente nell’inserire il numero corretto di intestazioni e valori. Funziona con numero di righe e colonne variabili e si può anche non disegnare il segmento in basso: `
\begin{disequazione}[intestazioni={Pippo, Pluto, Paperino, Minnie},nascondi linea in basso]{A,B,C,D,E,F}
+ & + & – & + & + & * & +\endl
+ & – & – & – & + & – & *\endl
+ & – & + & – & + & * & +\endl
+ & – & + & – & + & – & *\endl
\end{disequazione}
` il cui risultato è:
[attachment=1097]ScreenShot2014-09-13at4.24.52PM.png[/attachment]
Suppongo richieda una distribuzione recente. Il codice: `\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc,matrix,positioning}
\usepackage{environ}
% code by Andrew:
% http://tex.stackexchange.com/a/28452/13304
\makeatletter
\let\matamp=&
\catcode`\&=13
\makeatletter
\def&{\iftikz@is@matrix
\pgfmatrixnextcell
\else
\matamp
\fi}
\makeatother
\newcounter{lines}
\def\endl{\stepcounter{lines}\\}
\newcounter{dq}
\setcounter{dq}{0}
\newif\ifnascondilinea
\tikzset{nascondi linea in basso/.is if=nascondilinea,
nascondi linea in basso=false,
intestazioni/.code={
\foreach \x[count=\xi] in {#1}{\global\let\nintestazioni\xi}
\foreach \x[count=\xi] in {#1}{
\node
{\x};
}
},
}
\NewEnviron{disequazione}[2][]{%
\setcounter{lines}{1}%
\stepcounter{dq}%
\begin{tikzpicture}
\matrix (m-\thedq) [matrix of math nodes,row sep=1ex,column sep=1em]{\BODY};
\tikzset{#1}
\pgfmathtruncatemacro\endmtx{\thelines-1}
\pgfmathtruncatemacro\secendmtx{\endmtx-1}
\foreach \x[count=\xi] in {#2}{\global\let\secendcols\xi}
\pgfmathtruncatemacro\ncols{\secendcols+1}
\draw (m-\thedq.north west)–(m-\thedq.north east);
\ifnascondilinea%
\relax%
\else%
\draw ($(m-\thedq-\secendmtx-1.west)!0.5!(m-\thedq-\endmtx-1.west)$)–
($(m-\thedq-\secendmtx-\ncols.east)!0.5!(m-\thedq-\endmtx-\ncols.east)$);
\fi%
\foreach \x[count=\xi,evaluate=\xi as \next using int(\xi+1)]
in {#2}{
\fill ([yshift=3.25pt]$(m-\thedq-1-\xi.north)!0.5!(m-\thedq-1-\next.north)$)
circle[radius=1.5pt] coordinate (n-\xi)
node[above=2pt,
font=\small,
text height=1ex,
text depth=0pt]{$\x$};
}
\end{tikzpicture}
}
\begin{document}
\begin{disequazione}[intestazioni={Numeratore,Denominatore,Frazione}]{-1,0,1,3}
+ & + & – & + & +\endl
+ & – & – & – & +\endl
+ & – & + & – & +\endl
\end{disequazione}
\begin{disequazione}[intestazioni={Pippo, Pluto, Paperino, Minnie},nascondi linea in basso]{A,B,C,D,E,F}
+ & + & – & + & + & * & +\endl
+ & – & – & – & + & – & *\endl
+ & – & + & – & + & * & +\endl
+ & – & + & – & + & – & *\endl
\end{disequazione}
\end{document}` Questo esempio fa semplicemente vedere che con TikZ si possono creare ambienti che fanno tutto in automatico. Ovviamente non nego che creare questi ambienti non è banale. Il punto che voglio sottolineare è che si possono fare le stesse cose scrivendo il codice pezzo a pezzo: il risultato è identico e si ha la soddisfazione di avercela fatta.
Ciao
Claudio