我读到了一些建议,建议在编写包时,应该在文件中使用该包dtx
来演示宏和环境的使用。据推测,在编写类时也应该如此,但我遇到了不知道如何实际执行此操作的问题。尝试坚持\LoadClass{\jobname}
(甚至\LoadClass{democls}
假设文件名为democls.dtx
)会导致两个\LoadClass
命令错误。(注意:我不认为我的问题与
是否可以从 .dtx 中提取 .cls 并避免两个 \LoadClass 命令错误?
因为这个问题似乎没有直接解决在类文档排版中使用类定义的宏和环境的问题。dtx
不过,我的 democls 是基于同一个 Joseph Wright 模型文件的。)
% \iffalse meta-comment
%<*internal>
\iffalse
%</internal>
%<*internal>
\fi
\def\nameofplainTeX{plain}
\ifx\fmtname\nameofplainTeX\else
\expandafter\begingroup
\fi
%</internal>
%<*install>
\input docstrip.tex
\keepsilent
\askforoverwritefalse
\preamble
(preamble)
\endpreamble
\postamble
(postamble)
\endpostamble
\usedir{tex/latex/democls}
\generate{
\file{\jobname.cls}{\from{\jobname.dtx}{class}}
}
%</install>
%<install>\endbatchfile
%<*internal>
\usedir{source/latex/democls}
\generate{
\file{\jobname.ins}{\from{\jobname.dtx}{install}}
}
\ifx\fmtname\nameofplainTeX
\expandafter\endbatchfile
\else
\expandafter\endgroup
\fi
%</internal>
%<*class>
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{democls}[2015/07/07 v1.0 description text]
%</class>
%<*driver>
\documentclass{ltxdoc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
%
%\GetFileInfo{\jobname.cls}
%
%\title{^^A
% \textsf{democls} --- description text\thanks{^^A
% This file describes version \fileversion, last revised \filedate.^^A
% }^^A
%}
%\author{^^A
% You\thanks{email: [email protected]}^^A
%}
%\date{Released \filedate}
%%
%\maketitle
%
%\DescribeMacro{\examplemacro}
% Some text about an example macro called \cs{examplemacro}, which
% might have an optional argument \oarg{arg1} and mandatory one
% \marg{arg2}. It looks like \examplemacro{foo}{bar}.
%
% \begin{macrocode}
%<*class>
% \end{macrocode}
%
% \begin{macrocode}
\LoadClass{article}
% \end{macrocode}
%
%\begin{macro}{\examplemacro}
% \begin{macrocode}
\newcommand{\examplemacro}[2][]{%
\textit{#1 #2}
}
% \end{macrocode}
%\end{macro}
%
% \begin{macrocode}
%</class>
% \end{macrocode}
%\Finale
编辑:如果有人想使用已完成的模板,可以在https://github.com/RyanMatlock/LaTeX-dtx-templates。