
l3skip 표현을 어떻게 복구합니까 setlength
? 또는: length + stretch - shrink
로 어떻게 변환하나요 length plus stretch minus shrink\relax
?
\ExplSyntaxOn
\skip_const:Nn \c__par_skip { 1ex +0.2ex -0.1ex }
\setlength {\c__par_skip} % NOPE!
\exp_args:Nv \setlength {\skip_use:N \c__par_skip} % ALSO NO: skip_use:N evaluates
답변1
내 의견을 답변으로 바꾸기:
에 대한 입력 구문이 \skip_const:Nn
원하는 구문이 아닐 가능성이 높습니다. 표현식의 건너뛰기가 평가되므로 간단한 계산을 사용할 수 있으며, 1ex + 0.2ex - 0.1ex
이러한 계산으로 평가되고 결과는 다음과 같습니다 ( TeX로 / 로 1.1ex
변환되고 TeX의 기본 레지스터를 사용함).pt
sp
l3skip
대신에 접착제를 사용하여 건너뛰기를 입력하려면 다음과 같이 입력해야 plus
합니다 minus
.
\skip_const:Nn \c__douglas_par_skip { 1ex plus 0.2ex minus 0.1ex }
로드 된 article
기본 글꼴 크기를 \c__douglas_par_skip
사용하면 가 4.30554pt plus 0.86108pt minus 0.43057pt
.
이제 이것을 LaTeX2e 길이에 할당하려면 간단히 사용하면 \skip_use:N
위의 문자열이 삽입됩니다. 따라서 다음은 원하는 작업을 수행합니다.
\newlength \douglaslength
\setlength \douglaslength { \skip_use:N \c__douglas_par_skip }
MWE 완료:
\documentclass{article}
\ExplSyntaxOn
\skip_const:Nn \c__douglas_par_skip {1ex plus 0.2ex minus 0.1ex}
\newlength \douglaslength
\setlength \douglaslength { \skip_use:N \c__douglas_par_skip }
\showthe \douglaslength
\stop
인쇄물
> 4.30554pt plus 0.86108pt minus 0.43057pt.
l.7 \showthe \douglaslength
터미널로.
답변2
스킵은세 배의 값을 주문했습니다., 일반적으로 다음과 같이 입력됩니다.
<length1> plus <length2> minus <length2>
pt
첫 번째 길이는 표준 단위( , 등) 중 하나로 지정됩니다 mm
. cm
나머지 두 개는 표준 단위 또는 다음과 같이 지정할 수 있습니다.
fil fill filll
"무한 접착제 순서"에 해당합니다. 건너뛰기를 합산할 때 덧셈은 구성 요소별로 이루어집니다. 여기서 무한 글루가 유한 글루보다 이기고 l
'가 더 많은 글루가 '가 적은 글루보다 이깁니다 l
. plus
또는 중 하나가 누락된 경우 minus
(또는 둘 다) 트리플에 할당된 값은 암시적으로 입니다 0pt
. 길이는 정확한 순서로 지정되어야 합니다.
키워드 및는 plus
덧셈 minus
과 뺄셈의 표준 이름과 유사하지만 어떤 방식으로도 덧셈이나 뺄셈을 의미하지는 않습니다.
따라서 생각대로 건너뛰기를 입력하는 것은 잘못된 것입니다. 1ex +0.2ex -0.1ex
기본 할당이 있는 건너뛰기 사양에서 적합하지 않을 것입니다.
\skip0=1ex +0.2ex -0.1ex
plus
왜냐하면 TeX가 다음을 보지 못하자마자 <length1>
할당을 중단하기 때문입니다.
expl3
과제 와 함께
\skip_const:Nn \c__par_skip { 1ex +0.2ex -0.1ex}
expl3
할당이 "표현식"을 허용하기 때문에 다른 접근 방식이 사용됩니다 . 하지만 스킵은 어쨌든 표준적인 방식으로 입력되어야 합니다. 그 표현을 사용하면 다음과 같은 결과를 얻을 수 있습니다.
\skip0=1.1ex
"표현 건너뛰기"는 어떻게 작동하나요? 당신이 가지고 있다고 가정
\skip_new:N \l_dmt_a_skip
\skip_new:N \l_dmt_b_skip
\skip_new:N \l_dmt_c_skip
\skip_set:Nn \l_dmt_a_skip { 12pt plus 6pt minus 3pt }
\skip_set:Nn \l_dmt_b_skip { 24pt plus 1fil }
\skip_set:Nn \l_dmt_c_skip { \l_dmt_a_skip + \l_dmt_b_skip }
\skip_show:N \l_dmt_c_skip
그럼 당신은 얻을
\l_dmt_c_skip=36.0pt plus 1.0fil minus 3.0pt
구성요소별 추가가 작동하는 방식 때문에그리고무한 접착제의 규칙에 따라.