MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Abs[ ] traditional form

  • To: mathgroup at smc.vnet.net
  • Subject: [mg60212] Re: Abs[ ] traditional form
  • From: Cca <cca at gregosetroianos.mat.br>
  • Date: Wed, 7 Sep 2005 04:04:12 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Eduardo,

Evaluate

Abs[x]//TraditionalForm

and press Shift+Ctrl+E to see the textual form of the output cell. 
Next, select the operator names 

\[LeftBracketingBar], \[RightBracketingBar]

and press F1 to get information from the Help Browser. You will see that 
the corresponding aliases are Esc+l|+Esc and Esc+r|+Esc, respectively.

You can also:

(1) create your own alias for a whole notation.
(2) put everything in a paste button.

(More on the SEMANTICS below.)

For example, after evaluating the following expression, you can type just Esc+abs+Esc 
to get the two vertical bars:

SetOptions[InputNotebook[],
  InputAliases->
    Append[Options[InputNotebook[],InputAliases][[1,2]],
      "abs":>
        RowBox[{"\[LeftBracketingBar]",\[SelectionPlaceholder],
            "\[RightBracketingBar]"}]]]

And here goes a button:

ButtonBox[
(*button face*)
StyleBox[
    FormBox[RowBox[{"\[LeftBracketingBar]","\[SelectionPlaceholder]",
          "\[RightBracketingBar]"}],"TraditionalForm"],
    FontFamily->"Times"],

(*notation to be pasted*)
ButtonData:>RowBox[{"\[LeftBracketingBar]","\[SelectionPlaceholder]",
        "\[RightBracketingBar]"}]] // DisplayForm

Finally, it is important to note that a box expression like

RowBox[{"\[LeftBracketingBar]","x","\[RightBracketingBar]"}]

is interpreted as BracketingBar[x] in StandardForm. In a TraditionaForm cell, it
is interpreted as Abs[x]. As before, there are many ways to proceed here:

(4) set the intended meaning globally with BracketingBar=Abs;
(5) use MakeExpression to set a global meaning without affecting BracketingBar:

MakeExpression[RowBox[{"\[LeftBracketingBar]",x_,"\[RightBracketingBar]"}],
    form_]:=MakeExpression[RowBox[{"Abs","[",x,"]"}],form]

(6) attach a LOCAL interpretation using InerpretationBox, TagBox or InterpretTemplate.

Thus, above you can replace all the occurrences of

RowBox[{"\[LeftBracketingBar]","\[SelectionPlaceholder]",
        "\[RightBracketingBar]"}]

by

TagBox[RowBox[{"\[LeftBracketingBar]", "\[SelectionPlaceholder]", 
"\[RightBracketingBar]"}], Abs @@ # &]

or

TagBox[
RowBox[{"\[LeftBracketingBar]", 
TagBox["\[SelectionPlaceholder]"
Identity, Editable -> True], "\[RightBracketingBar]"}],
InterpretTemplate[Abs[#1] &], 
Editable -> False]



Carlos César de Araújo
Gregos & Troianos Educacional
www.gregosetroianos.mat.br
Belo Horizonte, MG, Brasil
(31) 3283-1122


  • Prev by Date: NMinimize InitialPoints BUGREPORT ?
  • Next by Date: Re: Hold[] ReleaseHold[] ? or what ?
  • Previous by thread: Re: Abs[ ] traditional form
  • Next by thread: Maximising a sum of matrix elements