독립형.dtx에서 독립형.tex를 어떻게 추출할 수 있나요?

독립형.dtx에서 독립형.tex를 어떻게 추출할 수 있나요?

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.clsstandalone.cfgstandalone.stystandalone.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

관련 정보