- Questo topic ha 15 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 15 anni, 8 mesi fa da
emanuelesacco.
-
CreatoreTopic
-
2 Agosto 2010 alle 15:33 #48179::
Salve a tutti, per emulare l’ambiente proof di LaTeX, ho pensato di fare cos\`i:`
\definedescription
[proof]
[text=Dimostrazione.]\setupdescriptions[proof]
[width=broad,distance=0.5em,
location=serried,
headstyle=it,
headcolor=black,
style=normal,
indentnext=yes,
closesymbol=$\square$]
`Se la dimostrazione finisce per\`o con una formula in display il simbolo di chiusura (\square) lo mette a capo.
Qualcuno sa come fare ad ovviare a queto? in LaTeX c’era il comando \qedhere che serviva proprio a questo.Grazie
ES
-
CreatoreTopic
-
AutoreRisposte
-
-
13 Dicembre 2010 alle 12:43 #48180::
ecco una soluzione che funziona solo per mkiv:
`\definedescription
[proof]
[text=Proof.]\setupdescriptions
[proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
closesymbol=\mathematics{\square},
closecommand=\ifmmode\eqno\else\wordright\fi]`ES
-
19 Dicembre 2010 alle 8:43 #48181
-
19 Dicembre 2010 alle 11:43 #48182::
ecco una soluzione che funziona solo per mkiv:
`\definedescription
[proof]
[text=Proof.]\setupdescriptions
[proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
closesymbol=\mathematics{\square},
closecommand=\ifmmode\eqno\else\wordright\fi]`ES
Non riesco a capire la differenza tra mkii e mkiv: a me il simbolo qed sembra finire nello stessa posizione in entrambi i casi.
-
19 Dicembre 2010 alle 13:34 #48183
-
19 Dicembre 2010 alle 14:46 #48184::
C’è anche un comando
`\placeclosesymbol`
che in teoria dovrebbe essere l’equivalente di \qedhere.
A me, in mkii, dentro ad una formula mi da errore (funziona per esempio se la dimostrazione finisce con un itemize).Ciao
ES
Una cosa di questo tipo ?
`
\definedescription
[proof]
[text=Proof.]\setupdescriptions
[proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
%closesymbol=\square,
after={\nobreak\vskip-1.75\lineheight\nobreak\hbox to \hsize{\hfill$\square$}\vskip1.75\lineheight},
]\starttext
\startproof
Questa \'e una dimostrazione
\startformula
a=b
\stopformula
\stopproof
\input tufte
\stoptext
`
-
19 Dicembre 2010 alle 16:17 #48185::
Si funziona! sei troppo bravo.
Se proprio si vuole essere precisi, l’allineamento verticale non è sempre corretto, per esempio se si sostituisce la formula con
`a=\int_\sum b^2`
si vede abbastanza bene.Infine ci sarebbe da sistemare la questione se la formula finale \`e numerata.
Comunque mi ritengo soddisfatto.
Grazie
ES
-
19 Dicembre 2010 alle 17:08 #48186::
Si funziona! sei troppo bravo.
Se proprio si vuole essere precisi, l’allineamento verticale non è sempre corretto, per esempio se si sostituisce la formula con
`a=\int_\sum b^2`
si vede abbastanza bene.Infine ci sarebbe da sistemare la questione se la formula finale \`e numerata.
Comunque mi ritengo soddisfatto.
Grazie
ES
Era solo un esempio per vedere se avevo capito: \vskip-1.75\lineheight è fatto per tentativi
CMQ ci penso, ci sono alcune cose interessanti.
-
19 Dicembre 2010 alle 19:50 #48187
-
19 Dicembre 2010 alle 20:28 #48188::
Era solo un esempio per vedere se avevo capito.
Hai capito perfettamente.
`
\setupcolors[state=start]
\definedescription
[proof]
[text=Proof.]\newdimen\RecordPos
\newdimen\TempPos
\def\QEDHERE{\rlap{\vrule width\textwidth height1pt depth0pt}\global\RecordPos=\the\pagetotal}
\def\PutQED{%
%\par\nointerlineskip\vskip0pt
\rlap{\color[blue]{\vrule width\textwidth height1sp depth0pt}}%
\TempPos=\the\pagetotal%
\nobreak\vskip-\the\dimexpr(\TempPos-\RecordPos)%
\nobreak\hbox to \textwidth{\hfill$\square$}\vskip\the\dimexpr(\TempPos-\RecordPos-\lineheight)
}\setupdescriptions
[proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
after=\PutQED,
]\starttext
\startproof
Questa \'e una dimostrazione
\startformula
a=\int_{\sum_{\int_\sum^6}}^{100}\sum b^2\QEDHERE
\stopformula
\stopproof\startproof
Questa \'e una dimostrazione
\startformula
a=b \QEDHERE
\stopformula
\stopproof\startproof
Questa \'e una dimostrazione
\startformula
a=\frac{1}{c} \QEDHERE
\stopformula
\stopproof\startproof
Questa \'e una dimostrazione
\startformula
a=\sum b\QEDHERE
\stopformula
\stopproof\stoptext
`
L’idea è semplice: memorizza con \QEDHERE il punto dove appare la formula,
una volta chiuso proof torna su fino al punto, metti $\square$, e ritorna alla fine di proof.Ma deve esserci qualche altro spazio che mi sfugge, quindi come realizzazione non è un granchè
(se non vuoi vedere le rule mettile ad altezza 0pt).
-
20 Dicembre 2010 alle 9:20 #48189::
L’idea è semplice:
\`e la realizzazione che è difficile 🙂
Apparte gli scherzi, appena ho un po’ di tempo la leggo attentamente.
Intanto avevo pensato ad un trucchetto probabilmente non molto elegante visto che bisogna usare due comandi, comunque funziona`\definedescription
[proof]
[text=Proof.]\setupdescriptions
[proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
closesymbol=\mathematics{\square}]\def\QEDhere{\eqno\mathematics{\square}}
\def\NOsymbol{\setupdescriptions
[proof][closesymbol=]}
\starttext
\startproof
Questa \`e una dimostrazione che finisce cos\`i.
\stopproof\startproof
Questa \`e una dimostrazione che finisce con formula
\startformula
a=\int_{\sum_{\int_\sum^6}}^{100}\sum b^2\QEDhere
\stopformula\NOsymbol
\stopproof\startproof
Questa \`e una dimostrazione che finisce cos\`i.
\stopproof\stoptext`
Che ne dici?
ES
-
20 Dicembre 2010 alle 9:22 #48190
-
20 Dicembre 2010 alle 9:35 #48191::
Probabilmente, se riuscissi a capire questo codice
`\def\@@resetdescriptionclosesymbol
{\global\@EA\settrue\csname\??dd\currentdescription:mrk\endcsname
\let\placeclosesymbol\@@placedescriptionclosesymbol
\let\qed \@@placedescriptionclosesymbol}\def\@@placedescriptionclosesymbol
{\ifconditional\csname\??dd\currentdescription:mrk\endcsname
\global\@EA\setfalse\csname\??dd\currentdescription:mrk\endcsname
\doifsomething{\descriptionparameter\c!closesymbol}{\descriptionparameter\c!closecommand{\descriptionparameter\c!closesymbol}}%
\fi}
`
Potrei anche fare un comando solo..ES
-
20 Dicembre 2010 alle 13:08 #48192::
E perché non due “proof” ?`
\definedescription
[proof]
[text=Proof.]\setupdescriptions
[proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
closesymbol=\mathematics{\square}]\definedescription[Proof][text=Proof.]
\setupdescriptions
[Proof]
[width=broad,
distance=0.5em,
location=serried,
headstyle=it,
indentnext=yes,
indenting=yes,
closesymbol=]\def\QEDhere{\eqno\mathematics{\square}}
\starttext
\startproof
Questa \`e una dimostrazione che finisce cos\`i.
\stopproof\startProof
Questa \`e una dimostrazione che finisce con formula
\startformula
a=\int_{\sum_{\int_\sum^6}}^{100}\sum b^2\QEDhere
\stopformula
\stopProof\startProof
Questa \`e una dimostrazione che finisce cos\`i.
\stopProof\startproof
Questa \`e una dimostrazione che finisce cos\`i.
\stopproof\stoptext
`
-
20 Dicembre 2010 alle 13:24 #48193::
E perché non due “proof” ?
Nel pacchetto amsthm il problema è risolto con un condizionale: se c’è \qedhere il condizionale cambia valore e \end{proof} non stampa nulla. Naturalmente il \qedhere non viene stampato per mezzo di \eqno, perché sarebbe incompatibile con la numerazione: non ci possono essere \eqno e \leqno nella stessa formula. È chiaro che \qedhere non può essere usato se i numeri delle equazioni sono a destra.
Ciao
Enrico
-
20 Dicembre 2010 alle 14:52 #48194::
È chiaro che \qedhere non può essere usato se i numeri delle equazioni sono a destra.
Ti riferisci al \qedhere di amsthm o al mio \QEDhere?
Il primo mi sembrava si potesse usare anche per formule numerate a destra (il quadratino andava subito sotto il numero) ma forse mi sbaglio.
Per il mio in effetti non si può..Ciao
ES
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.