Re: [NTG-context] Bug with \wordright in LMTX version 2020-08-03 14:25
Hi Hans, Thanks for the hint which consists in adding an \ifmmode to the definition of \qed. However, as you suggest, one needs some other mechanism in math mode, since with your new definition of \qed the alignment of the formula changes when one adds this close symbol: %%%% begin-example-qed.tex \definesymbol[Fin][\mathematics{\square}] \def\qed{\ifmmode\quad\symbol[Fin]\else\strut\wordright{\symbol[Fin]}\fi} \starttext \startformula a^2 + b^2 = c^2. \stopformula \startformula a^2 + b^2 = c^2. \qed \stopformula One sees that\type{\qed} in the formula changes the alignment of the formula. \qed \stoptext %%%% end-example-qed.tex Thanks a lot for everything: Otared
On 4 Aug 2020, at 13:24, Hans Hagen
wrote: On 8/4/2020 11:17 AM, Otared Kavian wrote:
Thanks Hans for your explanations. The problem I encountered is that, the command \qed is used dozens of time in my text without any issue because it was preceded by something on th eline, but the only place where it was alone after a formula resulted in the error and it was not easy for me to isolate the issue… By the way, in mkii it was possible to add \qed on the last line of a math formula, but that does not work anymore: \definesymbol[Fin][\mathematics{\square}] \def\qed{\strut\wordright{\symbol[Fin]}} \starttext \startformula a^2 + b^2 = c^2. \qed \stopformula The above formula does not show the close symbol.\qed \stoptext Is there a way to have something like \qed work in math formulas? because that's now hwpo wordright works ...
\def\qed{\ifmmode\quad\symbol[Fin]\else\strut\wordright{\symbol[Fin]}\fi}
but we probably need something different, something that hooks into display math
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
Hello,
I also use a square to complete a demonstration. I tried this without
success
Thank you
Fabrice
\definesymbol[Fin][\mathematics{\square}]
\def\qed{\strut\wordright{\symbol[Fin]}}
\defineenumeration
[proof]
[text=Démonstration,
alternative=serried,
distance=\zeropoint,
number=no,
headstyle=boldslanted,
width=broad,
closesymbol={\symbol[\qed]}]
\starttext
\startproof
\startformula
a^2 + b^2 = c^2
\stopformula
\stopproof
\stoptext
Le mar. 4 août 2020 à 14:02, Otared Kavian
Hi Hans,
Thanks for the hint which consists in adding an \ifmmode to the definition of \qed. However, as you suggest, one needs some other mechanism in math mode, since with your new definition of \qed the alignment of the formula changes when one adds this close symbol:
%%%% begin-example-qed.tex \definesymbol[Fin][\mathematics{\square}] \def\qed{\ifmmode\quad\symbol[Fin]\else\strut\wordright{\symbol[Fin]}\fi} \starttext \startformula a^2 + b^2 = c^2. \stopformula \startformula a^2 + b^2 = c^2. \qed \stopformula One sees that\type{\qed} in the formula changes the alignment of the formula. \qed \stoptext %%%% end-example-qed.tex
Thanks a lot for everything: Otared
On 4 Aug 2020, at 13:24, Hans Hagen
wrote: Thanks Hans for your explanations. The problem I encountered is that, the command \qed is used dozens of time in my text without any issue because it was preceded by something on
On 8/4/2020 11:17 AM, Otared Kavian wrote: th eline, but the only place where it was alone after a formula resulted in the error and it was not easy for me to isolate the issue…
By the way, in mkii it was possible to add \qed on the last line of a math formula, but that does not work anymore: \definesymbol[Fin][\mathematics{\square}] \def\qed{\strut\wordright{\symbol[Fin]}} \starttext \startformula a^2 + b^2 = c^2. \qed \stopformula The above formula does not show the close symbol.\qed \stoptext Is there a way to have something like \qed work in math formulas? because that's now hwpo wordright works ...
\def\qed{\ifmmode\quad\symbol[Fin]\else\strut\wordright{\symbol[Fin]}\fi}
but we probably need something different, something that hooks into display math
Hans
----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl -----------------------------------------------------------------
___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net
___________________________________________________________________________________
Fabrice Couvreur schrieb am 05.08.2020 um 19:33:
Hello, I also use a square to complete a demonstration. I tried this without success Thank you Fabrice
\definesymbol[Fin][\mathematics{\square}] \def\qed{\strut\wordright{\symbol[Fin]}}
\defineenumeration [proof] [..., closesymbol={\symbol[\qed]}]
1. \symbol is meant to access pre defined symbols, as fallback method when the requested symbol doesn't exist ConTeXt outputs the argument. This fallback is in my opinion problematic because it's easy to miss it. \starttext \symbol[square] \symbol[quadrat] \stoptext 2. When you use the closesymbol for a enumeration ConTeXt uses also the argument of the closecommand to apply something to the symbol, by default the argument to the closecommand key is \wordright. This means you're putting \wordright (which itself is flushed as symbol) within \wordright which has to fail at some point. Below is a cleaner version to put a symbol at the end of each proof. The \blank setting in the \PlaceProofSymbol definition moves the symbol back in the math formula to avoid the vertical space between them, you can remove it but I would at leas use \blank[back] to get rid of the empty line between the formula and the symbol. \define[1]\PlaceProofSymbol {\blank[back,overlay]% \dontleavehmode\wordright{#1}} \defineenumeration [proof] [ closesymbol={\symbol[square]}, closecommand=\PlaceProofSymbol] \starttext \startproof \startformula a^2 + b^2 = c^2 \stopformula \stopproof \stoptext Wolfgang
Hi Wolfgang, Thanks for your explanations and the correct definition of the close symbol in an enumeration. Following up the discussions with Hans, in order to put a close sympbol at the end of a formula, I have the following for the definition of \qed: %% begin example-qed.tex \showframe \definesymbol[Fin][\mathematics{\square}] \def\qed{% \ifmmode \inrightmargin{\hskip-7.5mm\symbol[Fin]} % --> attention here \else \dontleavehmode\wordright{\symbol[Fin]} \fi} \setupformulas[location=left] \starttext One sees that \placeformula \startformula a^2 + b^2 = c^2 \stopformula which is the Pythagoras theorem. \qed Another proof of Pythagors theorem is based on the figure below in which one sees that: \placeformula \startformula (a+b)^2 = c^2 + 2ab \quad \imply \quad a^2 + b^2 = c^2. \qed \stopformula \stoptext %% end example-qed.tex Now how can I replace « \hskip-7.5mm » (which was found by trial and error…) in a robust manner so that the close symbols in the formulas are vertically aligned with the close symbols in the text? In other terms can one compute automatically the amount of negative \hskip so that the definition is correct when one changes the font size and the layout? Thanks in advance: Otared
On 5 Aug 2020, at 21:15, Wolfgang Schuster
wrote: […] Below is a cleaner version to put a symbol at the end of each proof. The \blank setting in the \PlaceProofSymbol definition moves the symbol back in the math formula to avoid the vertical space between them, you can remove it but I would at leas use \blank[back] to get rid of the empty line between the formula and the symbol.
\define[1]\PlaceProofSymbol {\blank[back,overlay]% \dontleavehmode\wordright{#1}}
\defineenumeration [proof] [ closesymbol={\symbol[square]}, closecommand=\PlaceProofSymbol]
\starttext
\startproof \startformula a^2 + b^2 = c^2 \stopformula \stopproof
\stoptext
Wolfgang ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : http://contextgarden.net ___________________________________________________________________________________
participants (3)
-
Fabrice Couvreur
-
Otared Kavian
-
Wolfgang Schuster