TeX\special의 이진 데이터

TeX\special의 이진 데이터

\special? 에서 바이너리 정보를 출력할 수 있는지 묻고 싶습니다 . 가능하다면 TeX 소스에 바이너리를 어떻게 넣나요? 예를 들어 C/C++에서는 \0바이트를 가져오는 데 사용할 수 있으므로 00000000TeX에 해당하는 것은 무엇입니까?

답변1

즉, 바이너리 데이터를 DVI 파일로 가져오기 위해 소스 파일 \special에 무엇인가를 입력해도 될까요 .tex? 대답은 '아니요'입니다(아래 참조). 이는 TeX에서 \special실제로 특별하지 않기 때문입니다. 이는 단지 기본 명령( \defor 와 같은 \write)일 뿐이며 내부에 제공된 토큰을 작성하는 \special{...}동시에 이를 확장하는 등( \edefor \xdef)을 간단히 작성합니다. 임의의 이진 데이터를 TeX 토큰 목록으로 가져오는 것이 어렵기 때문에 해당 데이터를 DVI 파일에 쓸 수 없습니다. (단, 참조이 답변이는 를 사용하여 가능할 수 있는 방법을 지적합니다(그냥 가능하지만 쉽지는 않습니다!) pdflatex -8bit.

TeX 프로그램의 관련 섹션(다음을 참조하세요.texdoc tex), \special용도 show_token_list등을 보여줍니다.

<code>\특수</code> <code>\특수</code>

TeX 소스에서 이진 데이터를 작성할 수 있다고 해도 작동할까요? DVI 형식 자체는 특수 항목( xxx1to xxx4명령이라고도 함) 내에서 임의의 이진 데이터를 지원합니다. 그러나 데이터가 텍스트라는 관례가 있습니다. 실제로 명령에 ASCII가 아닌 데이터가 포함되어 dvitype있으면 오류나 경고가 표시됩니다 .xxx

<code>dvitype</code>

물론 이것은 DVItype이 작성되었을 때(마지막 업데이트 1995)부터의 관례일 수 있으며 다양한 패키지에서 생성된 DVI 특수 기능(또는 XeTeX가 해당 .xdv형식에서 수행하는 작업)을 조사하지 않았습니다. 따라서 특수한 내용을 해석하는 것은 전적으로 DVI 드라이버에 달려 있기 때문에 적어도 일부 DVI 드라이버에서는 바이너리 데이터를 갖고 이를 처리할 수 있습니다. 그러나 자신만의 DVI 드라이버를 작성하는 경우(여기에 특이한 특수 문자를 넣는 것으로 가정) 대신 base64 또는 일부 ASCII 전용 인코딩으로 이진 데이터를 작성한 다음 드라이버가 이를 디코딩하도록 할 수도 있습니다. 임의의 데이터로.

관련 정보