Something worth mentioning about the user manual project is that I wouldn’t necessarily refer to it as a LaTeX-only project. There are a few scattered LaTeX commands in the source, but they are all marked with a style and could be stripped out in a format meant for another target. The source itself would be more accurately described as Markdown, which is itself capable of being turned into almost every file type you would ever need, with Pandoc.
What I’m getting at is, one wouldn’t need to be at all savvy in LaTeX to use the manual as a reference for what the software can do. I’ve seen people use it to create ePub files and other things for their own purposes.
@ptram : Apparently, Replacements could be what I’m looking for, for things like commands or parameter names to be translated into different languages, or adapted to different products.
Yes, I would say Replacements can be thought of as global, but they are a bit conditional as well, in the sense that you can put them into a Format and thus make them evaluate to specific strings depending on which format you compile with. The result is still more like a constant than a variable for the running of a compile job, but if you need edition-specific variations, that’s where I’d put them.
To again use the user manual as an example, there are many placeholders in the LaTeX compile format that evaluate to LaTeX syntax. If I wanted to create an ePub, I would go through that whole list and turn them into HTML equivalents.
Project replacements, the ones in the tab on the right hand side of the compile overview area, are more truly global.
In combination with these two approaches, and the custom metadata approach for outline-specific output, I’d say most of the things one would need of this concept are addressed in Scrivener. And for plain-text and Markdown outputs, where one can add a post-compile script into the process, you can really go into conditional variables too. That’s also something I do with the manual, particularly with keyboard shortcuts, where sometimes I just want to say “Shift key” but other times I want to use the keycap symbol for Shift. Or sometimes I may want to use small-caps for abbreviations like “PDF”, but not if the abbreviation is found in a heading (where “pdf” looks silly in the sidebar ToC). So, if you need that kind of conditional stuff, you won’t find it anywhere in Scrivener’s interface save for the hook to enabling further scripting.