사용자가 입력할 수 있는 PDF의 ConTeXt에서 고유한 클로즈를 만드는 방법은 무엇입니까?

사용자가 입력할 수 있는 PDF의 ConTeXt에서 고유한 클로즈를 만드는 방법은 무엇입니까?

답변을 사용하여사용자가 PDF에 클로즈를 입력하도록 하는 방법은 무엇입니까?, 사용자가 PDF의 공백 채우기를 입력하는 클로즈 문서를 만들 수 있었습니다. 매크로에 코드를 사용했기 때문에 동일한 호출이 \field[cloze]여러 번 발생했습니다.

\setupinteraction[state=start]

\definefield[cloze][line]

\starttext

Frogs have four \field[cloze] and two eyes.
Frogs have four \field[cloze] and two eyes.
Frogs have four \field[cloze] and two eyes.
Frogs have four \field[cloze] and two eyes.

\stoptext

<<-- 한 필드에 입력하면 다른 필드에 복사됩니다.

문제는 사용자가 첫 번째 클로즈를 채울 때 Adobe Acrobat이 다른 모든 클로즈를 정확히 동일한 값으로 자동으로 채운다는 것입니다. 사용자가 다른 값을 입력해야 합니다.

\setupinteraction[state=start]

\definefield[cloze1][line]
\definefield[cloze2][line]
\definefield[cloze3][line]
\definefield[cloze4][line]

\starttext

Frogs have four \field[cloze1] and two eyes.
Frogs have four \field[cloze2] and two eyes.
Frogs have four \field[cloze3] and two eyes.
Frogs have four \field[cloze4] and two eyes.

\stoptext

<<-- 한 필드에 입력을 시도하면 더 이상 다른 필드에 복사되지 않습니다.

이제 Minimal Working Answer의 해결책은 \field[cloze]를 변경하여 \field[tree] 및 \field[mountain]과 같이 각 클로즈에 대해 서로 다른 이름을 갖도록 하는 것입니다. 문제는 이를 일부에 포함하여 사용하고 있다는 것입니다. 복잡한 매크로. \field[#1]을 사용하여 다른 값을 보내려고 시도했고 \field[\expanded[#1]] 및 \field[\randomnumber{0}{10000000}], \def\somevalue{\randomnumber{0} {10000000}}\field{\expanded{somevalue}} 등 및 기타 여러 코드 조합을 사용했지만 시도한 모든 것이 컴파일에 실패했습니다. 매크로의 여러 레이어가 깊기 때문에 \field[cloze]를 다른 값으로 수동으로 변경할 수 없습니다.

답변의 코드를 어떻게 사용할 수 있습니까? 각 클로즈는 사용자가 고유한 값을 입력할 수 있는 장소이고 해당 값은 모든 클로즈에 자동으로 복사되지 않습니다.

답변1

확장할 필요는 없습니다. ConTeXt는 어쨌든 이름을 확장합니다. 또한 임의의 값 대신 gloabl 카운터를 권장합니다. 이는 문서의 재현성과 신뢰성을 더욱 높여줍니다.

\setupinteraction[state=start]

\newcount\clozecount
\def\mycloze{%
  \global \advance \clozecount by 1
  \definefield[uniqcloze\the\clozecount][line]%
  \field[uniqcloze\the\clozecount]%
}

\starttext

Frogs have four \mycloze\ and two eyes.
Frogs have four \mycloze\ and two eyes.
Frogs have four \mycloze\ and two eyes.
Frogs have four \mycloze\ and two eyes.

\stoptext

관련 정보