Как извлечь standalone.tex из standalone.dtx?

Как извлечь standalone.tex из standalone.dtx?

standaloneВ руководстве пользователя описаны три способа использования пакета.

  1. standalone.sty: \usepackage{standalone}: для использования с неавтономным классом, настройка \standalonefalse;
  2. standalone.cls: \documentclass{standalone}: для автономного использования, настройка \standalonetrue;
  3. standalone.tex: \input{standalone}: для использования с другим классом отдельно, настройка \standalonetrue.

Однако TeX Live не включает standalone.tex. Думая, что это проблема упаковки, я сделал копию исходного каталога, содержащего standalone.dtxи standalone.ins, и повторно извлек файлы.

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

Это создает standalone.tex, а также standalone.cls, standalone.cfg, standalone.sty. Однако, в отличие от других файлов, standalone.texявляется пустым.

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

Вероятно, именно поэтому TeX Live вообще не включает этот файл.

Теперь, docstripэто довольно чужая территория, насколько я могу судить. Однако, .dtxопределенно выглядит так, как будто включает код для 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
%

Как именно мне следует создать файл standalone.tex, чтобы я мог скомпилировать его для набора abc(бесполезно обходным путем)? (См. страницу 18 руководства.)

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

решение1

Это стандартный .insфайл, который имеет

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

что, как я подозреваю, было задумано как

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

С этим изменением

 tex standalone.ins

генерирует все файлы, включая standalone.texкоторые затем выглядят как

%%\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

Связанный контент