Need to define a new special character and save it for further use?

Posted 9 years ago
4474 Views
|
3 Replies
|
7 Total Likes
|
 Hi,More concrete, I need to define a kind of "partial function arrow" i.e. a circle ([EmptyCircle] for example) superimposed over an arrow ([LongRightArrow] for example) and I'd like to save it such that to easily use it anytime.Thank you !
3 Replies
Sort By:
Posted 9 years ago
 Thank you very much Jesse ! and Thank you very much David !All the best to both of you!
Posted 9 years ago
 Picking up on Jesse's excellent answer, here is a way that you can get an evaluable expression and not just a character. (With just a character you may have trouble using it in Input expressions.)Define a PartialFunction expression: PartialFunction::usage = "PartialFunction[x,y] displays as a function with a partial function notation."; Then define a MakeBoxes for it: MakeBoxes[PartialFunction[x_, y_], form : StandardForm | TraditionalForm] := InterpretationBox[#1, #2] & @@ {RowBox[{MakeBoxes[x, form], MakeBoxes[ Style[Overlay[{"\[EmptyCircle]", "\[LongRightArrow]"}, Alignment -> Center], ShowStringCharacters -> False], form], MakeBoxes[y, form]}], PartialFunction[x, y]} Now evaluate and also look at the full form. PartialFunction[X, Y] % // FullForm This can be copied and pasted. And you can actually get some evaluable expressions using Rule programming. Here's my attempt at the square root as a function of the positive integers. f = PartialFunction[{x, x \[Element] Integers && NonNegative[x]}, ConditionalExpression[Sqrt[x], Sqrt[x] \[Element] Integers]] f /. x -> 4 f /. x -> 3 f /. x -> \[Pi] One could probably do better as a way of notation, but I'm not up to it.
Posted 9 years ago
 I'm afraid you can't create a special character of the form \[PartialFunctionArrow], (that would require changing the Mathematica font) but you can define a constant at startup that contains that character.Here's my super-beautiful partial function arrow: PartialFunctionArrow=Overlay[{"\[EmptyCircle]", "\[LongRightArrow]"}, Alignment -> Center]; Put the following in \$UserBaseDirectory/Autoload/Custom Characters/init.m: (create any nonexistent folders in that path) (** User Mathematica initialization file **) PartialFunctionArrow=Overlay[{"\[EmptyCircle]", "\[LongRightArrow]"}, Alignment -> Center]; Now when you start Mathematica, the symbol PartialFunctionArrow will be your special character. You can't have it autoinsert in text like other special characters, but at least it's there.
Community posts can be styled and formatted using the Markdown syntax.