编写 Makefile 作为 CTAN 包的一部分有哪些规则?
我想在我编写的包中包含一个 Makefile。该包的格式是嵌入了.dtx
其.ins
文件的格式。
当我运行 时make
,它会生成所有包文件,包括.tex
示例。当然,它还会编译格式的文档PDF
。
当我运行时make all
,它的行为与 make 相同,但所有.tex
示例都经过编译。
make clean
.cls
删除除和文档之外的所有生成的文件。make distclean
也删除这些文件。
1) 分发带有 Makefile 的软件包时出现此行为有问题?
这个 Makefile 包括 UNIX 语法和 UNIX 命令,特别是我有指向 /bin/sh 的 shell 变量,这是默认的:
SHELL = /bin/sh
我也确实使用for
命令来编译所有内容并grep
从文件sed
中提取版本号。.dtx
2) 使用这样的 Makefile 分发软件包可以吗?MiKTeX 用户将无法编译任何东西。或者...Makefile
对 Windows 用户来说,它总是没用的?
3) 使用它来编译所有内容有多安全latexmk
?这个 Perl 脚本存在于 MiKTeX 基本安装中?我正在运行 Debian 并且已经安装了它,但我不知道它是否是 LaTeX 发行版上的通用软件包……
makeindex
4) 放置行(用于更改历史记录和索引)的最佳位置是哪里?在Makefile
两次pdflatex
(或latexmk
...)运行之间还是在.ins
文件内部?
如果我让它latexmk
运行makeindex
,结果PDF
将在索引上重叠条目,并且不会出现任何更改历史记录(不会.gls
创建任何文件),因此我必须makeindex
手动在上Makefile
或里面放置线条.dtx
(在里面嵌入.ins
)。