我正在编写一个类文件,使用了很多常量(长度、颜色、字符串……),为了简洁起见,我想把它们从文件中取出来cls
。我试过了
\ProvidesExplClass{textbook}{2015/05/23}{0.1}{A class for typesetting textbooks}
\input{textbook_consts}
textbook_consts.tex
目录中的常量textbook.cls
。当然它不起作用:在使用\documentclass{textbook}
文件时尝试在中输入文件它是目录。
确切地说,开发目录的结构是
.
├── test
│ ├── test.tex
│ └── textbook.cls -> ../textbook.cls
├── textbook.cls
└── textbook_consts.tex
test.tex
是我使用的地方\documentclass{textbook}
。
有什么办法可以做我想做的事吗?
答案1
为了测试目的,您可以简单地创建一个符号链接,就像textbook_consts.tex
您对类文件所做的那样。
在上层,你可以保留类文件和定义文件的多个版本,只要你有指向最新版本(或你想要测试的版本)的符号链接。所以你可以
├── test
│ ├── test.tex
│ ├── textbook.cls -> ../textbook.cls
│ └── textbook_consts.tex -> ../textbook_consts.tex
├── textbook.cls -> textbook-0.02.cls
├── textbook_consts.tex -> textbook_consts-0.02.tex
├── textbook-0.01.cls
├── textbook_consts-0.01.tex
├── textbook-0.02.cls
└── textbook_consts-0.02.tex
但是,最遵循的传统是给.def
这些辅助文件加上下划线。不过,我会避免使用下划线,因为至少有一个包会更改其类别代码。不过,这没什么大不了的,因为通常包的加载时间比类文件晚。
当你完成开发后,你可以将相关文件放在textbook
主树之一下的目录中:
<TREE>/tex/latex/textbook/
<TREE>
对于 TeX Live 来说,可以有三层含义:
/usr/local/texlive/2015/texmf-dist
/usr/local/texlive/texmf-local
~/texmf
指主树、本地树和个人树。
不建议将非分布式文件添加到主树,因为升级后您将失去对它们的引用。将文件添加到本地树需要运行mktexlsr
(并且文件将可供您机器的所有用户使用),而将文件添加到个人树则不需要运行。
注意,个人树是~/Library/texmf
使用 MacTeX 时使用的。
在运行 MiKTeX 的 Windows 机器上,个人树和本地树默认不可用(参见在 MiKTeX 中创建本地 texmf 树)。