¿Cómo escribir una macro basada en parámetros?

¿Cómo escribir una macro basada en parámetros?

Una pregunta específica es la siguiente:

Espero poder definir una macro que pueda cambiar a diferentes tipos de letra. Suponemos que esta macro tiene nombre \myfonts, por lo que, si escribo {\myfonts throughout his life, Einstein published hundreds of books and articles.}, el tipo de letra será el predeterminado Minion Pro. Pero si paso un parámetro a esa macro, por ejemplo, {\myfonts{palatino} ...}se convertirá en el Palatinotipo de letra.

No tengo idea de esta pregunta ahora.

En LaTeX, si dice \documentclass{article}, tomará a4papery 10ptcomo valor predeterminado, pero si escribe \documentclass[b5paper,11pt]{article}, se cambiará a b5papery 11pt. Tengo curiosidad sobre esto: ¿Cómo puedo lograrlo?

Respuesta1

ingrese la descripción de la imagen aquí

usando []argumentos delimitados y las fuentes simples por defecto:

\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

información relacionada