누군가가 예를 들어 명령이 xparse
어떻게 작동하는지 설명해 주시겠습니까 ? 여기서 중요 합니까 ?expl3
\str_case:nnF
str
case
긴(텍스트) 답변은 피해주세요. 기본적인 부분만 설명해주시면 제가 원하는 곳 어디든 활용이 가능할 것 같아요.
답변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
같은 일부 옵션을 전달하고 선택한 옵션에 따라 일부 코드를 실행하고 말도 안되는 내용을 입력하면 오류가 발생하는 매크로가 있다고 가정합니다.center
below
\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
에 사용됩니다 . 님의 기능expl3
switch case
expl3
\<whatever>_case:nn(TF)
언제나위와 동일한 일반 구문을 사용합니다. 수행하는 비교 유형만 변경됩니다. \int_case:nnF
예를 들어, 동일한 작업을 수행하지만 정수를 비교합니다.
<signature>
명령이 사용하는 인수 수와 유형을 알려줍니다 . n
는 일반 {...}
-구분 인수이며 와 F
동일 n
하지만 명령이 다음과 같이 평가되면 실행됩니다 false
(이제 무슨 T
뜻인지 추측해 보세요). 보세요expl3.pdf
: 가능한 모든 서명과 커널에 대한 설명을 찾을 수 있습니다 <modules>
. 그럼 좀 보세요interface3.pdf
, 여기서 모든 명령이 수행하는 작업에 대한 설명을 찾을 수 있습니다 expl3
.