如何编写一个 LaTeX 包,不仅捆绑 .sty 和 .cls 文件,还捆绑一些 .pdf 或 .eps 格式的徽标?

如何编写一个 LaTeX 包,不仅捆绑 .sty 和 .cls 文件,还捆绑一些 .pdf 或 .eps 格式的徽标?

我想要制作一个包含以下子目录的 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/resourcestex/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树中。

相关内容