See pandoc: https://pandoc.org/
And a variety of intermediate or input text formats, where you can pick your preferred poison whether for book publishing, research papers, math papers, technical documentation, slides, etc.
Including the author's own djot: https://github.com/jgm/djot
EDIT:
Sibling reply suggests latex. OK, but then you're also learning latex.
It's very similar yet much fuller-featured than commonmark, with support for definition lists, footnotes, tables, several new kinds of inline formatting (insert, delete, highlight, superscript, subscript), math, smart punctuation, attributes that can be applied to any element, and generic containers for block-level, inline-level, and raw content. In addition, it resolves ambiguities in the commonmark spec and parses in linear time with no backtracking.
Further discussion lower in this thread: https://news.ycombinator.com/item?id=33553293
Quickstart for Markdown users: https://github.com/jgm/djot/blob/main/doc/quickstart-for-mar...
Some more in-depth examples, showing how Djot would be rendered into HTML: https://htmlpreview.github.io/?https://github.com/jgm/djot/b...
So does John McFarlane, the author of djot (and perhaps more widely known, Pandoc):
My own convention when writing Markdown is to use single underbar for _italic_ and doubled star for **bold**. Except of course on GlitchSoc (a Mastodon server), where underbars give underscores, and single or doubled stars are for italic / bold respectively.
But otherwise, if I see a singleton star or doubled underbar in my own writing, I'm pretty sure I've typoed something.
It's very similar to the Markdown syntax we all know and love/hate, but fixes many inconsistencies in the spec, and also makes it possible to parse a document in linear time, with no backtracking. It is also much fuller-featured than commonmark, with support for definition lists, footnotes, tables, several new kinds of inline formatting (insert, delete, highlight, superscript, subscript), math, smart punctuation, attributes that can be applied to any element, and generic containers for block-level, inline-level, and raw content.
Some examples, showing how Djot would be rendered into HTML: https://htmlpreview.github.io/?https://github.com/jgm/djot/b...