![如何将样式文件符号链接到子目录?](https://linux22.com/image/325481/%E5%A6%82%E4%BD%95%E5%B0%86%E6%A0%B7%E5%BC%8F%E6%96%87%E4%BB%B6%E7%AC%A6%E5%8F%B7%E9%93%BE%E6%8E%A5%E5%88%B0%E5%AD%90%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
我有一个包含多个子文档的项目,每个子文档都需要生成多次,并进行一些小的调整,以保证整个文档的一致性。以下是我想要做的事情:
- 创建一个样式文件,在其中定义一些包含需要调整的信息的宏,
- 将每个子文档放在其自己的子文件夹中,
- 将单个样式文件符号链接到每个子文件夹,
以便
- 我可以只调整样式文件并重建每个文档,而不必单独调整每个文档,希望我不会忘记某些东西。
这是我尝试过的。
- 我创建了一个目录
<minimal>
,还有子目录<doc1>
。 - 我创建它
mwe.sty
并将其放在主<minimal>
目录中:
mwe,sty
:
\ProvidesPackage{mwe}
\newcommand{\foo}{bar}
- 我創作
doc1.tex
在minimal/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/