如何在book文档类中实现l3doc中的function环境?

发布于 2024-11-28 21:28:37

如题,请问各位大佬如何在book文档类中实现l3doc中的function环境?

查看更多

关注者
0
被浏览
123
Sagittarius Rover
我要成为TikZ糕手/(ㄒoㄒ)/~~

我来给一个非常不成熟的做法。直接搬!
my related question and discussion here~

我的做法是,将l3doc.cls复制一份,将其后缀名修改为l3doc.sty,之后注释去Line402的\LoadClass{article}语句后,将l3doc.sty置于工作目录下即正常使用\usepackage{l3doc}.

当然上述的操作是有缺陷的,例如和texmf树中的l3doc官方文档类可能存在一定的命名<namespace>冲突,cfr在上面的链接中指出也是建议修改.sty名称的(例如将l3doc改为mydoc),但在l3doc.cls中存在较多以l3doc为类名称的\message,此处我并没有做修改。

当将修改过后的l3doc.sty文档放到工作目录后,可以得到:

\documentclass{book}
\usepackage{l3doc}
\usepackage{lipsum}
\begin{document}

\cs{lipsum} some text \cmd{zhlipsum} some text \cs{tl_if_empty:NTF} \meta{tl~var} \Arg{true code} \Arg{false code} some text you can use \cmd{l3doc} like that

\lipsum[1]

\begin{function}{\package_function_one:N, \package_function_two:n}
    \begin{syntax}
    \cs{package_function_one:N} \meta{cs}
    \cs{package_function_two:n} \marg{Argument}
    \end{syntax}
    Descriptive~text~here~...\lipsum[2]
\end{function}

\vspace*{2ex}
\lipsum[3]

\end{document}

image.png

当然,如果你的目标是all stuffs in l3doc,上面的做法是可行的,你可以使用\cs,syntax,function等所有命令;但是如果你的目标仅仅是提取出function,上面的不完美做法会存在大量的冗余定义,并不优雅。对于后者的需求需要对l3doc.cls的代码有更深的认识,之后可以从\DeclareDocumentEnvironment { function } 开始考虑"逆向工程",提取出和此有关的所有代码(但我不会latex3.....短时间内也没空....)另附MWE压缩文件。

l3doc-MWE.zip

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览