- Questo topic ha 15 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 11 anni, 12 mesi fa da
cfiandra.
-
CreatoreTopic
-
12 Settembre 2014 alle 13:46 #96503
-
CreatoreTopic
-
AutoreRisposte
-
-
12 Settembre 2014 alle 16:28 #96504
-
13 Settembre 2014 alle 4:51 #96505::
claudio” post=96221questo forse?
ciaoCi assomiglia (guarda tu stesso l’immagine), ma non è quello che cerco.
Altri suggerimenti?
-
13 Settembre 2014 alle 5:27 #96506
-
13 Settembre 2014 alle 6:39 #96507
-
13 Settembre 2014 alle 7:15 #96508::
Claudio ha mostrato un pacchetto interessante (Alain Matthes ne ha scritti molti interessanti). Credo che avendo pazienza di provare a giocarci un po’ si potrebbe ottenere esattamente il risultato identico, ma in questo periodo la pazienza è qualcosa di raro (vedasi il messaggio di ieri sulle tabelle).Entrambi gli esempi possono essere riprodotti esattamente con TikZ.
Per restare in tema “educativo”, siccome le matrici non sono riportate nell’Arte di disegnare con LaTeX, ecco come usarle. Il secondo esempio, invece, con quanto scritto sulla guida può essere riprodotto tranquillamente.
Il codice: `\documentclass[tikz,border=10pt]{standalone}
\usetikzlibrary{calc,matrix,positioning}\begin{document}
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=1ex,column sep=1em]{
+ & + & – & + & +\\
+ & – & – & – & +\\
+ & – & + & – & +\\
};
\draw (m.north west)–(m.north east);
\draw ($(m-2-1.west)!0.5!(m-3-1.west)$)–($(m-2-5.east)!0.5!(m-3-5.east)$);\foreach \x/\xtext [evaluate=\x as \next using int(\x+1)] in {1/A,2/B,3/C,4/D}{
\fill ([yshift=3.25pt]$(m-1-\x.north)!0.5!(m-1-\next.north)$)
circle[radius=1.5pt] coordinate (n-\x)
node[above=2pt,
font=\small,
text height=1ex,
text depth=0pt]{$\xtext$};\draw[dashed]([yshift=-2pt]n-\x)–($(m-3-\x.south)!0.5!(m-3-\next.south)$);
}\node
{Num};
\end{tikzpicture}
\end{document}
` Per ottenere l’esempio di partenza uguale, basta modificare 4 caratteri e aggiungere 2 linee di codice.Ciao
Claudio
-
13 Settembre 2014 alle 8:29 #96509::
cfiandra” post=96228Claudio ha mostrato un pacchetto interessante (Alain Matthes ne ha scritti molti interessanti). Credo che avendo pazienza di provare a giocarci un po’ si potrebbe ottenere esattamente il risultato identico, ma in questo periodo la pazienza è qualcosa di raro (vedasi il messaggio di ieri sulle tabelle).
Con LaTeX la fretta è una pessima consigliera!
Il pacchetti suggerito da Claudio è ottimo, effettivamente. Visto che devo scrivere una dispensa con molte disequazioni, la semplicità del codice è essenziale. Adesso mi studio il pacchetto, a dopo per le mie altre domande! 🙂
-
13 Settembre 2014 alle 8:32 #96510
-
13 Settembre 2014 alle 10:43 #96511
-
13 Settembre 2014 alle 12:31 #96512::
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
Attachments:
You must be logged in to view attached files. -
13 Settembre 2014 alle 12:50 #96513::
Innanzitutto grazie mille per i vostri suggerimenti, ragazzi!L’ultimo codice è quasi quello che cerco.
Cerco di essere più preciso. Vorrei produrre due risultati del genere:

Nel primo caso quello che manca, rispetto al codice di cfandra, sono le linee verticali e, soprattuto, la possibilità di inserire dei pallini vuoti o pieni.
Nel secondo caso ci vogliono invece linee continue, e sempre la possibilità di inserire pallini vuoti o pieni.
Cerco un codice semplice, “ad alto livello”.
Riesci ad aiutarmi?
Grazie anticipate!
-
13 Settembre 2014 alle 12:58 #96514::
`\documentclass{article}
\usepackage{tkz-tab}
\begin{document}
\begin{tikzpicture}
\tkzTabInit[lgt=2,espcl=1]
{$x$ /1,
$x^2-3x+2$ /1,
$\ln (x^2-1)$ /1,
$E(x)$ /1}%
{$-\infty$ ,$-\sqrt{2}$, $-1$ , $1$ ,$\sqrt{2}$ , $2$ , $+\infty$}%
\tkzTabLine{ , + , t , + , t , + , z , – , t , – , z , + , }
\tkzTabLine{ , + , z , – , t , – , t , – , z , + , t , + , }
\tkzTabLine{ , + , z , – , t , – , t , + ,z , – , z , + , }
\end{tikzpicture}
\end{document}`
Diciamo che il pacchetto consigliato da claudio in apertura fa quasi quello che voglio:
1. il codice è “ad alto livello” (e qui ci siamo!);
2. l’estetica è leggermente diversa da quella che cerco, che ho mostrato nell’appunto scritto a mano (e fin qui potrei anche soprassedere);
3. soprattutto, non ho trovato il modo di inserire dei pallini pieni, ma solo zeri, prodotti con “z” (e questa rende il codice inadatto alle mie esigenze).Il risultato prodotto:

-
13 Settembre 2014 alle 13:16 #96515::
lorenzo.pantieri” post=96233Nel primo caso quello che manca, rispetto al codice di cfandra, sono le linee verticali e, soprattuto, la possibilità di inserire dei pallini vuoti o pieni.
Mancano per un motivo, di nuovo “educativo”. Nel codice del mio messaggio precedente ci sono, è una linea di codice. Aggiungerla nel metodo generale è banale e permette a chi davvero usa il codice di apprendere parte del meccanismo.
La possibilità di aggiungere pallini pieni e vuoti si può fare. Ma, per usare il gergo di TeX.SX, queste sono “draw-it-for-me” questions. Senza esempio minimo tendono a essere chiuse e solo i buoni samaritani rispondono. Il mio bonus giornaliero è quasi esaurito 😉
Ciao
Claudio
-
13 Settembre 2014 alle 13:32 #96516::
cfiandra” post=96235
Nel primo caso quello che manca, rispetto al codice di cfandra, sono le linee verticali e, soprattuto, la possibilità di inserire dei pallini vuoti o pieni.
Mancano per un motivo, di nuovo “educativo”. Nel codice del mio messaggio precedente ci sono, è una linea di codice. Aggiungerla nel metodo generale è banale e permette a chi davvero usa il codice di apprendere parte del meccanismo.
Purtroppo il codice che hai scritto è arabo per me. Non saprei proprio come modificarlo per adattarlo alle mie esigenze!
In ogni caso, non sarebbe il primo ambiente che uso senza aver idea del codice che sta sotto al cofano. Durante la stesura dell’Arte, Enrico mi ha confezionato innumerevoli ambienti su misura, per me preziosissimi, che conservo con cura e uso tuttora, il cui codice è per me sostanzialmente un incantesimo.
Spero che avrai voglia di produrre per me uno di questi ambiente così! 😉
-
13 Settembre 2014 alle 15:38 #96517
-
13 Settembre 2014 alle 16:39 #96518::
lorenzo.pantieri” post=96236Purtroppo il codice che hai scritto è arabo per me. Non saprei proprio come modificarlo per adattarlo alle mie esigenze!
Appena riesco cercherò di inserire qualche commento di spiegazione.
lorenzo.pantieri” post=96236In ogni caso, non sarebbe il primo ambiente che uso senza aver idea del codice che sta sotto al cofano. Durante la stesura dell’Arte, Enrico mi ha confezionato innumerevoli ambienti su misura, per me preziosissimi, che conservo con cura e uso tuttora, il cui codice è per me sostanzialmente un incantesimo.
Non farebbe per me 😉 Preferisco sbattere la testa, ma capire cosa serve a che cosa. Il che a volte avviene con tempistiche non indifferenti 😀
Se non si capisce il codice, chi lo scrive può solo cercare di spiegare a cosa serve. Se chi lo usa cerca di capirlo oltre ad usarlo, potrà svilupparne nuove varianti, magari in base a nuove esigenze. È anche così che si porta avanti lo stato dell’Arte (non quell’Arte stavolta 😉 ).
lorenzo.pantieri” post=96236Spero che avrai voglia di produrre per me uno di questi ambiente così! 😉
Non è un problema di voglia, ma di tempo.
Ciao
Claudio
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.

