We can control the page width used by InputForm by applying SetOptions to "stdout":
SetOptions["stdout", PageWidth -> 10];
Range[5] // InputForm
{1, 2, 3,
4, 5}
But addition of the line
SetOptions["stdout", PageWidth -> 125];
to the Kernel "init.m" file has no effect. How is it possible to change the default page width used by InputForm?
Answer
What I think is happening is that the SetOptions statement in init.m is executed during kernel initialization as expected, however when the notebook window is opened, the front-end sets PageWidth to be WindowWidth. Furthermore, the kernel value does get changed accordingly whenever the window is resized.
This being the front-end, I would not be surprised if there are other/better ways, but what seemed to work was
SetOptions[$FrontEnd, PrivateEvaluationOptions -> {"OutputFormPageWidth" -> 125}]
While it was not the culprit in this question, I would still mention that something similar may happen in a console kernel session, where PageWidth can be reset by the terminal input library to be the width of the console at startup time. This can be avoided by either turning the terminal library off or using a scheduled task in init.m, e.g.
task := SetOptions["stdout", PageWidth -> 125];
RunScheduledTask[task, {1}]
so that it runs after the terminal library is loaded.
Comments
Post a Comment