Re: BracketingBar for output
- To: mathgroup at smc.vnet.net
- Subject: [mg15859] Re: BracketingBar for output
- From: phbrf at t-online.de (Peter Breitfeld)
- Date: Fri, 12 Feb 1999 18:40:20 -0500 (EST)
- Organization: das ist ein breites Feld ...
- References: <79e86b$96l@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Peter Breitfeld <phbrf at t-online.de> schrieb: > In my "personal package" I have the function Betrag[x_]:=Sqrt[x.x] > > Now I want that in cases where this function can't be evaluated, the > output in StandardForm is displayes as |x|. (left and right > BracketingBar, these symbols you get when entering `ESC l| ESC' and > `ESC r| ESC'. > After having a got such a lot of different approaches, I made output-formats for Abs[] as well. I now use: ----------------------[--o- snip -o--] Scan[Unprotect,{Power,Dot}] Format[Sqrt[Dot[x_,x_]], StandardForm]:= \[LeftDoubleBracketingBar]x\[RightDoubleBracketingBar] /; Not[VectorQ[x]&&(Or @@ Map[NumericQ,x])] Scan[Protect,{Power,Dot}] Betrag[x_]:=Sqrt[x.x] MakeExpression[RowBox[{ "\[LeftDoubleBracketingBar]",x_,"\[RightDoubleBracketingBar]"}], StandardForm]:= MakeExpression[RowBox[{"Sqrt","[",x,".",x,"]"}],StandardForm] Unprotect[Abs] Format[Abs[x_], StandardForm]:= \[LeftBracketingBar]x\[RightBracketingBar] /; Not[NumberQ[x]] Protect[Abs] MakeExpression[RowBox[{ "\[LeftBracketingBar]",x_,"\[RightBracketingBar]"}], StandardForm]:= MakeExpression[RowBox[{"Abs","[",x,"]"}],StandardForm] ----------------------[--o- snip -o--] there is one point I couldn't solve yet: In: Betrag[v] Out: ||v|| In: Abs[x] Out: |x| and In: ||v||/.v->{1,1,1} Out: Sqrt[2+a^2] all very fine But if I enter In: Betrag[v] Abs[x] and then choose Cell/ConvertTo/StandardForm I get Betrag[v] |x| wheras Betrag[v]//StandardForm gives ||v|| What did I miss? es gruesst Peter -- =--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--=--= Peter Breitfeld, Saulgau, Germany (PGP public key: 08548045)