.sty 主题的相对路径 - 嵌套的 {color,inner,outer} 主题文件

.sty 主题的相对路径 - 嵌套的 {color,inner,outer} 主题文件

我一直在研究这个问题的详细答案:从头开始设计自定义 Beamer 主题并对路径有疑问。

我正在构建一个用于多个演示文稿的主题。我有一个目录结构(git repo),如下所示:

|- Presentations (top-dir)
|
|\_.git (and subfolders)
|
|\_Presentation1
|  |-presentation1.tex
|  \-presentation1.{aux,pdf} etc
|
|\_Presentation2
|  |-presentation2.tex
|  \-presentation2.{aux,pdf} etc
|
\_Theme
   |-beamerthememytheme.sty
   |-beamerinnerthememytheme.sty
   |-beamerouterthememytheme.sty
   \-beamercolorthememytheme.sty

我似乎有几个使用这个主题的选项:

  • 将所有 4 个文件符号链接到每个演示文稿。这会增加设置成本,使 git 处理变得复杂,但效果很好,不需要在主题文件中进行特殊处理

  • 放弃并在文件中\usetheme{mytheme}使用。这也适用于主 .tex 文件,但似乎要求我的主题文件现在读取而不是更简单的\usepackage{../Theme/beamerthememytheme}presentationN.tex\usepackage{../Theme/beamerinnerthememytheme}\useinnertheme{mytheme}

  • 删除多余的文件。仅使用beamerthememytheme.sty并将 {inner,outer,color} 主题的内容复制到该文件中。我还可以通过删除前导标签来重命名以使其更简单beamertheme,因为无论如何我都必须使用\usepackage。这对于可读性/可维护性来说似乎不可取,但我认为如果替代方案很复杂,那么这是一种权衡。

有没有办法从 .sty 文件中指定它所包含的部分?就我而言,我想我可以继续并包含它而<unknown-inclusion-relative-path>/beamerinnerthememytheme不必担心我可能会有演示文稿想要从此目录结构之外包含它(这不是一个大问题,但最好避免限制可能性,同时我仍然可以轻松更改)。

答案1

根据问题评论中 Ulrike Fischer 的建议,我使用 Windows 命令提示符运行了以下命令。

initexmf --register-root="%cd%"

从顶级目录,将主题文件移动到目录中

top-level-dir/text/latex/themename

现在我可以成功使用\usetheme{themename}

该命令可以从.bat 文件或类似文件运行,从而更容易在新克隆的存储库中执行。

等效的 Linux 脚本可能类似于(未经测试):

initexmf --register-root="$(pwd)"

当我的“Linux”提示符实际上是通过 mingw 和 git-bash 时,我使用命令提示符来避免可能出现的问题(这通常会导致与 Windows/Linux 之间转换的路径问题)。

相关内容