從 .ins 檔案在我的私有樹中安裝軟體包

從 .ins 檔案在我的私有樹中安裝軟體包

我最近創建了一個文檔類,但不久就完成了將其包裝到 DTX 文件中的工作。我有一個安裝文件,如下所示:

%% 
%% Licence info
%% 

\input docstrip.tex
\keepsilent

\usedir{tex/latex/bil-CV}

\preamble

This is a generated file licenced under the MIT License:
The MIT License (MIT)…blah blah blah...

\endpreamble

\generate{\file{bil-CV.cls}{\from{bil-CV.dtx}{class}}}


\obeyspaces
\Msg{*********************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the}
\Msg{* following file into a directory searched by TeX:}
\Msg{*}
\Msg{* \space\space bil-CV.cls}
\Msg{*}
\Msg{* To produce the documentation run the file bil-CV.dtx} 
\Msg{* through LaTeX.}
\Msg{*}
\Msg{* Happy TeXing!} 
\Msg{*********************************************************}

\endbatchfile

我通過執行此操作來運行它latex bil-CV.ins,並獲得以下輸出:

This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014) (preloaded format=latex)
 restricted \write18 enabled.
entering extended mode
(./bil-CV.ins
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 78 languages loaded.
(/usr/local/texlive/2014/texmf-dist/tex/latex/base/docstrip.tex
Utility: `docstrip' 2.5d <2005/07/29>
English documentation    <2014/04/19>

**********************************************************
* This program converts documented macro-files into fast *
* loadable files by stripping off (nearly) all comments! *
**********************************************************

********************************************************
* No Configuration file found, using default settings. *
********************************************************

)

Generating file(s) ./bil-CV.cls 

Processing file bil-CV.dtx (class) -> bil-CV.cls
Lines  processed: 407
Comments removed: 262
Comments  passed: 9
Codelines passed: 130

*********************************************************
*
* To finish the installation you have to move the
* following file into a directory searched by TeX:
*
*    bil-CV.cls
*
* To produce the documentation run the file bil-CV.dtx
* through LaTeX.
*
* Happy TeXing!
*********************************************************
 )
No pages of output.
Transcript written on bil-CV.log.

既然指定了\usedir{tex/latex/bil-CV},為什麼在CWD中產生class文件,而不是在ins文件~/Library/texmf/tex/latex/bil-CV中指定的?/usr/local/texlive/2014/texmf.cnf

答案1

正如詳細的DocStrip手冊,DocStrip 的設計是這樣的,您需要設定\BaseDirectory(因為 TeX 不知道您想要安裝到哪裡)和\UseTDS(啟動您的\usedir行到方法 TDS 結構的對應)。這些行最有可能進入docstrip.cfg文件而不是.ins文件本身。

正如評論中所指出的,出於安全原因,現代 TeX 系統不允許寫入目前目錄之上的目錄。 (這可以更改,但完全不建議這樣做。)TeX 以及 DocStrip 無法建立目錄,因此結構也需要預先存在。因此,DocStrip 的「提取到 TDS」功能最好被視為歷史想法,目前已不再使用。一種更有用的方法是建立 TDS 樣式的 zip 並使用它,而不是使用 DocStrip 填充本地樹。有多種腳本可協助完成此過程。

相關內容