Como escrever uma macro baseada em parâmetros?

Como escrever uma macro baseada em parâmetros?

Uma pergunta específica é a seguinte:

Espero poder definir uma macro que possa mudar para diferentes fontes. Assumimos que esta macro é nomeada \myfonts, então, se eu digitar {\myfonts throughout his life, Einstein published hundreds of books and articles.}, o tipo de letra será o padrão Minion Pro. Mas se eu passar um parâmetro para essa macro, por exemplo, {\myfonts{palatino} ...}ela se tornará a Palatinofonte.

Não tenho ideia dessa pergunta agora.

No LaTeX, se você disser \documentclass{article}, ele usará a4paperand 10ptcomo padrão, mas se você digitar \documentclass[b5paper,11pt]{article}, será alterado para b5paperand 11pt. Estou curioso sobre isso: como posso conseguir isso?

Responder1

insira a descrição da imagem aqui

usando []argumento delimitado e fontes simples por padrão:

\def\myfonts{\futurelet\tmp\xmyfonts}
\def\xmyfonts{\ifx\tmp[\expandafter\argmyfonts\else\noargmyfonts\fi}
\def\argmyfonts[#1]{\csname myfonts#1\endcsname}
\def\noargmyfonts{\rm}
\def\myfontsa{\tt}
\def\myfontsb{\it}


{\myfonts abc de}
{\myfonts[a] abc de}
{\myfonts[b] abc de}

\bye

informação relacionada