From: Leo Alekseyev on
Dear Mathgroup,

I am trying to create a few custom InputAutoReplacements that would
apply to all input cells by default. I am trying to follow John
Fultz's instructions on
http://forums.wolfram.com/mathgroup/archive/2000/Oct/msg00157.html,
but running into difficulties: the style for the input cell seems to
be defined by Core.nb, and when I select the "local definitions for
style "Input"" cell and go to the options inspector, the
InputAutoReplacements option is specified as {ParentsList}; I can't
figure out where the usual InputAutoReplacements rules (e.g. -> goes
to \[Rule]) are stored so that I could append my own. I'd appreciate
any help with this!

Thanks,
--Leo

From: John Fultz on
On Fri, 20 Nov 2009 06:39:39 -0500 (EST), Leo Alekseyev wrote:
> Dear Mathgroup,
>
> I am trying to create a few custom InputAutoReplacements that would
> apply to all input cells by default. I am trying to follow John
> Fultz's instructions on
> http://forums.wolfram.com/mathgroup/archive/2000/Oct/msg00157.html,
> but running into difficulties: the style for the input cell seems to
> be defined by Core.nb, and when I select the "local definitions for
> style "Input"" cell and go to the options inspector, the
> InputAutoReplacements option is specified as {ParentsList}; I can't
> figure out where the usual InputAutoReplacements rules (e.g. -> goes
> to \[Rule]) are stored so that I could append my own. I'd appreciate
> any help with this!
>
> Thanks,
> --Leo

This particular option isn't as easy to figure out or set as I'd like. Two
clarifications...

ParentList represents the ones which have been inherited from the notebook level
(which, in this case, actually refers to replacements that are set globally
throughout the system).

And the settings for "->", ":>", etc., are actually set in the StandardForm
style, not the Input style.

So, to add the "abc"->"123' replacement, you'd add a StandardForm style cell to
your stylesheet as follows...

Cell[StyleData["StandardForm"],
InputAutoReplacements->{
"abc" -> "123", "->" -> "\[Rule]", ":>" -> "\[RuleDelayed]", "<=" ->
"\[LessEqual]", ">=" -> "\[GreaterEqual]", "!=" -> "\[NotEqual]",
"==" -> "\[Equal]", ParentList}]


Sincerely,

John Fultz
jfultz(a)wolfram.com
User Interface Group
Wolfram Research, Inc.


From: Leo Alekseyev on
Thanks for the clarification. Originally I assumed your cell had to
replace the original one exactly where it appeared in the Core.nb
template -- which made the procedure needlessly complicated.

On Sun, Nov 22, 2009 at 6:40 PM, John Fultz <jfultz(a)wolfram.com> wrote:
> Format->Edit Stylesheet...
>
> Paste the cell I included. For a single notebook, you're done.
>
> Click Install in the toolbar. Choose a filename and install it. That name will
> now show up in the Stylesheets menu. Choose that stylesheet and it works.
>
> Or, choose the name of an existing stylesheet (like Default.nb). This will,
> unfortunately require a restart of M-- to see it, but now it works for all
> notebooks using that stylesheet.
>
> These are much better than editing a stylesheet inside of the installation
> directory, a procedure I don't encourage.
>
> Sincerely,
>
> John Fultz
> jfultz(a)wolfram.com
> User Interface Group
> Wolfram Research, Inc.
>
>
> On Sun, 22 Nov 2009 06:23:16 -0500, Leo Alekseyev wrote:
>> John, much thanks for the quick reply. Allow me to elaborate, for the
>> benefits of whoever might be interested in setting up replacement
>> aliases (I think they are very handy!)
>>
>> First, back up the existing Core.nb.
>> Then, open the options inspector, select "Core.nb" from the first
>> drop-down box, and under Notebook Options -> File Options select
>> "Editable" and Saveable" (in that order). Then in Core.nb expand
>> the last item, "Styles for Mathematica System-specific Elements" and
>> then expand "FormatType Styles". Find local definitions for
>> StandardForm .
>>
>> At this point you could try fiddling with InputAutoReplacements via
>> the options inspector , but this results in an error (at least for
>> me). So what you need to do is open Core.nb in a text editor, search
>> for the line Cell[StyleData["StandardForm"], and add custom
>> replacement (as per John's instruction). Alternatively, select the
>> cell, go to Edit->Copy As cell expression, paste it in a text editor
>> somewhere, make the necessary modifications, paste the cell expression
>> back (interpreting it) and delete the old cell. You are done!
>>
>> I hope this procedure is made easier in future versions :)
>>
>>
>>> This particular option isn't as easy to figure out or set as I'd like.
>>> Two
>>> clarifications...
>>>
>>> ParentList represents the ones which have been inherited from the
>>> notebook level
>>> (which, in this case, actually refers to replacements that are set
>>> globally
>>> throughout the system).
>>>
>>> And the settings for "->", ":>", etc., are actually set in the
>>> StandardForm
>>> style, not the Input style.
>>>
>>> So, to add the "abc"->"123' replacement, you'd add a StandardForm style
>>> cell to
>>> your stylesheet as follows...
>>>
>>> Cell[StyleData["StandardForm"],
>>> InputAutoReplacements->{
>>> "abc" -> "123", "->" -> "\[Rule]", ":>" -> "\[RuleDelayed]", "<=" ->
>>> "\[LessEqual]", ">=" -> "\[GreaterEqual]", "!=" -> "\[NotEqual]"=
,
>>> "==" -> "\[Equal]", ParentList}]
>>>
>>>
>>> Sincerely,
>>>
>>> John Fultz
>>> jfultz(a)wolfram.com
>>> User Interface Group
>>> Wolfram Research, Inc.
>
>
>
>

From: John Fultz on
Format->Edit Stylesheet...

Paste the cell I included. For a single notebook, you're done.

Click Install in the toolbar. Choose a filename and install it. That name will
now show up in the Stylesheets menu. Choose that stylesheet and it works.

Or, choose the name of an existing stylesheet (like Default.nb). This will,
unfortunately require a restart of M-- to see it, but now it works for all
notebooks using that stylesheet.

These are much better than editing a stylesheet inside of the installation
directory, a procedure I don't encourage.

Sincerely,

John Fultz
jfultz(a)wolfram.com
User Interface Group
Wolfram Research, Inc.


On Sun, 22 Nov 2009 06:23:16 -0500, Leo Alekseyev wrote:
> John, much thanks for the quick reply. Allow me to elaborate, for the
> benefits of whoever might be interested in setting up replacement
> aliases (I think they are very handy!)
>
> First, back up the existing Core.nb.
> Then, open the options inspector, select "Core.nb" from the first
> drop-down box, and under Notebook Options -> File Options select
> "Editable" and Saveable" (in that order). Then in Core.nb expand
> the last item, "Styles for Mathematica System-specific Elements" and
> then expand "FormatType Styles". Find local definitions for
> StandardForm .
>
> At this point you could try fiddling with InputAutoReplacements via
> the options inspector , but this results in an error (at least for
> me). So what you need to do is open Core.nb in a text editor, search
> for the line Cell[StyleData["StandardForm"], and add custom
> replacement (as per John's instruction). Alternatively, select the
> cell, go to Edit->Copy As cell expression, paste it in a text editor
> somewhere, make the necessary modifications, paste the cell expression
> back (interpreting it) and delete the old cell. You are done!
>
> I hope this procedure is made easier in future versions :)
>
>
>> This particular option isn't as easy to figure out or set as I'd like.
>> Two
>> clarifications...
>>
>> ParentList represents the ones which have been inherited from the
>> notebook level
>> (which, in this case, actually refers to replacements that are set
>> globally
>> throughout the system).
>>
>> And the settings for "->", ":>", etc., are actually set in the
>> StandardForm
>> style, not the Input style.
>>
>> So, to add the "abc"->"123' replacement, you'd add a StandardForm style
>> cell to
>> your stylesheet as follows...
>>
>> Cell[StyleData["StandardForm"],
>> InputAutoReplacements->{
>> "abc" -> "123", "->" -> "\[Rule]", ":>" -> "\[RuleDelayed]", "<=" ->
>> "\[LessEqual]", ">=" -> "\[GreaterEqual]", "!=" -> "\[NotEqual]",
>> "==" -> "\[Equal]", ParentList}]
>>
>>
>> Sincerely,
>>
>> John Fultz
>> jfultz(a)wolfram.com
>> User Interface Group
>> Wolfram Research, Inc.




From: Leo Alekseyev on
John, much thanks for the quick reply. Allow me to elaborate, for the
benefits of whoever might be interested in setting up replacement
aliases (I think they are very handy!)

First, back up the existing Core.nb.
Then, open the options inspector, select "Core.nb" from the first
drop-down box, and under Notebook Options -> File Options select
"Editable" and Saveable" (in that order). Then in Core.nb expand
the last item, "Styles for Mathematica System-specific Elements" and
then expand "FormatType Styles". Find local definitions for
StandardForm .

At this point you could try fiddling with InputAutoReplacements via
the options inspector , but this results in an error (at least for
me). So what you need to do is open Core.nb in a text editor, search
for the line Cell[StyleData["StandardForm"], and add custom
replacement (as per John's instruction). Alternatively, select the
cell, go to Edit->Copy As cell expression, paste it in a text editor
somewhere, make the necessary modifications, paste the cell expression
back (interpreting it) and delete the old cell. You are done!

I hope this procedure is made easier in future versions :)



> This particular option isn't as easy to figure out or set as I'd like. =
Two
> clarifications...
>
> ParentList represents the ones which have been inherited from the noteboo=
k level
> (which, in this case, actually refers to replacements that are set global=
ly
> throughout the system).
>
> And the settings for "->", ":>", etc., are actually set in the StandardFo=
rm
> style, not the Input style.
>
> So, to add the "abc"->"123' replacement, you'd add a StandardForm style c=
ell to
> your stylesheet as follows...
>
> Cell[StyleData["StandardForm"],
> InputAutoReplacements->{
> "abc" -> "123", "->" -> "\[Rule]", ":>" -> "\[RuleDelayed]", "<=" ->
> "\[LessEqual]", ">=" -> "\[GreaterEqual]", "!=" -> "\[NotEqual]",
> "==" -> "\[Equal]", ParentList}]
>
>
> Sincerely,
>
> John Fultz
> jfultz(a)wolfram.com
> User Interface Group
> Wolfram Research, Inc.
>
>