Recentemente criei uma classe de documento e ainda não terminei de agrupá-la em um arquivo DTX. Eu tenho um arquivo de instalação parecido com este:
%%
%% 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
Eu executo isso fazendo latex bil-CV.ins
e obtenho a seguinte saída:
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.
Tendo especificado \usedir{tex/latex/bil-CV}
, por que o arquivo de classe é gerado no CWD e não ~/Library/texmf/tex/latex/bil-CV
conforme especificado no /usr/local/texlive/2014/texmf.cnf
arquivo ins?
Responder1
Conforme detalhado noManual do DocStrip, o design do DocStrip é tal que se espera que você defina \BaseDirectory
(já que o TeX não pode saber onde deseja instalar) e \UseTDS
(para ativar o mapeamento de suas \usedir
linhas para a estrutura TDS de abordagem). Essas linhas têm maior probabilidade de entrar em um docstrip.cfg
arquivo, e não no .ins
(s) próprio(s) arquivo(s).
Conforme observado nos comentários, os sistemas TeX modernos não permitem a gravação em um diretório acima do atual por motivos de segurança. (Isso pode ser alterado, mas não é recomendado.) O TeX e, portanto, o DocStrip, não podem criar diretórios, portanto a estrutura também precisa ser pré-existente. Como tal, o recurso 'extrair para TDS' do DocStrip é melhor considerado como uma ideia histórica e não para uso hoje. Em vez de usar DocStrip para preencher uma árvore local, uma abordagem mais útil é criar um zip estilo TDS e usá-lo. Existem vários scripts disponíveis para ajudar nesse processo.