如何知道在包中提供哪些变体 expl3 函数?

如何知道在包中提供哪些变体 expl3 函数?

这个问题源于错误报告到我的包裹,pdfoverlay

有问题的功能是:

\cs_new_protected:Nn \pdfoverlay_set_pdf:n
  {
    \file_if_exist:nTF { #1 }
      {
        \str_gset:Nn \g__pdfoverlay_pdf_file_name_str { #1 }
        \__pdfoverlay_count_pdf_pages:
        \int_gzero:N \g__pdfoverlay_page_int
        \bool_gset_true:N \g__pdfoverlay_output_active_bool
        \bool_gset_false:N \g__pdfoverlay_action_pending_bool
      }
      {
        \msg_error:nnn { pdfoverlay } { file-not-found } { #1 }
      }
  }

如果您直接将 PDF 文件名传递给宏,此方法可以正常工作。但是,如果您将 PDF 文件名存储在宏中,则该方法会失败,因为str_gset:Nn只是对控制序列进行反标记。

生成\pdfoverlay_set_pdf:n(例如,Vox)的变体可以解决这个问题。

问题

  1. 在这种情况下,样式文件是否应提供这些变体?还是应让用户在需要时自行生成?
  2. 有一个 LaTeX 接口 ( \pdfoverlaySetPDF) 调用\pdfoverlay_set_pdf:n。强制扩展似乎总是存在风险(我对此理解不够充分)。但是,创建各种变体然后\pdfoverlay_set_pdf:x从 LaTeX 接口调用会不会有问题?

相关内容