用于配置目录位置的宏

用于配置目录位置的宏

我正在尝试了解类文件是如何工作的。在我使用的示例中,它来自很棒的简历模板文件。在.cls文件中,有一部分定义了一个宏,用于设置字体的目录。

\newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}}

我想具体了解的是,\@fontdir在这种情况下它做什么?它看起来像一个原始命令,但我在任何文档中都找不到它。

答案1

它不执行任何操作,您显示的命令只是将提供的参数保存在宏中\@fontdir,该参数只是一个任意名称,大概位于所使用的包代码的其他地方。

这种习惯用法在乳胶中很常见,例如它与标准类中的完全相同\title(除了默认值)

如果你走的话

\title{hello world}

那么就可以

\def\@title{hello world}

保存该字符串,除非某个宏(\maketitle在本例中)\@title在某处使用,否则什么也不会发生。

所以你可以去这里

\fontdir{a/b/c}

但这和去

\renewcommand\@fontdir{a/b/c}

\@fontdir并且除非使用,否则不执行任何操作。

查看类源,它稍后会

\newfontfamily\FA[Path=\@fontdir]{FontAwesome}

这意味着如果您在非标准位置安装了匹配的字体,您可以使用\fontdir保存该位置的命令记录其所在的文件夹\@fontdir,并将在上面的字体加载命令中使用它。因此,它只是特定于此类加载的这一种字体,而不是通用机制。

相关内容