我想要制作一个包含以下子目录的 LaTeX 包:
tex/latex/common
(和信件.tex
共享的公共文件beamer
)tex/latex/resources
(大量带有图形资源的 pdf 和 eps 文件)tex/latex/mybeamer
(包含 5 个文件的自定义 beamer 主题.sty
)tex/latex/myletter
(信函.cls
模板文件)
我想将这些文件打包成一个 LaTeX 包,以便用户可以轻松安装。我阅读了有关.ins
和.dtx
文件的信息,并且知道如何打包 .sty 和.cls
文件,但是额外的图形(包含多个 PDF 和.eps
文件的资源文件夹)怎么办?
答案1
TDS 结构
假设你的 LaTeX 包名为foobar
。那么根据 TDS (TeX 文件的目录结构)文件将存放在以下目录下:
TDS:tex/latex/foobar/
(适用于 TeX 文件:.tex、.sty、图像)TDS:doc/latex/foobar/
(用于文档文件)TDS:source/latex/foobar/
(适用于源文件 .dtx、.ins)
进一步的子目录由您决定。如果文件很少,我会避免使用它们。如果文件很多,那么进一步的目录级别可能有助于组织文件。
例子:
TDS:doc/latex/foobar/foobar.pdf
TDS:source/latex/foobar/foobar.dtx
TDS:source/latex/foobar/foobar.ins
- 文件中未提供的其他源文件
.dtx
可以通过以下方式给出:
TDS:source/latex/foobar/
或
TDS:source/latex/foobar/resources/
TDS:tex/latex/foobar/foobar.cls
TDS:tex/latex/foobar/foobar-common.sty
(字母类别和投影仪模板的 TeX 文件)TDS:tex/latex/foobar/<foobar beamer file 1>
,,
TDS:tex/latex/foobar/<foobar beamer file 2>
...
,
TDS:tex/latex/foobar/<foobar beamer file 5>
TDS:tex/latex/foobar/resources/<.eps/.pdf image files>
如果您另外提供了一个README
文件,那么我会准确使用这个名称(AFAIK CTAN 约定)并将其放在或doc
子树中source
,具体取决于文件的内容。
分布形式
对于发行版,我会将这些文件(包括目录结构)放在一个.zip
文件中foobar.tds.zip
(没有TDS:
/temxf
根目录)。然后安装对于用户来说就相当简单了,用户可以通过解压轻松安装。Linux/TeX Live 中默认主树的安装示例:
$ unzip foobar.tds.zip -d ~/texmf/
如果软件包安装在系统范围的本地texmf
树中,则需要更新文件名数据库(在根目录下):
$ texhash
或者
$ mktexlsr
加拿大运输安全局
如果您想在那里提供 CTAN 表格,建议如下:
CTAN:macros/latex/foobar/foobar.dtx
CTAN:macros/latex/foobar/foobar.ins
CTAN:macros/latex/foobar/foobar.pdf
(文档)- (
CTAN:macros/latex/foobar/README
) CTAN:macros/latex/foobar/resources.zip
(或解压到目录中resources/
)CTAN:install/macros/latex/foobar.tds.zip
答案2
在 TeX 目录结构 (TDS) 中,目录名称tex/latex
是全局共享资源,因此您不需要取太多名称,而要选择对您的软件包唯一的名称。因此tex/latex/resources
和tex/latex/common
不是好名字(如果您尝试将软件包包含在 texlive 等发行版中,我怀疑它们不会被接受)。
beamer
并且letter
两者共享相同的 tex 文件输入路径,因此无需分离 beamer 和 letter 文件。
答案3
这里是TeX 目录结构方式。为您的包选择一个名称。
- 将可以以任何格式使用的 TeX 文件放入
tex/generic/bundlename
- 将类和包等 LaTeX 文件放入
tex/latex/bundlename
- 将图形资源放入
tex/generic/images/bundlename
- 将文档放入
doc/latex/bundlename
- 将文档源放入
source/latex/bundlename
如果您查看内部,例如分发版,您会看到很多正在使用的内容pgf
。然后安装过程只是将cp -R
目录放入texmf
树中。