l3doc 在 {function} 的邊距框中加入了不需要的反斜杠

l3doc 在 {function} 的邊距框中加入了不需要的反斜杠

我正在使用l3doc它來記錄一些軟體包(我知道它不是正式穩定的,但我喜歡它...)。我遇到了一個問題,如果其中一個項目是以反斜線開頭的宏,{function}{<list>}則為每個項目添加一個反斜線。<list>

\documentclass{l3doc}

\begin{document}

\begin{function}{{environment}}
Description
\end{function}
\begin{function}{\command}
Description
\end{function}
\begin{variable}{counter}
Description
\end{variable}
\begin{function}{{environmentII}, counterII, \commandII}
Description for multiple items
\end{function}

\begin{macro}{{environment}}
Definition
\end{macro}
\begin{macro}{\command}
Definition
\end{macro}
\begin{macro}{counter}
Definition
\end{macro}
\begin{macro}{{environmentII}, counterII, \commandII}
Description for multiple items
\end{macro}

\end{document}

這個範例表明,使用單一項目<list>可以按預期工作,但是一旦我將巨集新增到清單中,所有項目都會被刪除。反斜線{macro}沒有表現出這種行為...

在此輸入影像描述

有辦法防止這種情況嗎?

答案1

在我看來,你只是濫用環境。預期參數是一個函數或函數列表。但是您傳遞的清單中的所有元素都不是 l3 意義上的函數。 (但是環境可能也適用於文件級命令 - 請參閱下文。在這種情況下,一些您傳遞的東西是函數,而不是其他函數。

請注意,即使您說它按預期工作,您也不會獲得格式一致的項目。例如,您會counter使用襯線字體(而不是打字機)進行格式化,因為它對解析器來說看起來不像變數。 (\l_tobi_counter_int大概可以在這裡工作,並且相當於 l3。)

定義了提供的各種環境的程式碼l3doc根據環境要記錄的事物類型的預期語法處理參數。

因此,例如,function環境會在逗號分隔清單中的每個元素中查找:,以便將名稱與其參數的規格分開。然後,該資訊會以標準方式自動處理和格式化。

例如,

\begin{function}{\Tobi_function_one:nn, \Tobi_function_one:Vn, \Tobi_function_one:VV}
Description for multiple items
\end{function}

將檢測到它正在處理同一函數的三個變體,即已以通常方式產生基本函數的變體的情況。然後,它將第一個格式化為基本變體,將其餘兩個格式化為變體,將它們組合起來並區分它們不同的參數說明符。

變體函數

逗號分隔的清單適用於列出的項目是主題的微小變化的情況,例如具有不同參數規範的相同函數或某種變體形式。但環境、計數器和巨集不屬於這種類型,不應該以這種方式組合在一起。

我不完全確定macro應該用來做什麼。我找不到太多文檔l3doc我無法從 l3 的文檔來源中弄清楚到底有什麼區別。

我的第一個想法是,這macro可能適用於文件級命令,但是,儘管我上面說過,解析的文檔用於function記錄文檔級命令。這讓我很困惑,因為我不認為這些指令是功能根本不。我認為這是區分文件級內容和較低級別 l3 內容的想法的一部分,並且“函數”僅適用於後者。但我在這一點上顯然是錯的。 (當然,macro也不一定有多大意義,因為函數肯定是宏。)

這是我正在使用的範例程式碼。

\documentclass{l3doc}
\begin{document}
\begin{function}{\Tobi_function_prior:n}
  Description
\end{function}
\begin{function}{\command:}
  Description
\end{function}
\begin{variable}{\l_Tobi_variable_tl}
  Description
\end{variable}
\begin{function}{\Tobi_function_one:nn, \Tobi_function_one:Vn, \Tobi_function_one:VV}
  Description for multiple items
\end{function}
\begin{function}{\TobiDocumentCommand}
  \begin{syntax}
    \cs{TobiDocumentCommand}\marg{mandatory argument}
  \end{syntax}
\end{function}
\end{document}

l3文檔實驗

相關內容