l3doc 没有替换 @@ 模块名称?

l3doc 没有替换 @@ 模块名称?

我最近越来越多地使用 l3doc 和 DocStrip。

此外,我越来越多地使用 LaTeX3,并且喜欢它能够为变量和函数赋予可读且有意义的名称。添加范围和类型信息后,名称往往比以前长得多。

实际上,我正在编写一个.dtx文件,它实际上包含三个(或更多)包。我@@还使用为变量和函数赋予了与模块相关的名称,这使得名称更长。

当通过 LaTeX 处理文件以生成文档时,在所有代码示例中,@@将被替换为最后提到的模块名称,在本例中为tuc_m_k_calc

%    \begin{macrocode}
%<*label>
%@@=tuc_m_k_label>
%</label>
%<*concept>
%<@@=tuc_m_k_concept>
%</concept>
%<*calc>
%<@@=tuc_m_k_calc>
%</calc>
%    \end{macrocode}

因此,实现将会呈现如下内容:

\bool_new:N \l_@@_opt_draft_bool

但将排版为

\bool_new:N \l_tuc_m_k_calc_opt_draft_bool

此字符串也将被打印到边注和索引中,忽略其兄弟字符串的\l_tuc_m_k_concept_opt_draft_bool含义\l_tuc_m_k_label_opt_draft_bool和描述的事实。

我在想,如果打印\l_@@_opt_draft_bool到文档中是不是一个更好的解决方案。显然,它节省空间且经济。这是公平的,因为所有三种变体也很容易符合这个描述。我认为,作为完全扩展的名称,它甚至更容易阅读和理解。(事实上,在修复错误时,我经常希望 LaTeX 能将名称反转为原始代码,让我更容易在文件中找到位置.dtx。)

通过使用这个代码代替上面提到的代码,可以轻松实现这个结果:

% \iffalse
%    \begin{macrocode}
%<*label>
%@@=tuc_m_k_label>
%</label>
%<*concept>
%<@@=tuc_m_k_concept>
%</concept>
%<*calc>
%<@@=tuc_m_k_calc>
%</calc>
%    \end{macrocode}
% \fi

这将使文档更具可读性(在我看来)。

您认为这是一个好主意吗?是否有我尚未想到的副作用?如果您推荐这种风格,那么实现它的最佳方法是什么?

相关内容