让文档条将文件放在不同的文件夹中

让文档条将文件放在不同的文件夹中

我编写了自己的 biblatex 引用样式,并决定将bbxcbx文件放在一个文件中,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。我猜我不太明白\usedirdocstrip 手册中的用法...任何帮助都将不胜感激!

顺便说一下,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

注意事项:

  1. 我无法真正测试这一点,因为缺少 blah.dtx :)

  2. ~也会弄乱你的代码;记住它的意思是“牢不可破的空间”,所以你必须把它变成一个字母(这就是神秘的 catcode 的用途)。

  3. 无论如何它可能无法工作~,请尝试将其更改为\BaseDirectory{/home/koji}或您的主目录。

  4. 根据您的系统,您可能已经更改了openout_any中的变量texmf.cnf编辑:由于您似乎正在使用 osx,因此这涉及添加

    openout_any = a
    

    在你的文件中

    /usr/local/texlive/2011/texmf.cnf
    

相关内容