
Da ich gerade ein Paket schreibe und angefangen habe, format zu verwenden, dtx
habe ich mich gefragt, ob es alternative Klassen gibt, die einfach verwenden doc
, also habe ich angefangen, zu verwenden l3doc
(da ich die Syntax von expl3 verwende). Ich bin ziemlich zufrieden damit, aber die folgenden Punkte sind irgendwie ärgerlich:
- Ich verwende es,
variable
um Variablen undmacro
Makros zu beschreiben (da esfunction
in der Dokumentation und nicht im Code verwendet werden sollte). Wie kann ich die Stile beider vereinheitlichen (entweder mit oder ohne die Balken am Rand, ich hätte sie lieber)? - Ist es möglich, diese Optik auch auf das mit (auch Balken) erzielte Layout zu übertragen
\DescribeEnv
? - Wie soll ich den Lua-Code markieren, der vom Paket verwendet wird? Soll ich es so machen,
\NewMacroEnvironment
wie es in derl3doc
Dokumentation steht?
Bei dieser Frage geht es nicht um:
- Ändern der Dokumentklasse von
ltxdoc
oder - Wechsel zu einer anderen Klasse, wodurch
doc
die Funktionalität beeinträchtigt wird, aber eventuell für die Dokumentation verwendet werden könnte.
Was ich tatsächlich verwende und womit ich unzufrieden bin (Beispieldatei dtx
, ich habe den Paketaufruf entfernt, um die Bereitstellung .ins
einer Datei zu vermeiden):
% \iffalse meta-comment
%<package>\RequirePackage{expl3}
%<package>\RequirePackage{xparse}
%<package>\ProvidesExplPackage{testpack}{2017/04/15}{0.1}{Test package}
%<*driver>
\documentclass{l3doc}
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\begin{document}
\DocInput{testpack.dtx}
\end{document}
%</driver>
% \fi
%
% \begin{documentation}
% \GetFileInfo{testpack.sty}
%
% \title{The \texttt{testpack} package\thanks{This document corresponds to \texttt{termdoc}~\fileversion, dated~\filedate.}}
% \author{TeXnician}
% \date{\today}
% \maketitle
% \tableofcontents
%
% \section{User interface}
% \DescribeMacro{\justdoit} My test \cs{justdoit}: here would be the function call
% \begin{function}{\justdoit}
% \begin{syntax}
|\justdoit|
% \end{syntax}
% \meta{description}
% \end{function}
% \end{documentation}
% \begin{implementation}
% \section{Implementation}
%<*package>
% \begin{macrocode}
\RequirePackage{iftex}
\RequireLuaTeX
\RequirePackage{luacode}
% \end{macrocode}
% \begin{variable}{\mytl}
% A variable
% \begin{macrocode}
\tl_new:N \mytl
% \end{macrocode}
% \end{variable}
% \begin{environment}{luacode}
% \begin{macrocode}
\begin{luacode}
function justdoit()
tex.print(1,[[Test]])
end
\end{luacode}
% \end{macrocode}
% \end{environment}
% \begin{macro}{\justdoit}
% \begin{macrocode}
\NewDocumentCommand{\justdoit}{}{
\directlua{justdoit()}
}
% \end{macrocode}
% \end{macro}
%</package>
% \end{implementation}
% \Finale
\endinput
Aktualisieren:Hier ist eine Beispielausgabe:
Antwort1
Hier sind einige Vorschläge, wie Sie die Stile von Variablen und Makros vereinheitlichen, das Erscheinungsbild auf das mit erstellte Layout übertragen \DescribeEnv
und eine Möglichkeit finden, Lua
Code in Ihrer l3doc
Dokumentation zu markieren.
- Vereinheitlichung der Stile von Variablen und Makros:
Um die Stile von Variablen und Makros zu vereinheitlichen, können Sie die l3doc
Umgebungen anpassen. Sie können dies erreichen, indem Sie das l3doc
Paket selbst ändern oder ein neues Paket (oder eine neue Klasse) basierend auf erstellen l3doc
.
Sie können beispielsweise eine neue Umgebung my_macro
mit dem gewünschten Stil definieren:
\ExplSyntaxOn
\NewDocumentEnvironment{my_macro}{m}
{
\cs_set_eq:NN \variable \meta
\begin{macro}{#1}
}
{
\end{macro}
\cs_set_eq:NN \variable \gobble
}
\ExplSyntaxOff
Anschließend können Sie in Ihrem Code die my_macro
Umgebung anstelle der macro
Umgebung verwenden. Diese neue Umgebung hat denselben Stil wie die variable
Umgebung.
- Die Übertragung der Optik auf das Layout erfolgt mit
\DescribeEnv
:
Um das Aussehen von Variablen oder Makros auf das mit erstellte Layout zu übertragen \DescribeEnv
, können Sie den \DescribeEnv
Befehl so umdefinieren, dass er denselben Stil wie Variablen oder Makros verwendet:
\ExplSyntaxOn
\cs_set_eq:NN \original_describe_env: \DescribeEnv
\cs_new_protected:Npn \new_describe_env: #1
{
\cs_set_eq:NN \environment \meta
\original_describe_env: { #1 }
\cs_set_eq:NN \environment \gobble
}
\cs_set_eq:NN \DescribeEnv \new_describe_env:
\ExplSyntaxOff
Dieser Code definiert den \DescribeEnv
Befehl neu, sodass er denselben Stil wie die Umgebungen variable
und hat my_macro
.
- Markieren von
Lua
Code in derl3doc
Dokumentation:
Lua
Um Code in Ihrer Dokumentation zu markieren , können Sie den in der Dokumentation genannten Befehl l3doc
verwenden .\NewMacroEnvironment
l3doc
Darüber hinaus können Sie die vom Paket bereitgestellten luacode
oder Umgebungen verwenden, um Code richtig zu formatieren und hervorzuheben .luaexec
luacode
Lua
Hier ist ein Beispiel für die Verwendung \NewMacroEnvironment
mit der luacode
Umgebung:
\NewMacroEnvironment{luacode} % or luaexec, depending on your preference
Jetzt können Sie die Umgebung in Ihrer Dokumentation verwenden luacode
und sie wird richtig formatiert und hervorgehoben.
Diese Änderungen sollten Ihnen dabei helfen, das Erscheinungsbild von Variablen, Makros und Umgebungen anzupassen sowie Lua
Code in Ihrer l3doc
Dokumentation zu markieren.