목록 구분 기호, 쉼표 없음, 세미콜론 없음

목록 구분 기호, 쉼표 없음, 세미콜론 없음

나는 다시 Liederbuch-Package 작업을 하고 있으며 머리글과 바닥글에 메타데이터를 사용하는 메타데이터 시스템을 개발했습니다.

현재 ::목록 구분 기호로 사용하고 있지만 더 나은 옵션이 없는지 잘 모르겠습니다. 메타데이터(예: ) 에 나타나기 때문에 불가능합니다 ,.;artist = Monty Burns, the evil-doer; Smithers

나는 현재 . 대신 &or 를 사용하는 경향이 있습니다 .|::

주요 질문은 이 문제가 이미 어디에서나 처리되었는가입니다. 그렇다면 그곳에서는 어떻게 이루어지나요? 그렇지 않다면 스타일 규칙을 위반하는 것입니까?

\begin{Lied}
[title = Als noch Arkadiens gold'ne Tage ::
lithographer = lilypond ::
artist = Test: Test]
{nt}{5}
\includegraphics[width=\linewidth,page=1]{CVLB5-AlsNochArkadiensGoldeneTage}
\notentext{\nspace*{11}Als \ns noch \ns Ar \ns* ka \ns* \ns di \ns* ens \ns gold \ns* ne \nspace{15}}
\end{Lied}

머리글이나 바닥글에 다음 값을 사용할 수 있습니다.

\LBHead{\textbf{\print{title}} \\ \print{artist} \hfill \print{lithographer}\par}

답변1

::를 사용하여 구분 기호로 사용할 수 있지만 expl3몇 가지 트릭이 필요합니다. 우리가 아래에 있다고 가정하면 ExplSyntaxOn다음과 같이 할 수 있습니다.

\tl_const:Nx \c_maestroglanz_doublecolon_tl { \tl_to_str:n {::} }

이중 콜론에서 입력을 분할해야 할 경우 다음과 같이 말할 수 있습니다.

\cs_generate_variant:Nn \seq_set_split:Nnn { NV } % needed just once

\seq_set_split:NVn \l_maestroglanz_whatever_seq \c_maestroglanz_doublecolon_tl { #1 }

여기서는 #1분할 인수를 나타냅니다.

\ExplSyntaxOn콜론 아래에 문자가 있는데 함께 저장하면 \tl_to_str:n문서에 있는 것처럼 다시 "다른 문자"로 바뀌기 때문입니다 .

\keys_set:nn그러나 쉼표를 구분 기호로 사용하므로 입력을 에 전달해야 하는 경우에는 작동하지 않습니다 .

이 경우 쉼표를 쉼표로 바꾸고 \comma{}이중 콜론을 쉼표로 바꾸는 것이 더 나을 것입니다.

개념의 증거.

\keys_define:nn { maestroglanz/lied }
 {
  title .tl_set:N = \l_maestroglanz_lied_title_tl,
  lithographer .tl_set:N = \l_maestroglanz_lied_lithographer_tl,
  artist .tl_set:N = \l_maestroglanz_lied_artist_tl,
 }

 \NewDocumentEnvironment{Lied}{O{}mm}
  {
   \tl_set:Nn \l_maestroglanz_lied_options_tl
   \tl_replace_all:Nnn \l_maestroglanz_lied_options_tl { , } { \comma{} }
   \tl_replace_all:NVn \l_maestroglanz_lied_options_tl \c_maestroglanz_doublecolon_tl { , }
   \keys_set:nV { maestroglanz/lied } \l_maestroglanz_lied_options_tl
  % other commands for the begin part
 }
 {
  % commands for the end part
 }

% the needed variants
\cs_generate_variant:Nn \tl_replace_all:Nnn { NV }
\cs_generate_variant:Nn \keys_set:nn { nV }

관련 정보