Dear Community members,
I am playing with the idea of writing a textbook, and I am asking for advice of those who have done such work. The question is about the technical side.
I have seen a couple of posts with the discussion of a book. They were, however, discussing books of a few sorts.
The first class consisted of books on scientific subjects (such as mathematics, some area of physics or alike), where the functionality of Mathematica was not the principal thing. Such authors were mainly concerned with a comfortable cross-referencing, captions, inserting images and mathematical expressions, navigation and alike.
There were also educational textbooks in which the Mathematica functionality has been mainly used to create beautiful interactive demonstrations.
There is also a class of books teaching various aspects of Mathematica: of how to use it.
I would like to make a symbiosis. I imagine it as a textbook on mathematics useful for physicists and engineers, containing the necessary theory including examples from physics and chemistry, where appropriate. As such, it is aimed to teach practice-oriented mathematics. I would like it to also provide explanations of Mathematica functions related to each mathematical subject discussed with examples and exercises. I would love it explaining how to make all the necessary calculations with Mathematica directly on-screen without passing to the paper as well as how to create demonstrations on one's own.
On the one hand, I have seen posts stating that writing a book within Mathematica is not the best idea, while Latex is much better.
On the other hand, the task I described above requires posting code, and its output, and best of all the possibility to evaluate the code, and eventually, to modify it. This seems to be natural to do within Mathematica.
Finally, the book may be published as a notebook. Alternatively, it can be on the paper, but then there should be a way to differently indicate inputs, outputs and alike.
Let us return now to the question: What is your opinion on the best technical approach for such a task?