Recientemente creé una clase de documento y no he terminado de empaquetarla en un archivo DTX. Tengo un archivo de instalación que se parece a 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
Ejecuto esto haciendo latex bil-CV.ins
y obtengo el siguiente resultado:
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.
Habiendo especificado \usedir{tex/latex/bil-CV}
, ¿por qué el archivo de clase se genera en el CWD y no ~/Library/texmf/tex/latex/bil-CV
como se especifica en /usr/local/texlive/2014/texmf.cnf
el archivo ins?
Respuesta1
Como se detalla en elmanual de DocStrip, el diseño de DocStrip es tal que se espera que usted configure \BaseDirectory
(ya que TeX no puede saber dónde desea instalar) y \UseTDS
(active el mapeo de sus \usedir
líneas a la estructura TDS de aproximación). Es más probable que esas líneas vayan a un docstrip.cfg
archivo y no a los .ins
archivos mismos.
Como se señaló en los comentarios, los sistemas TeX modernos no permiten escribir en un directorio superior al actual por razones de seguridad. (Esto se puede modificar, pero no se recomienda en absoluto). TeX y, por tanto, DocStrip, no pueden crear directorios, por lo que la estructura también debe ser preexistente. Como tal, es mejor considerar la función 'extraer a TDS' de DocStrip como una idea histórica y no para su uso actual. En lugar de utilizar DocStrip para rellenar un árbol local, un enfoque más útil es crear un zip estilo TDS y utilizarlo. Hay una variedad de scripts disponibles para ayudar con este proceso.