I know this is sort of off-topic and may get closed for being opinion-based, but I haven't found what I need by browsing the LaTeX project site so maybe, before the question gets closed, I can get a pointer or two or a link or two.
I've been using LaTeX for quite a while at a pretty basic level. Now I'm getting more proficient and am slowly learning things as I write and format a book. But I feel like there is a gap in the references that I can't fill.
There are lots of materials for beginners. How to do basic formatting, make lists, basic bibliography and so on -- some of these have been enormously helpful to me while learning. Then there is a whole level beyond me -- where people program things, make their own environments, make up new stuff of various kinds.
e.g. I found very helpful code for flexlabelled in the documentation for memoir and modified it very slightly to get:
\entry{word}{pronunciation}
\begin{flexlabelled}{sclabel}{0pt}{0.5em}{0.5em}{*}{\leftmargin}
STUFF
\end{flexlablelled}
But now I am thinking it would be good to have the pronunciation in a different size. I know I could ask that here and some helpful person would answer, but I want to know how I would learn to do that without help.
Or, how do I know what commands can only go in the preamble, what can only go in the main body and what can go in either place?
In the documentation for memoir it says
More major changes to a description-like list will probably involve writing the code for a new environment.
OK, I can recognize that no package is going to do everything I want (although memoir does a LOT) but ... How does one learn to "write code for a new environment"?
But ... I don't know how to learn that. I also don't know how to figure out what goes in square brackets, what goes in braces or what needs neither.
EDIT in response to comments.
What I know: I know how to use LaTeX to write fairly straightforward documents. I know (usually) how to find a good package. I know how to do "normal" things that are covered in books such as "More math into LaTeX" or "Guide to LaTeX".
What I want to learn: e.g. If I want something formatted in ways that need a new environment, how do I do that? How do you know what goes in the preamble vs. main body? How do you know what goes in braces, brackets, parentheses or doesn't need either?
Maybe what I want doesn't exist in a book.
\section{}
command, for example (naive user level), is very different to understand how it works behind the scenes, using many others commands (programmer level). If you really want to pass to this level, start learning the basic commands (TeX primitives) in which all the others commands are based. Only then think about latex 3, lua language, etc. But if you understand that LaTeX is a macro language and\newcommand
is great, one can be really creative without this steep learning curve.\entry
defined to be that flexlabelled environment? I feel like your question could be summarized as "How do\newcommand
and\newenvironment
work?" Your question is a lot of opinion-based "how do I learn all of LaTeX", but there is a nugget of "how do I create new commands and environments" that might be answerable. But I'm having trouble understanding what you already know, and what you don't.