I know about \newcommand[<arg_num>]{#1 ... #n} to define a simple macro with up to nine arguments. (More if you link multiple newcommands together)
I recently started to look at xparse for some additional features such as multiple optional arguments, as well as keyval -- which works as I want it to, as long as each option is just one keyword.
What I would ultimately like to have is a way to address certain options by name and assign values and strings like so:
\MyCommand[
opt1="this is val1",
opt4="this is val4",
optN="this is valN"
]{argument1}
Or maybe even:
\MyCommand{
arg1="this is val1",
arg4="this is val4",
argN="this is valN"
}
(I know that "this is val" is not LaTeX syntax, maybe {this is val}?)
I am still fairly new to LaTeX, and I am not sure how to properly search for this. So I hope someone here can point me in the right direction.



xparse, I thought you were looking for a LaTeX3-ish way of parsing the key/value mapping. Anyway, l3keys from interface3.pdf is very convenient and powerful in my opinion; it's probably a good idea to read its documentation, or at least skim through it, when you have some time. :) [starts p. 166 in the current version] – frougon Jun 22 '18 at 07:26