Como posso extrair standalone.tex de standalone.dtx?

Como posso extrair standalone.tex de standalone.dtx?

standaloneO manual do explica três maneiras de usar o pacote.

  1. standalone.sty: \usepackage{standalone}: para uso com uma classe não independente, configuração \standalonefalse;
  2. standalone.cls: \documentclass{standalone}: para uso independente, configuração \standalonetrue;
  3. standalone.tex: \input{standalone}: para uso com outra classe independente, configurando \standalonetrue.

No entanto, o TeX Live não inclui arquivos standalone.tex. Pensando que era um problema de empacotamento, fiz uma cópia do diretório de origem, contendo standalone.dtxe standalone.inse extraí novamente os arquivos.

cp -pr source/latex/standalone ~/
pushd ~/standalone
pdflatex standalone.ins

Isso produz standalone.tex, junto com standalone.cls,, standalone.cfg. standalone.styPorém, diferentemente dos outros arquivos, standalone.texestá vazio.

total 272K
drwxr-xr-x   2 <username> <username> 4.0K Gor   3 16:26 ./
drwx------ 103 <username> <username>  12K Gor   3 16:32 ../
-rw-r--r--   1 <username> <username>  902 Gor   3 16:34 standalone.cfg
-rw-r--r--   1 <username> <username>  27K Gor   3 16:34 standalone.cls
-rw-r--r--   1 <username> <username> 178K Tach 25  2016 standalone.dtx
-rw-r--r--   1 <username> <username>  442 Tach 25  2016 standalone.ins
-rw-r--r--   1 <username> <username> 2.7K Gor   3 16:34 standalone.log
-rw-r--r--   1 <username> <username>  34K Gor   3 16:34 standalone.sty
-rw-r--r--   1 <username> <username>    0 Gor   3 16:34 standalone.tex

Presumivelmente, é por isso que o TeX Live não inclui o arquivo.

Agora, docstripé um território bastante estranho, no que me diz respeito. No entanto, .dtxcertamente parece que inclui código para standalone.tex:

% \iffalse
%<*standalone.tex>
% \fi
%
%\iffalse
%<*tex>
% \fi
% \subsection{Simple TeX File}
%
%    \begin{macrocode}
%%\ProvidesFile{standalone.tex}[2010/02/28 v0.4 Provides if-switch to show if file is compiled standalone]%
%    \end{macrocode}
%
% \begin{macro}{\ifstandalone}
% Provides \cs{ifstandalone} switch which is |\iftrue| if the normal |\documentclass|
% was not yet executed (and subsequently redefined to be |\@twoclasseserror|).
%    \begin{macrocode}
\expandafter\ifx\csname ifstandalone\endcsname\relax
\expandafter\newif\csname ifstandalone\endcsname
\expandafter\ifx\csname @twoclasseserror\endcsname\documentclass
\else
  \standalonetrue
\fi
\fi
%    \end{macrocode}
% \end{macro}
%
% \iffalse
%</tex>
% \fi
%
% \iffalse
%</standalone.tex>
% \fi
%

Como exatamente devo produzir o standalone.texarquivo para poder compilar o seguinte para composição abc(de maneira desnecessariamente tortuosa)? (Veja a página 18 do manual.)

\input{standalone}
\documentclass{article}    
\begin{document}
\ifstandalone
  abc
\fi
\end{document}

Responder1

É um .insarquivo padrão e tem

  \file{standalone.tex}{\from{standalone.dtx}{standalone.tex}}%

que eu suspeito que pretendia ser

  \file{standalone.tex}{\from{standalone.dtx}{standalone.tex,tex}}%

Com essa mudança

 tex standalone.ins

gera todos os arquivos, incluindo standalone.texos que se parecem com

%%\ProvidesFile{standalone.tex}[2010/02/28 v0.4 Provides if-switch to show if file is compiled standalone]%
\expandafter\ifx\csname ifstandalone\endcsname\relax
\expandafter\newif\csname ifstandalone\endcsname
\expandafter\ifx\csname @twoclasseserror\endcsname\documentclass
\else
  \standalonetrue
\fi
\fi

informação relacionada