.def 文件有什么作用?

.def 文件有什么作用?

下载新软件包并运行时

tex packagename.ins

你总是会得到一堆文件,包括该.def文件。文件中也提到了它.sty。显然,这是用于某事的定义。

但是它到底是用来做什么的呢?在共享 LaTeX 项目时可以省略它吗?

答案1

通常带有扩展名的文件.def会收集一长串类似的定义,这会使.sty文件变得很长且难以阅读,或者可能与其他包共享。

如果tex packagename.ins创建一个.def文件,那么这个包结构的一部分,不能省略。

典型示例是<encoding>enc.def如下t1enc.def加载的文件fontenc

\ProvidesFile{t1enc.def}
 [2005/09/27 v1.99g
         Standard LaTeX file]
\DeclareFontEncoding{T1}{}{}
\DeclareTextAccent{\`}{T1}{0}
\DeclareTextAccent{\'}{T1}{1}
\DeclareTextAccent{\^}{T1}{2}
\DeclareTextAccent{\~}{T1}{3}
<...>
\DeclareTextSymbol{\NG}{T1}{141}
\DeclareTextSymbol{\OE}{T1}{215}
\DeclareTextSymbol{\O}{T1}{216}
\DeclareTextSymbol{\SS}{T1}{223}
\DeclareTextSymbol{\TH}{T1}{222}
\DeclareTextSymbol{\ae}{T1}{230}
\DeclareTextSymbol{\dh}{T1}{240}
\DeclareTextSymbol{\dj}{T1}{158}
\DeclareTextSymbol{\guillemotleft}{T1}{19}
\DeclareTextSymbol{\guillemotright}{T1}{20}
<...>

将长列表放在单独的文件中可以使其更易于维护和搜索。同样,inputenc使用.def文件来列出输入字符与其连接的输出之间的配对列表。

一些其他软件包使用一些.def文件来存放“上下文相关”代码。例如graphics/graphicxhyperref将引擎相关代码(用于latex/ dvilualatexpdflatex/lualatexxelatex)放在.def诸如pdftex.defand dvips.def( graphics) 或hpdftex.defand hdvips.def( hyperref) 之类的文件中。

其他包,特别是或bidi,使用文件来加载代码,具体取决于文档中加载的包。xepersianminitoc.def

.sto在某些情况下,可能最好使用诸如(“样式选项”,模仿标准类所使用的)之类的扩展.clo,但传统有其影响。只要名称是唯一的,使用的扩展就无关紧要。

相关内容