* extentable arrows
@ 2006-06-28 20:56 Aditya Mahajan
2006-06-28 21:24 ` Aditya Mahajan
2006-06-28 21:58 ` Taco Hoekwater
0 siblings, 2 replies; 9+ messages in thread
From: Aditya Mahajan @ 2006-06-28 20:56 UTC (permalink / raw)
Hi,
Does ConTeXt have anything equivalent to xleftarrow, xrightarrow of
amsmath. Basically, I need a command that can do
A \xleftarrow[subscript]{superscript} B
should give
superscript
A <----------- B
subscript
and similar for xrightarrow, xleftrightarrow, xLeftarrow, xRightarrow
and xLeftRightarrow.
The closest that I could come to it was (only for superscripts)
\def\xrightarrow#1{\buildrel{#1}\over\longrightarrow}
But this is not extendable.
\xrightarrow{big superscipt}
Any suggestions?
Aditya
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 20:56 extentable arrows Aditya Mahajan
@ 2006-06-28 21:24 ` Aditya Mahajan
2006-06-28 21:58 ` Taco Hoekwater
1 sibling, 0 replies; 9+ messages in thread
From: Aditya Mahajan @ 2006-06-28 21:24 UTC (permalink / raw)
On Wed, 28 Jun 2006, Aditya Mahajan wrote:
> Hi,
> Does ConTeXt have anything equivalent to xleftarrow, xrightarrow of
> amsmath. Basically, I need a command that can do
>
> A \xleftarrow[subscript]{superscript} B
>
> should give
>
> superscript
> A <----------- B
> subscript
>
> and similar for xrightarrow, xleftrightarrow, xLeftarrow, xRightarrow
> and xLeftRightarrow.
>
>
> The closest that I could come to it was (only for superscripts)
>
> \def\xrightarrow#1{\buildrel{#1}\over\longrightarrow}
>
> But this is not extendable.
>
> \xrightarrow{big superscipt}
>
>
> Any suggestions?
This is how it is defined in amsmath.sty
\def\ext@arrow#1#2#3#4#5#6#7{%
\mathrel{\mathop{%
\setbox\z@\hbox{#5\displaystyle}%
\setbox\tw@\vbox{\m@th
\hbox{$\scriptstyle\mkern#3mu{#6}\mkern#4mu$}%
\hbox{$\scriptstyle\mkern#3mu{#7}\mkern#4mu$}%
\copy\z@
}%
\hbox to\wd\tw@{\unhbox\z@}}%
\limits
\@ifnotempty{#7}{^{\if0#1\else\mkern#1mu\fi
#7\if0#2\else\mkern#2mu\fi}}%
\@ifnotempty{#6}{_{\if0#1\else\mkern#1mu\fi
#6\if0#2\else\mkern#2mu\fi}}}%
}
\newcommand{\xrightarrow}[2][]{\ext@arrow 0359\rightarrowfill@{#1}{#2}}
\newcommand{\xleftarrow}[2][]{\ext@arrow 3095\leftarrowfill@{#1}{#2}}
I tried to contextify this, but keep on getting missing $ errors.
Aditya
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 20:56 extentable arrows Aditya Mahajan
2006-06-28 21:24 ` Aditya Mahajan
@ 2006-06-28 21:58 ` Taco Hoekwater
2006-06-28 23:07 ` Aditya Mahajan
2006-06-28 23:21 ` Aditya Mahajan
1 sibling, 2 replies; 9+ messages in thread
From: Taco Hoekwater @ 2006-06-28 21:58 UTC (permalink / raw)
Aditya Mahajan wrote:
> \xrightarrow{big superscipt}
>
> Any suggestions?
Not completely identical, but similar.
Cheers, Taco
\def\domthxarr#1#2#3#4#5#6#7%
{\begingroup
\mathsurround\zeropoint
\setbox0\hbox{$\scriptstyle
\if0#1\else\mkern#1mu\fi
\mkern#3mu#7\mkern#4mu
\if0#2\else\mkern#2mu\fi $}%
\setbox4\hbox{#5}%
\dimen0\wd0
\ifdim\wd4>\dimen0 \dimen0\wd4 \fi
\setbox2\hbox{$\scriptstyle
\if0#1\else\mkern#1mu\fi
\mkern#3mu#6\mkern#4mu
\if0#2\else\mkern#2mu\fi $}%
\ifdim\wd2>\dimen0 \dimen0\wd2 \fi
\setbox4\hbox to \dimen0{#5}%
\mathord{\vcenter{{\offinterlineskip
\hbox to \dimen0{\hss\box0\hss}%
\kern .2ex
\hbox to \dimen0{\hss\copy4\hss}%
\kern .2ex
\hbox to \dimen0{\hss\box2\hss}}}}%
\endgroup}
\def\xrightarrow{\dodoubleempty\doxrightarrow }
\def\xleftarrow {\dodoubleempty\doxleftarrow }
\def\doxrightarrow[#1][#2]{\mathrel
{{\domthxarr0359\rightarrowfill{#1}{#2}}}}
\def\doxleftarrow[#1][#2]{\mathrel
{{\domthxarr3095\leftarrowfill{#1}{#2}}}}
\starttext
$$
A \xrightarrow[][stuff on top] B
$$
$$
A \xleftarrow[stuff below][stuff on top] B
$$
$$
A \xleftarrow B
$$
\stoptext
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 21:58 ` Taco Hoekwater
@ 2006-06-28 23:07 ` Aditya Mahajan
2006-06-29 9:02 ` Hans Hagen
2006-06-28 23:21 ` Aditya Mahajan
1 sibling, 1 reply; 9+ messages in thread
From: Aditya Mahajan @ 2006-06-28 23:07 UTC (permalink / raw)
On Wed, 28 Jun 2006, Taco Hoekwater wrote:
> Aditya Mahajan wrote:
>> \xrightarrow{big superscipt}
>>
>> Any suggestions?
>
>
> Not completely identical, but similar.
>
> Cheers, Taco
>
>
> \def\domthxarr#1#2#3#4#5#6#7%
> {\begingroup
> \mathsurround\zeropoint
> \setbox0\hbox{$\scriptstyle
> \if0#1\else\mkern#1mu\fi
> \mkern#3mu#7\mkern#4mu
> \if0#2\else\mkern#2mu\fi $}%
> \setbox4\hbox{#5}%
> \dimen0\wd0
> \ifdim\wd4>\dimen0 \dimen0\wd4 \fi
> \setbox2\hbox{$\scriptstyle
> \if0#1\else\mkern#1mu\fi
> \mkern#3mu#6\mkern#4mu
> \if0#2\else\mkern#2mu\fi $}%
> \ifdim\wd2>\dimen0 \dimen0\wd2 \fi
> \setbox4\hbox to \dimen0{#5}%
> \mathord{\vcenter{{\offinterlineskip
> \hbox to \dimen0{\hss\box0\hss}%
> \kern .2ex
> \hbox to \dimen0{\hss\copy4\hss}%
> \kern .2ex
> \hbox to \dimen0{\hss\box2\hss}}}}%
> \endgroup}
>
> \def\xrightarrow{\dodoubleempty\doxrightarrow }
>
> \def\xleftarrow {\dodoubleempty\doxleftarrow }
>
> \def\doxrightarrow[#1][#2]{\mathrel
> {{\domthxarr0359\rightarrowfill{#1}{#2}}}}
>
> \def\doxleftarrow[#1][#2]{\mathrel
> {{\domthxarr3095\leftarrowfill{#1}{#2}}}}
Thanks Taco! However, the arrow is not centered when there is only
subscript or superscript. Compare the height of arrows in the
following.
$$
\rightarrow A \xrightarrow[][stuff on top] B \leftarrow
$$
$$
\rightarrow A \xleftarrow[stuff below][] B \leftarrow
$$
How about,
\def\domthxarr#1#2#3#4#5#6#7%
{\begingroup
\mathsurround\zeropoint
\setbox0\hbox{$\scriptstyle
\if0#1\else\mkern#1mu\fi
\mkern#3mu#7\mkern#4mu
\if0#2\else\mkern#2mu\fi $}%
\setbox4\hbox{#5}%
\dimen0\wd0
\ifdim\wd4>\dimen0 \dimen0\wd4 \fi
\setbox2\hbox{$\scriptstyle
\if0#1\else\mkern#1mu\fi
\mkern#3mu#6\mkern#4mu
\if0#2\else\mkern#2mu\fi $}%
\ifdim\wd2>\dimen0 \dimen0\wd2 \fi
\setbox4\hbox to \dimen0{#5}%
\mathrel{\mathop{%
\hbox to \dimen0{\hss\copy4\hss}}%
\limits^{\box0}_{\box2}}
% \mathord{\vcenter{{\offinterlineskip
% \hbox to \dimen0{\hss\box0\hss}%
% \kern .2ex
% \hbox to \dimen0{\hss\copy4\hss}%
% \kern .2ex
% \hbox to \dimen0{\hss\box2\hss}}}}%
\endgroup}
I am simply trying to copy from amsmath definition.
Aditya
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 21:58 ` Taco Hoekwater
2006-06-28 23:07 ` Aditya Mahajan
@ 2006-06-28 23:21 ` Aditya Mahajan
2006-06-29 8:07 ` Taco Hoekwater
2006-06-29 8:25 ` Hans Hagen
1 sibling, 2 replies; 9+ messages in thread
From: Aditya Mahajan @ 2006-06-28 23:21 UTC (permalink / raw)
On Wed, 28 Jun 2006, Taco Hoekwater wrote:
> Aditya Mahajan wrote:
>> \xrightarrow{big superscipt}
>>
>> Any suggestions?
>
>
> Not completely identical, but similar.
The syntax can be made identical (even better) than that of amsmath.
\def\xrightarrow{\dosingleempty\doxrightarrow}
\def\xleftarrow {\dosingleempty\doxleftarrow}
\def\doxrightarrow[#1]{\dodoublegroupempty\dodoxrightarrow{#1}}
\def\doxleftarrow[#1]{\dodoublegroupempty\dodoxleftarrow{#1}}
\def\dodoxrightarrow#1#2{\mathrel
{{\domthxarr0359\rightarrowfill{#1}{#2}}}}
\def\dodoxleftarrow#1#2{\mathrel
{{\domthxarr3095\leftarrowfill{#1}{#2}}}}
\starttext
$$
A \xrightarrow[]{stuff on top} B
$$
$$
A \xrightarrow[stuff below]{} B
$$
\startformula
A \xleftarrow[stuff below]{stuff on top} B
\stopformula
$$
A \xleftarrow B
$$
$$
\rightarrow A \xrightarrow{stuff on top} B \leftarrow
$$
$$
\rightarrow A \xleftarrow[stuff below] B \leftarrow
$$
\stoptext
Will make copy paste a bit easier! Though these days I find myself
writing more in context and soon will face the reverse problem. I will
need to copy context math into latex (needed for final journal
submission) and some of the math features are simply missing from
latex :)
Aditya
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 23:21 ` Aditya Mahajan
@ 2006-06-29 8:07 ` Taco Hoekwater
2006-06-29 8:25 ` Hans Hagen
1 sibling, 0 replies; 9+ messages in thread
From: Taco Hoekwater @ 2006-06-29 8:07 UTC (permalink / raw)
Aditya Mahajan wrote:
> On Wed, 28 Jun 2006, Taco Hoekwater wrote:
>
>
>>Aditya Mahajan wrote:
>>
>>>\xrightarrow{big superscipt}
>>>
>>>Any suggestions?
>>
>>
>>Not completely identical, but similar.
>
>
> The syntax can be made identical (even better) than that of amsmath.
Perhaps it syntax should be identical to amsmath: no brackets
and two required arguments. It is what is expected anyway.
\def\xrightarrow#1#2{\mathrel
{{\domthxarr0359\rightarrowfill{#1}{#2}}}}
I assume amsmath has a few others as well, for double arrows and such.
Can you post those defs as well? Then we can move the whole definition
into math-ext.tex for the new release
Cheers,
Taco
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 23:21 ` Aditya Mahajan
2006-06-29 8:07 ` Taco Hoekwater
@ 2006-06-29 8:25 ` Hans Hagen
2006-06-29 14:56 ` Aditya Mahajan
1 sibling, 1 reply; 9+ messages in thread
From: Hans Hagen @ 2006-06-29 8:25 UTC (permalink / raw)
Aditya Mahajan wrote:
>
> The syntax can be made identical (even better) than that of amsmath.
>
> \def\xrightarrow{\dosingleempty\doxrightarrow}
>
> \def\xleftarrow {\dosingleempty\doxleftarrow}
>
> \def\doxrightarrow[#1]{\dodoublegroupempty\dodoxrightarrow{#1}}
>
> \def\doxleftarrow[#1]{\dodoublegroupempty\dodoxleftarrow{#1}}
>
> \def\dodoxrightarrow#1#2{\mathrel
> {{\domthxarr0359\rightarrowfill{#1}{#2}}}}
>
> \def\dodoxleftarrow#1#2{\mathrel
> {{\domthxarr3095\leftarrowfill{#1}{#2}}}}
>
> \starttext
> $$
> A \xrightarrow[]{stuff on top} B
> $$
>
> $$
> A \xrightarrow[stuff below]{} B
> $$
>
> \startformula
> A \xleftarrow[stuff below]{stuff on top} B
> \stopformula
>
> $$
> A \xleftarrow B
> $$
> $$
> \rightarrow A \xrightarrow{stuff on top} B \leftarrow
> $$
>
>
> $$
> \rightarrow A \xleftarrow[stuff below] B \leftarrow
> $$
>
> \stoptext
>
hm, this is not the context way, two equal kind of contents and then one
of them in [], maybe
\def\xrightarrow{\doifnextcharelse[\noxrightarrow\doxrightarrow}
\def\xleftarrow {\doifnextcharelse[\noxleftarrow\doxleftarrow}
\def\doxrightarrow{\dodoublegroupempty\dodoxrightarrow}
\def\doxleftarrow {\dodoublegroupempty\dodoxleftarrow }
\def\noxrightarrow[#1]{\dodoublegroupempty\dodoxrightarrow{#1}}
\def\noxleftarrow [#1]{\dodoublegroupempty\dodoxleftarrow {#1}}
which accepts
\xrightarrow{x}{y}
\xrightarrow{x}
\xrightarrow{}{y}
\xrightarrow[x]{y}
etc, actyally, we should then also accept
\xrightarrow[x][y]
but more interesting is to use the optional arg for tuning purposes
\if0#1\else\mkern#1mu\fi
test, does a \mkern0mu hurt?
>
> Will make copy paste a bit easier! Though these days I find myself
> writing more in context and soon will face the reverse problem. I will
> need to copy context math into latex (needed for final journal
> submission) and some of the math features are simply missing from
> latex :)
>
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-28 23:07 ` Aditya Mahajan
@ 2006-06-29 9:02 ` Hans Hagen
0 siblings, 0 replies; 9+ messages in thread
From: Hans Hagen @ 2006-06-29 9:02 UTC (permalink / raw)
Aditya Mahajan wrote:
>
> I am simply trying to copy from amsmath definition.
>
better think context -)
\unprotect
\def\mtharrfactor{1}
\def\mtharrextra {0}
\def\domthxarr#1#2#3#4#5#6#7#8%
{\begingroup
\def\mtharrfactor{1}%
\def\mtharrextra {0}%
\processaction[#1] % will be sped up
[ \v!none=>\def\mtharrfactor{0},
\v!small=>\def\mtharrextra{10},
\v!medium=>\def\mtharrextra{15},
\v!big=>\def\mtharrextra{20},
\v!normal=>,
\v!default=>,
\v!unknown=>\doifnumberelse{#1}{\def\mtharrextra{#1}}\donothing]%
\mathsurround\zeropoint
\muskip0=#4mu \muskip0=\mtharrfactor\muskip0 \advance\muskip0 \mtharrextra mu
\muskip2=#5mu \muskip2=\mtharrfactor\muskip2 \advance\muskip2 \mtharrextra mu
\setbox0\hbox{$\scriptstyle
\if#20\else\mkern#2mu\fi
\mkern\muskip0\relax
#8\relax
\mkern\muskip2\relax
\if#30\else\mkern#3mu\fi
$}%
\setbox4\hbox{#6}%
\dimen0\wd0
\ifdim\wd4>\dimen0 \dimen0\wd4 \fi
\setbox2\hbox{$\scriptstyle
\if#20\else\mkern#2mu\fi
\mkern\muskip0\relax
#7\relax
\mkern\muskip2\relax
\if#30\else\mkern#3mu\fi
$}%
\ifdim\wd2>\dimen0 \dimen0\wd2 \fi
\setbox4\hbox to \dimen0{#6}%
\mathrel{\mathop{%
\hbox to \dimen0{\hss\copy4\hss}}%
\limits^{\box0}_{\box2}}
\endgroup}
% ams:
\def\xrightarrow{\doifnextcharelse[\noxrightarrow\doxrightarrow}
\def\xleftarrow {\doifnextcharelse[\noxleftarrow\doxleftarrow}
\def\doxrightarrow{\dodoublegroupempty\dodoxrightarrow}
\def\doxleftarrow {\dodoublegroupempty\dodoxleftarrow }
\def\noxrightarrow[#1]{\dodoublegroupempty\dodoxrightarrow{#1}}
\def\noxleftarrow [#1]{\dodoublegroupempty\dodoxleftarrow {#1}}
\def\dodoxrightarrow#2#3{\mathrel{{\domthxarr{}0359\rightarrowfill{#1}{#2}}}}
\def\dodoxleftarrow #2#3{\mathrel{{\domthxarr{}3095\leftarrowfill {#1}{#2}}}}
% context:
\def\xrightarrow {\dosingleempty\doxrightarrow}
\def\xleftarrow {\dosingleempty\doxleftarrow}
\def\doxrightarrow[#1]{\dotriplegroupempty\dodoxrightarrow{#1}}
\def\doxleftarrow [#1]{\dotriplegroupempty\dodoxleftarrow {#1}}
\def\dodoxrightarrow#1#2#3{\mathrel{{\domthxarr{#1}0359\rightarrowfill{#2}{#3}}}}
\def\dodoxleftarrow #1#2#3{\mathrel{{\domthxarr{#1}3095\leftarrowfill {#2}{#3}}}}
\starttext
\startformula \xrightarrow{}{stuff on top}\stopformula
\startformula \xrightarrow{stuff below}{}\stopformula
\startformula \xrightarrow{stuff below}{stuff on top}\stopformula
\startformula \xleftarrow [none]{stuff below}{stuff on top}\stopformula
\startformula \xleftarrow [small]{stuff below}{stuff on top}\stopformula
\startformula \xleftarrow [medium]{stuff below}{stuff on top}\stopformula
\startformula \xleftarrow [big]{stuff below}{stuff on top}\stopformula
\stoptext
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: extentable arrows
2006-06-29 8:25 ` Hans Hagen
@ 2006-06-29 14:56 ` Aditya Mahajan
0 siblings, 0 replies; 9+ messages in thread
From: Aditya Mahajan @ 2006-06-29 14:56 UTC (permalink / raw)
On Thu, 29 Jun 2006, Hans Hagen wrote:
> Aditya Mahajan wrote:
>>
>> I am simply trying to copy from amsmath definition.
>>
>
> better think context -)
>
> \unprotect
>
> \def\mtharrfactor{1}
> \def\mtharrextra {0}
>
> \def\domthxarr#1#2#3#4#5#6#7#8%
> {\begingroup
> \def\mtharrfactor{1}%
> \def\mtharrextra {0}%
> \processaction[#1] % will be sped up
> [ \v!none=>\def\mtharrfactor{0},
> \v!small=>\def\mtharrextra{10},
> \v!medium=>\def\mtharrextra{15},
> \v!big=>\def\mtharrextra{20},
> \v!normal=>,
> \v!default=>,
> \v!unknown=>\doifnumberelse{#1}{\def\mtharrextra{#1}}\donothing]%
> \mathsurround\zeropoint
> \muskip0=#4mu \muskip0=\mtharrfactor\muskip0 \advance\muskip0 \mtharrextra mu
> \muskip2=#5mu \muskip2=\mtharrfactor\muskip2 \advance\muskip2 \mtharrextra mu
> \setbox0\hbox{$\scriptstyle
> \if#20\else\mkern#2mu\fi
> \mkern\muskip0\relax
> #8\relax
> \mkern\muskip2\relax
> \if#30\else\mkern#3mu\fi
> $}%
> \setbox4\hbox{#6}%
> \dimen0\wd0
> \ifdim\wd4>\dimen0 \dimen0\wd4 \fi
> \setbox2\hbox{$\scriptstyle
> \if#20\else\mkern#2mu\fi
> \mkern\muskip0\relax
> #7\relax
> \mkern\muskip2\relax
> \if#30\else\mkern#3mu\fi
> $}%
> \ifdim\wd2>\dimen0 \dimen0\wd2 \fi
> \setbox4\hbox to \dimen0{#6}%
> \mathrel{\mathop{%
> \hbox to \dimen0{\hss\copy4\hss}}%
> \limits^{\box0}_{\box2}}
> \endgroup}
>
> % ams:
>
> \def\xrightarrow{\doifnextcharelse[\noxrightarrow\doxrightarrow}
> \def\xleftarrow {\doifnextcharelse[\noxleftarrow\doxleftarrow}
>
> \def\doxrightarrow{\dodoublegroupempty\dodoxrightarrow}
> \def\doxleftarrow {\dodoublegroupempty\dodoxleftarrow }
>
> \def\noxrightarrow[#1]{\dodoublegroupempty\dodoxrightarrow{#1}}
> \def\noxleftarrow [#1]{\dodoublegroupempty\dodoxleftarrow {#1}}
>
> \def\dodoxrightarrow#2#3{\mathrel{{\domthxarr{}0359\rightarrowfill{#1}{#2}}}}
> \def\dodoxleftarrow #2#3{\mathrel{{\domthxarr{}3095\leftarrowfill {#1}{#2}}}}
>
> % context:
>
> \def\xrightarrow {\dosingleempty\doxrightarrow}
> \def\xleftarrow {\dosingleempty\doxleftarrow}
>
> \def\doxrightarrow[#1]{\dotriplegroupempty\dodoxrightarrow{#1}}
> \def\doxleftarrow [#1]{\dotriplegroupempty\dodoxleftarrow {#1}}
>
> \def\dodoxrightarrow#1#2#3{\mathrel{{\domthxarr{#1}0359\rightarrowfill{#2}{#3}}}}
> \def\dodoxleftarrow #1#2#3{\mathrel{{\domthxarr{#1}3095\leftarrowfill {#2}{#3}}}}
>
> \starttext
>
> \startformula \xrightarrow{}{stuff on top}\stopformula
> \startformula \xrightarrow{stuff below}{}\stopformula
> \startformula \xrightarrow{stuff below}{stuff on top}\stopformula
>
> \startformula \xleftarrow [none]{stuff below}{stuff on top}\stopformula
> \startformula \xleftarrow [small]{stuff below}{stuff on top}\stopformula
> \startformula \xleftarrow [medium]{stuff below}{stuff on top}\stopformula
> \startformula \xleftarrow [big]{stuff below}{stuff on top}\stopformula
>
> \stoptext
This definitely looks better. Can there be a setting for
\setuparrowextension (or something) so that the default can be
changed.
On Thu, 29 Jun 2006, Taco Hoekwater wrote:
> Perhaps it syntax should be identical to amsmath: no brackets
> and two required arguments.
But that is not the amsmath syntax. It has
\xrightarrow[below]{top} where the first argument is optional.
> It is what is expected anyway.
>
> \def\xrightarrow#1#2{\mathrel
> {{\domthxarr0359\rightarrowfill{#1}{#2}}}}
>
I agree that this makes more sense.
> I assume amsmath has a few others as well, for double arrows and such.
> Can you post those defs as well? Then we can move the whole definition
> into math-ext.tex for the new release
>
On Thu, 29 Jun 2006, Hans Hagen wrote:
> hm, this is not the context way, two equal kind of contents and then one
> of them in [], maybe
I agree. To me,
\xrightarrow[setting]{below}{top}
makes most sense. It is not same as ams syntax, but that does not
matter too much. Maybe there can be a switch to enable ams type of
syntax, but that will make things too messy, I guess.
>
> \def\xrightarrow{\doifnextcharelse[\noxrightarrow\doxrightarrow}
> \def\xleftarrow {\doifnextcharelse[\noxleftarrow\doxleftarrow}
>
> \def\doxrightarrow{\dodoublegroupempty\dodoxrightarrow}
> \def\doxleftarrow {\dodoublegroupempty\dodoxleftarrow }
>
> \def\noxrightarrow[#1]{\dodoublegroupempty\dodoxrightarrow{#1}}
> \def\noxleftarrow [#1]{\dodoublegroupempty\dodoxleftarrow {#1}}
>
> which accepts
>
> \xrightarrow{x}{y}
> \xrightarrow{x}
> \xrightarrow{}{y}
> \xrightarrow[x]{y}
>
> etc, actyally, we should then also accept
>
> \xrightarrow[x][y]
>
> but more interesting is to use the optional arg for tuning purposes
>
>
> \if0#1\else\mkern#1mu\fi
>
> test, does a \mkern0mu hurt?
I did not see any difference when I tested it. I do not know why that
is there.
On Thu, 29 Jun 2006, Taco Hoekwater wrote:
> I assume amsmath has a few others as well, for double arrows and
> such. Can you post those defs as well? Then we can move the whole
> definition into math-ext.tex for the new release
These are the only ones defined in amsmath. However extarrows.sty
defines the following
\xlongequal (===)
\xLongleftarrow (<===)
(Perhaps a better name is \xLeftarrow and we can have
\xLeftarrow[medium] )
\xLongrightarrow (===>)
(Perhaps a better name is \xRightarrow?)
\xLongleftrightarrow (<=====>)
(again, \xLeftrightarrow[medium] )
\xLeftrightarrow ( <===> )
\xlongleftrightarrow (<------->)
(again \xleftrightarrow[medium] )
\xleftrightarrow (<---->)
\xlongleftarrow
\xlongrightarrow
(These two are there with \xrightarrow[medium])
The definitions in extarrows are
\def\x@arrow{\DOTSB\Relbar}
\def\xlongequalsignfill@{\arrowfill@\x@arrow\Relbar\x@arrow}
\newcommand{\xlongequal}[2][]{%
\ext@arrow 0099\xlongequalsignfill@{#1}{#2}}
\def\xLongleftrightarrowfill@{%
\arrowfill@\Longleftarrow\Relbar\Longrightarrow}
\newcommand{\xLongleftrightarrow}[2][]{%
\ext@arrow 0099\xLongleftrightarrowfill@{#1}{#2}}
\def\xlongleftrightarrowfill@{%
\arrowfill@\longleftarrow\relbar\longrightarrow}
\newcommand{\xlongleftrightarrow}[2][]{%
\ext@arrow 0099\xlongleftrightarrowfill@{#1}{#2}}
\def\xLeftrightarrowfill@{\arrowfill@\Leftarrow\Relbar\Rightarrow}
\newcommand{\xLeftrightarrow}[2][]{%
\ext@arrow 0099\xLeftrightarrowfill@{#1}{#2}}
\def\xleftrightarrowfill@{\arrowfill@\leftarrow\relbar\rightarrow}
\newcommand{\xleftrightarrow}[2][]{%
\ext@arrow 0099\xleftrightarrowfill@{#1}{#2}}
\def\xLongleftarrowfill@{\arrowfill@\Longleftarrow\Relbar\Relbar}
\newcommand{\xLongleftarrow}[2][]{%
\ext@arrow 0099\xLongleftarrowfill@{#1}{#2}}
\def\xLongrightarrowfill@{\arrowfill@\Relbar\Relbar\Longrightarrow}
\newcommand{\xLongrightarrow}[2][]{%
\ext@arrow 0099\xLongrightarrowfill@{#1}{#2}}
\def\xlongleftarrowfill@{\arrowfill@\longleftarrow\relbar\relbar}
\newcommand{\xlongleftarrow}[2][]{%
\ext@arrow 0099\xlongleftarrowfill@{#1}{#2}}
\def\xlongrightarrowfill@{\arrowfill@\relbar\relbar\longrightarrow}
\newcommand{\xlongrightarrow}[2][]{%
\ext@arrow 0099\xlongrightarrowfill@{#1}{#2}}
I do not think that change is syntax is that big a deal, as long as it
is documented (I will do that). Otherwise we will still be using latex
syntax here :)
Aditya
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2006-06-29 14:56 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-06-28 20:56 extentable arrows Aditya Mahajan
2006-06-28 21:24 ` Aditya Mahajan
2006-06-28 21:58 ` Taco Hoekwater
2006-06-28 23:07 ` Aditya Mahajan
2006-06-29 9:02 ` Hans Hagen
2006-06-28 23:21 ` Aditya Mahajan
2006-06-29 8:07 ` Taco Hoekwater
2006-06-29 8:25 ` Hans Hagen
2006-06-29 14:56 ` Aditya Mahajan
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).