4

I'd like to be able to understand and write mathematica code that is able to customize in some way the output of mathematica in notebooks, for example. I believe I need to learn the so called mathematica "box language".

I've been trying to search for references of these themes with little success. So far, the only book I found is this wolfram mathematica tutorial.

I also found a lot of MathematicaStack discussion about Boxes, Defer, Interpretation, Format and so on.

Where are the references that tell you what is a box in the mathematica sense (and what is and how to use the mathematica "box language" so to speak)?

I'm confused, and definitely need help and guidance. I'm a beginner in mathematica with good procedural programming skills. Most of the time I am amazed of the few pieces of code I manage to understand. As of now, I'm able do solve a few simple problems in simple notebooks with little or no programming at all.

I'd like to improve my skills to be able to customize mathematica to my needs, for example, manipulate de output forms of derivatives, use/create index notation, deal with non-commutativity in quantum algebra, use/customize tensor manipulation packages for differential geometry applications etc. And I'd like to encapsulate my simple solutions in packages. For exemple, to be able to understand this custom output code for derivatives.

When I start to fill the gaps in my mathematica knowledge to solve my problems, I become overwhelmed with lots of new concepts. Thats the point where I'd like help and guidance.

What are some good references to learn output manipulation with box language, for example?

What would be some good references to study in order to be able to read and write mathematica code as this? What are the key concepts to learn and practice?

Thank you for having the patience to read all this. Special thanks for those that could and do help minimize my confusion and overwhelm with mathematica language.

Lambda
  • 41
  • 3
  • 1
    I've been using mma for several years now..and I've yet to hear/see 'box language' used in what you're thinking about... – DrMrstheMonarch Jul 05 '22 at 22:45
  • 2
    I'd bet at least half of what I've learned has been by examining the cell expression (see menu Cell > Show Expression) of various input, output and text cells that I've created or can be found in tutorials in the documentation. One can also examine the output of ToBoxes and MakeBoxes. And there are a few subtutorials on boxes and the box language in this tutorial: http://reference.wolfram.com/language/tutorial/TextualInputAndOutput.html – Michael E2 Jul 06 '22 at 00:03
  • Thank you @DrMrstheMonarch. Box language is just one example of a mathematica subject that can be a helpful tool, but that is difficult to find introductory references for. At least is difficult for me. I have also difficulties with other subjects. As of now, I love mathematica when I can find my way around. But hate it when I start going in circles while looking for help about commands or more detailed references. The sort of code I sometimes see here in StackExchange in some answers looks pretty advanced to me and way more sofisticated than mathematica's own help that ships with it. – Lambda Jul 06 '22 at 02:23
  • Thank you @MichaelE2, for the reference tutorial on output and boxes, very useful. The sort of thing I usually look for when in trouble.

    And certainly, programming is a lot of looking under the hood of systems. And I do a lot of that when trying to solve the little issues that come about while programming or dealing with computer systems.

    However, in order to understand the nuts and bolts the goes on under the hood, one needs some foundational background. That is the core of the help and guidance I'm looking for to flatten my learning curve a bit.

    – Lambda Jul 06 '22 at 02:36
  • 1
    Here are some videos, mainly presentations from Wolfram Technology Conferences, on "typesetting": https://www.wolfram.com/broadcast/s?sx=typesetting&c=104&disp=list&v=3550 – Michael E2 Jul 06 '22 at 02:55

0 Answers0