Wie kann ich standalone.tex aus standalone.dtx extrahieren?

Wie kann ich standalone.tex aus standalone.dtx extrahieren?

standaloneDas Handbuch erläutert drei Möglichkeiten zur Verwendung des Pakets.

  1. standalone.sty: \usepackage{standalone}: zur Verwendung mit einer nicht eigenständigen Klasse, Einstellung \standalonefalse;
  2. standalone.cls: \documentclass{standalone}: für den eigenständigen Gebrauch, Einstellung \standalonetrue;
  3. standalone.tex: \input{standalone}: zur Verwendung mit einer anderen eigenständigen Klasse, Einstellung \standalonetrue.

TeX Live enthält jedoch nicht standalone.tex. Da ich dachte, dass es sich um ein Verpackungsproblem handelte, erstellte ich eine Kopie des Quellverzeichnisses, das standalone.dtxund enthielt standalone.ins, und extrahierte die Dateien erneut.

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

Dadurch werden standalone.tex, sowie standalone.cls, standalone.cfg, standalone.sty. Im Gegensatz zu den anderen Dateien standalone.texist jedoch leer.

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

Dies ist vermutlich der Grund, warum TeX Live die Datei überhaupt nicht einbindet.

Nun, docstripdas ist für mich eher Neuland. Es .dtxsieht jedoch so aus, als ob es Code für Folgendes enthält 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
%

Wie genau muss ich die Datei erzeugen, standalone.texum das Folgende abc(auf unnötig umständliche Weise) zum Satz zusammenstellen zu können? (Siehe Seite 18 des Handbuchs.)

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

Antwort1

Es ist eine Standarddatei .insund hat

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

von dem ich vermute, dass es so beabsichtigt war

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

Mit dieser Änderung

 tex standalone.ins

generiert alle Dateien einschließlich standalone.texderer die dann wie folgt aussehen

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

verwandte Informationen