I think it would be a great addition to your package if the macrocode environment could be colored. At the moment only the colordoc package (and with many patches) can do it.
% \iffalse meta-comment
%<*driver>
\documentclass[full]{l3doc}
\usepackage{unicode-math}
% Unicode-math changes the position of the glyphs, so the position 26A is now
% a letter `j'. The doc package ensures that mathcode and the | actually prints
% a j inside docstrip guards. This changes the mathcode of | to 07C:
\makeatletter
\def\mod@math@codes{\mathcode`\|="207C \mathcode`\&="2026
\mathcode`\-="702D \mathcode`\+="702B
\mathcode`\:="703A \mathcode`\=="703D }
\makeatother
\usepackage[contents]{colordoc}
% \show\docCodelineNo
\def\textnew#1{\color{color-def}#1\/}
\def\AltMacroFont{\fontencoding\encodingdefault
\fontfamily\ttdefault
\fontseries\mddefault
\fontshape\updefault
\small
}%
% Patching colordoc.sty to work with l3doc.cls
\ExplSyntaxOn
\cs_new_eq:cN { liii@xmacro@code } \__codedoc_xmacro_code:n
\ExplSyntaxOff
\begingroup
\makeatletter
\catcode`\[\@ne\catcode`\]\tw@
\@makebracesactive
\gdef{[\@openingbrace[\char'173]]
\gdef}[\@closingbrace[\char'175]]
\catcode`\|\z@\catcode`\%12
\catcode`\ \active\catcode`\\\active
|gdef|xmacro@code#1% \end{macrocode}[|liii@xmacro@code[#1]|end[macrocode]]
|catcode`| 12|gdef|sxmacro@code#1% \end{macrocode*}[|liii@xmacro@code[#1]|end[macrocode*]]
|endgroup
% Patching colordoc.sty to work with doc v3 (TeX Live 2023 & lualatex)
\usepackage{etoolbox}
\makeatletter
\@ifpackagelater{doc}{2022-06-01}%
{\patchcmd\macro@finish
{\ifnot@excluded % \if
\edef\@tempa{\noexpand\SpecialIndex{\bslash\macro@namepart}}%
\@tempa \fi}%
{\maybe@index@macro \macro@namepart}
{}{\FAILED}%
\let\default@color\current@color
}%
{}
\makeatother
\EnableCrossrefs
\CodelineIndex
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%</driver>
% \fi
% \begin{documentation}
% \title{The \texttt{testpkg} package}
% \author{Me}
% \date{\today}
% \maketitle
% \tableofcontents
% \section{Documentation}
% \begin{function}{\testpkg_function:}
% \begin{syntax}
\verb|\testpkg_function:| The syntax is complicated.
% \end{syntax}
% \end{function}
% \begin{function}{testpkgenv}
% \begin{syntax}
\verb|\begin{testpkgenv}| ... \verb|\end{testpkgenv}|
% \end{syntax}
% \end{function}
% \end{documentation}
%
% \begin{implementation}
% \section{Implementation}
% \begin{macrocode}
%<*package>
%<@@=testpkg>
% \end{macrocode}
% \begin{variable}{\l_@@_tmp_tl}
% A thorough description of this variable.
% \begin{macrocode}
\tl_new:N \l_@@_tmp_tl
% \end{macrocode}
% \end{variable}
% \begin{macro}{\testpkg_function:}
% This function does things.
% \begin{macrocode}
\NewDocumentCommand { \testpkg_function: } { }
{ \@@_do_things: }
% \end{macrocode}
% \end{macro}
% \begin{environment}{testpkgenv}
% This environment also does things.
% \begin{macrocode}
\NewDocumentEnvironment { testpkgenv } { }
{ \@@_do_things: }
{ \@@_stop_doing_things: }
% \end{macrocode}
% \end{environment}
% \begin{macrocode}
%</package>
% \end{macrocode}
% \end{implementation}
% \PrintIndex
% \Finale
\endinput
And of course, just color for the sake of coloring (I use it in the scontents documentation).
Saludos
I think it would be a great addition to your package if the
macrocode
environment could be colored. At the moment only thecolordoc
package (and with many patches) can do it.And of course, just color for the sake of coloring (I use it in the
scontents
documentation). Saludos