expl3 명령 사용 방법 \str_case:nnF

expl3 명령 사용 방법 \str_case:nnF

누군가가 예를 들어 명령이 xparse어떻게 작동하는지 설명해 주시겠습니까 ? 여기서 중요 합니까 ?expl3\str_case:nnFstrcase

긴(텍스트) 답변은 피해주세요. 기본적인 부분만 설명해주시면 제가 원하는 곳 어디든 활용이 가능할 것 같아요.

답변1

최대한 짧게:

\str_case:nnF { <string> }
  {
    { <case 1> } { <code 1> }
    { <case 2> } { <code 2> }
    ...
    { <case n> } { <code n> }
  }
  { <false code> }

<string>이 명령은 각 문자열을 순서대로 비교 <case n>하고 일치하는 항목을 찾으면 해당 항목이 <code n>실행됩니다. 일치하는 항목이 없으면 <false code>실행됩니다.


예: 사용자가 , 또는 과 above같은 일부 옵션을 전달하고 선택한 옵션에 따라 일부 코드를 실행하고 말도 안되는 내용을 입력하면 오류가 발생하는 매크로가 있다고 가정합니다.centerbelow

\cs_new_protected:Npn \cfg_test:n #1
  {
    \str_case:nnF {#1}
      {
        { above  } { <'above' code> }
        { center } { <'center' code> }
        { below  } { <'below' code> }
      }
      { \msg_error:nn { cfg } { invalid-option } {#1} }
  }

그러면 \cfg_test:n {center}실행 <'center' code>되고 \cfg_test: {wrong}오류가 발생합니다(사용자 인터페이스용인 경우 l3keys대신 사용할 수 있음).


expl3 명령(변수는 다름) 형식의 이름은 다음과 같습니다.

\<module>_<name>:<signature>

해당 명령 <module>의 출처는 의 문자열 모듈이므로 문자열에서 작동한다는 것을 알 수 str있습니다 .expl3\str_case:nnF

<name>명령이 수행하는 작업을 말합니다. 다른 프로그래밍 언어의 구문 처럼 동작하는 함수 case에 사용됩니다 . 님의 기능expl3switch caseexpl3\<whatever>_case:nn(TF)언제나위와 동일한 일반 구문을 사용합니다. 수행하는 비교 유형만 변경됩니다. \int_case:nnF예를 들어, 동일한 작업을 수행하지만 정수를 비교합니다.

<signature>명령이 사용하는 인수 수와 유형을 알려줍니다 . n는 일반 {...}-구분 인수이며 와 F동일 n하지만 명령이 다음과 같이 평가되면 실행됩니다 false(이제 무슨 T뜻인지 추측해 보세요). 보세요expl3.pdf: 가능한 모든 서명과 커널에 대한 설명을 찾을 수 있습니다 <modules>. 그럼 좀 보세요interface3.pdf, 여기서 모든 명령이 수행하는 작업에 대한 설명을 찾을 수 있습니다 expl3.

관련 정보