
Como actualmente estoy escribiendo un paquete y comencé a usar dtx
el formato, me preguntaba si hay clases alternativas que solo usan doc
, así que comencé a usarlo l3doc
(ya que uso la sintaxis expl3). Estoy bastante satisfecho con ello, pero los siguientes puntos son un poco molestos:
- Lo estoy usando
variable
para describir variables ymacro
macros (ya quefunction
debería usarse en la documentación, no en el código). ¿Cómo puedo unificar los estilos de ambos (ya sea con o sin las barras al margen, prefiero tenerlas)? - ¿Es posible transferir este aspecto al diseño logrado con
\DescribeEnv
(barras también)? - ¿Cómo debo marcar el código Lua, que utiliza el paquete? ¿Debo utilizar
\NewMacroEnvironment
comol3doc
indica la documentación?
Esta pregunta no se trata de:
- Cambiando la clase de documento de
ltxdoc
o - cambiar a otra clase, lo que interrumpe
doc
la funcionalidad, pero eventualmente podría usarse para documentación.
Lo que realmente uso y con lo que no estoy satisfecho ( dtx
archivo de muestra, eliminé la llamada del paquete para evitar proporcionar .ins
el archivo):
% \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
Actualizar:A continuación se muestra un resultado de ejemplo:
Respuesta1
Aquí hay algunas sugerencias para unificar los estilos de variables y macros, transferir la apariencia al diseño logrado con \DescribeEnv
y encontrar una manera de marcar Lua
el código en su l3doc
documentación.
- Unificando los estilos de variables y macros:
Para unificar los estilos tanto de variables como de macros, puedes personalizar los l3doc
entornos. Puede lograr esto modificando el l3doc
paquete en sí o creando un nuevo paquete (o clase) basado en l3doc
.
Por ejemplo, puedes definir un nuevo entorno my_macro
con el estilo deseado:
\ExplSyntaxOn
\NewDocumentEnvironment{my_macro}{m}
{
\cs_set_eq:NN \variable \meta
\begin{macro}{#1}
}
{
\end{macro}
\cs_set_eq:NN \variable \gobble
}
\ExplSyntaxOff
Luego, puedes usar el my_macro
entorno en lugar del macro
entorno en tu código. Este nuevo entorno tendrá el mismo estilo que el variable
entorno.
- Transfiriendo la apariencia al diseño logrado con
\DescribeEnv
:
Para transferir el aspecto de las variables o macros al diseño logrado con \DescribeEnv
, puede redefinir el \DescribeEnv
comando para usar el mismo estilo que las variables o macros:
\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
Este código redefine el \DescribeEnv
comando para que tenga el mismo estilo que los entornos variable
y my_macro
.
- Código de marcado
Lua
en lal3doc
documentación:
Para marcar Lua
el código en su l3doc
documentación, puede usar el \NewMacroEnvironment
comando como se menciona en la l3doc
documentación.
Además, puede utilizar los entornos luacode
o luaexec
proporcionados por el luacode
paquete para formatear y resaltar Lua
el código correctamente.
A continuación se muestra un ejemplo de uso \NewMacroEnvironment
con el luacode
medio ambiente:
\NewMacroEnvironment{luacode} % or luaexec, depending on your preference
Ahora puede utilizar el luacode
entorno en su documentación y se formateará y resaltará correctamente.
Estos cambios deberían ayudarle a personalizar la apariencia de variables, macros y entornos, así como a marcar Lua
el código en su l3doc
documentación.