如何将样式文件符号链接到子目录?

如何将样式文件符号链接到子目录?

我有一个包含多个子文档的项目,每个子文档都需要生成多次,并进行一些小的调整,以保证整个文档的一致性。以下是我想要做的事情:

  1. 创建一个样式文件,在其中定义一些包含需要调整的信息的宏,
  2. 将每个子文档放在其自己的子文件夹中,
  3. 将单个样式文件符号链接到每个子文件夹,

以便

  1. 我可以只调整样式文件并重建每个文档,而不必单独调整每个文档,希望我不会忘记某些东西。

这是我尝试过的。

  • 我创建了一个目录<minimal>,还有子目录<doc1>
  • 我创建它mwe.sty并将其放在主<minimal>目录中:

mwe,sty

\ProvidesPackage{mwe}

\newcommand{\foo}{bar}
  • 我創作doc1.texminimal/doc1

minimal/doc1/doc1.tex

\documentclass[12pt]{article}   
\usepackage{mwe}
\begin{document}
\foo
\end{document}
  • 我将样式文件符号链接到doc1

ln -s mwe.sty doc1/mwe.sty
  • cd尝试doc1构建:

汇编:

latex doc1.tex

我得到:

! Undefined control sequence.
l.6 \foo

我在使用 Mactex 2015。有人知道我在这里做错了什么吗?

答案1

首先,不要使用与标准包相同的名称。因此,我们使用shane-mwe.sty而不是mwe.sty,因为它已经存在。

\ProvidesPackage{shane-mwe}

cd minimal && mv mwe.sty shane-mwe.sty

要查看现有符号链接有什么问题,请执行以下操作

ls -l doc1/mwe.sty

你会看到链接指向它自己。

要创建到父目录的链接,你需要类似

ln -s ../shane-mwe.sty doc1/shane-mwe.sty

或者

cd doc1/ && ln -s ../shane-mwe.sty ./

但是,将样式文件放入你的文件中可能会更好、更容易,TEXMFHOME因为这就是它的设计目的。

mkdir -p $(kpsewhich -var TEXMFHOME)/tex/latex/shane-mwe && mv shane-mwe.sty $(kpsewhich -var TEXMFHOME)/tex/latex/shane-mwe/

相关内容