# [texhax] multiple pdfs from one dtx

Arno Trautmann Arno.Trautmann at gmx.de
Sun Dec 26 22:17:23 CET 2010

Heiko Oberdiek wrote:
> On Sun, Dec 26, 2010 at 11:36:21AM +0100, Arno Trautmann wrote:
>> Heiko Oberdiek wrote:
>>> On Sat, Dec 25, 2010 at 11:03:11PM +0100, Arno Trautmann wrote:
>>>
>>>> I want to produce two different sty files and corresponding
>>>> documentations (pdfs). As the sty files belong together (say, an
>>>> internal and external version), I want to keep maintainance as easy as
>>>> possible and therefore use one dtx file for everything. Now, is there a
>>>> possibility to produce two pdfs from one dtx file?
>>>
>>> You can put two documentation driver files in the dtx file and
>>> process both, e.g.:
>>> 1. tex mypackage.ins
>>>    unpacks mypackage-foo.drv and mypackage-bar.drv,
>>>    and other files like mypackage-foo.sty, mypackage-bar.sty.
>>> 2. pdflatex mypackage-foo.drv
>>>    generates mypackage-foo.pdf
>>> 3. pdflatex mypackage-bar.drv
>>>    generates mypackage-bar.pdf
>>
>> I think I understand this conceptually, but to make it a bit more
>> confusing, I am using a "self-contained" dtx, stolen from the fontspec
>> package. So I have all necessary files in only one dtx, but it makes
>> things quite complex, I guess. So I have no idea how to translate your
>> solution to a package written in the following way.
>> Could you give me a hint where to put the documentation for the external
>> package? I guess I have to use a second driver tag, but am not shure how.
>
> There are many interpretations of DTX. What's yours?

A file that contains the source code and documentation of something that
has to do with TeX. And which produces executable files and
documentation pdfs after fed to (lua/pdf)(la)tex.

>> % \iffalse
>> %<*internal>
>> \begingroup
>> %</internal>
>> %<*batchfile>
>> \input docstrip.tex
>> \generate{\file{test.sty}{\from{test.dtx}{test}}}
>> \generate{\file{test-ext.sty}{\from{test.dtx}{test-ext}}}
>> %</batchfile>
>> %<*internal>
>> \generate{\file{test.ins}{\from{test.dtx}{batchfile}}}
>> \endgroup
>> %</internal>
>> %
>> %<*driver>
>> \documentclass{ltxdoc}
>> %\OnlyDescription
>> \begin{document}
>> \StopEventually{}
>> \part{Implementation}
>>
>> \DocInput{test.dtx}
>> \end{document}
>> %</driver>
>> %<*test>
>> % \fi
>
> Thus you want that "(pdf)latex mypackage.dtx" unpacks the files
> and generates the documentation?

yes.

> However you want to have *two* output PDF files. That requires
> two (pdf)latex runs.

yes.
Is it possible to start a second TeX-run from the first one without
having to specify --shell-escape?

> What can be done with the DTX file depends on
> * your interpretation of the DTX format,
>   what should happen is "tex" or "(pdf)latex" is called
>   on the .dtx file?

I want to produce the .sty-file(s) and the .pdf-file(s).

> * the higher package layout, how many documentation
>   files, ...

It's a very simple package with just some definitions and some
documentation.

> * how do you want that the user/maintainer unpacks
>   the files.

Maintainer am I, user will get the "external" .sty and the .pdf file.
Distribution via CTAN will not happen as it is a private package.

> * how the user/maintainer generates the documentation.

Only maintainer should generate anything.

> The two latest questions are less important, if you
> provide a .tds.zip

As mentioned, no wide distribution is planned. Else, there would be no
need for an "external" and "internal" version.

> I don't know, why you want to have two PDF files, one

One file for the publisher, one for the author. Sorry that I did not
make this clear. Therefore, no need for texdoc to find anything!

Arno

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 262 bytes
Desc: OpenPGP digital signature
URL: <http://tug.org/pipermail/texhax/attachments/20101226/8bf025a0/attachment.bin>