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의 의미에서 함수가 아닙니다. (하지만 환경은5월문서 수준 명령에도 적용됩니다. 아래를 참조하세요. 그 경우,일부전달하는 것 중 함수는 있지만 다른 것들은 그렇지 않습니다.)

예상대로 작동한다고 말하는 경우에도 항목의 형식이 일관되게 표시되지는 않습니다. 예를 들어, 타자기가 아닌 세리프 글꼴로 형식이 지정됩니다. 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문서 수준 명령을 위한 것일 수도 있지만 위에서 말한 내용에도 불구하고xparse의 문서는 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 문서화 실험

관련 정보