Как написать макрос, управляемый параметрами?

Как написать макрос, управляемый параметрами?

Конкретный вопрос звучит следующим образом:

Надеюсь, я смогу определить макрос, который может переключаться на разные гарнитуры. Мы предполагаем, что этот макрос называется \myfonts, поэтому, если я наберу {\myfonts throughout his life, Einstein published hundreds of books and articles.}, гарнитура будет по умолчанию Minion Pro. Но если я передам параметр этому макросу, например, {\myfonts{palatino} ...}, он станет Palatinoгарнитурой.

Сейчас я не имею ни малейшего представления об этом вопросе.

В LaTeX, если вы напишете , то по умолчанию \documentclass{article}будет использоваться a4paperи , но если вы наберете , то оно будет изменено на и . Мне вот интересно: как этого добиться?10pt\documentclass[b5paper,11pt]{article}b5paper11pt

решение1

введите описание изображения здесь

с использованием []аргумента-разделителя и шрифтов в обычном режиме по умолчанию:

\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

Связанный контент