我编写了自己的 biblatex 引用样式,并决定将bbx
和cbx
文件放在一个文件中,dtx
以便使用 docstrip 进行处理。现在我想让 docstrip 分别将文件放在我的本地文件夹~/Library/texmf/tex/latex/biblatex/bbx/
和 ...中/cbx/
。我尝试使用以下ins
文件失败了:
\input docstrip.tex
\askforoverwritefalse
\usedir{~/Library/texmf/tex/latex/biblatex/bbx/}
\generate{\file{blah.bbx}{\from{blah.dtx}{bbx}}}
\usedir{~/Library/texmf/tex/latex/biblatex/cbx/}
\generate{\file{blah.cbx}{\from{blah.dtx}{cbx}}}
\end
它只是将两个文件放在与文件相同的目录中dtx
。我猜我不太明白\usedir
docstrip 手册中的用法...任何帮助都将不胜感激!
顺便说一下,ins
和文件dtx
都在。~/Library/texmf/tex/source/blah/
答案1
来自文档说明:
\BaseDirectory
此宏是管理员表示“是的,我想使用您的目录支持”的方式。除非您的配置调用此宏,否则 DocStrip 将仅写入当前目录。(这意味着 DocStrip 不会写入随机目录,除非您告诉它这样做,这很好。)使用此宏,您可以为 TEX 相关内容指定一个基本目录。例如,对于许多 Unix 系统来说,这将是
\BaseDirectory{/usr/local/lib/texmf}
以及标准 emTEX 安装
\BaseDirectory{c:/emtex}
您需要一个更明确的方法:
\input docstrip.tex
\askforoverwritefalse
\catcode`~=11
\BaseDirectory{~}
\DeclareDir{firstLabel}{Library/texmfa/tex/latex/biblatex/bbx/}
\usedir{firstLabel}
\generate{\file{blah.bbx}{\from{blah.dtx}{bbx}}}
\end
注意事项:
我无法真正测试这一点,因为缺少 blah.dtx :)
这
~
也会弄乱你的代码;记住它的意思是“牢不可破的空间”,所以你必须把它变成一个字母(这就是神秘的 catcode 的用途)。无论如何它可能无法工作
~
,请尝试将其更改为\BaseDirectory{/home/koji}
或您的主目录。根据您的系统,您可能已经更改了
openout_any
中的变量texmf.cnf
。编辑:由于您似乎正在使用 osx,因此这涉及添加openout_any = a
在你的文件中
/usr/local/texlive/2011/texmf.cnf