具体问题如下:
我希望可以定义一个可以切换不同字体的宏。我们假设这个宏名为
\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}
,它将更改为b5paper
和11pt
。我对此很好奇:我该如何实现呢?
答案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