
답변을 사용하여사용자가 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