如何在 latex3 中更新节命令

如何在 latex3 中更新节命令

我正在尝试使用 LaTeX3 重写部分命令。出于测试目的,我所做的基本上是这样的:

\ProvideDocumentCommand \p { o m }
{   \IfNoValueTF{#1}
    { %
        \paragraph{\textsf{#2}}
    }
    { %
        \paragraph[#1]{\textsf{#2}}
    }
}

但我想重写\paragraph命令,以便可以以标准方式重用任何自定义。我做了一些挖掘,显然我需要掌握 expl3,我看到了多种实现此目的的方法,例如这里但我试图找到一些可以作为.sty类分发的东西。我深入研究skrapport类,但信息量太大。有没有人可以一步一步地向我解释从\ProvidesExplClass命令重写到任何类型的部分或简单的过程\cite

答案1

该类skrapport用简单的模式定义部分:

\DeclareDocumentCommand\paragraph{som}{
    \__skrapport_generic_section:nnnnn{paragraph}{4}{#1}{#2}{#3}
}

第一个参数\__skrapport_generic_section:nnnnn是关联的计数器名称级别,第二个参数是级别,第三个参数是可能的*,第四个参数是可能的可选参数(简称),最后第五个参数是完整标题。

因此,为了更改\paragraph标题的字体,您只需要

\ExplSyntaxOn
\RenewDocumentCommand\paragraph{som}{
    \__skrapport_generic_section:nnnnn{paragraph}{4}{#1}{#2}{\sffamily#3}
}
\ExplSyntaxOff

在您的文档序言中。以下是示例文档。

\documentclass{skrapport}

\ExplSyntaxOn
\RenewDocumentCommand\paragraph{som}{
    \__skrapport_generic_section:nnnnn{paragraph}{4}{#1}{#2}{\sffamily#3}
}
\ExplSyntaxOff

\begin{document}

\paragraph{This is a paragraph title}
Text follows.

\end{document}

在此处输入图片描述

相关内容