Datos binarios en TeX \special

Datos binarios en TeX \special

Quiero preguntar si puedo generar información binaria en \special. Si es posible, ¿cómo pongo el binario en la fuente TeX? En C/C++, por ejemplo, \0se puede usar para obtener el byte 00000000, entonces, ¿cuál podría ser el equivalente para TeX?

Respuesta1

Si quiere decir, ¿puedo escribir \specialseguido de algo en el .texarchivo fuente para obtener datos binarios en el archivo DVI? Entonces la respuesta es no (pero consulte a continuación). Esto se debe a que en TeX \specialno es realmente especial: es solo un comando primitivo (como \defo \write), y simplemente escribe los tokens que se dan dentro \special{...}, mientras los expande y así sucesivamente (como \edefo \xdef). Como es difícil incluir datos binarios arbitrarios en una lista de tokens TeX, no es posible escribirlos en un archivo DVI. (Sin embargo, veresta respuestalo que señala una forma en que puede ser posible (¡simplemente posible, no fácil!) usar pdflatex -8bit.)

Las secciones relevantes del programa TeX (verlo contexdoc tex), mostrando que \specialutiliza show_token_list, etc.:

<código>\especial</código> <código>\especial</código>

Incluso si pudiera obtener datos binarios escritos desde la fuente TeX, ¿funcionaría? El formato DVI en sí admite datos binarios arbitrarios dentro de especiales (también conocidos como comandos xxx1to xxx4). Sin embargo, existe una convención de que los datos son texto; de hecho, dvitypeda un error o advertencia cuando un xxxcomando contiene datos que no son ASCII.

<código>tipodvi</código>

Por supuesto, esto puede ser simplemente una convención de la época en que se escribió DVItype (última actualización en 1995), y no he examinado los especiales de DVI producidos por varios paquetes (o lo que hace XeTeX en su .xdvformato). Por lo tanto, es posible que pueda tener datos binarios allí y salirse con la suya, al menos en algunos controladores DVI, ya que la interpretación del especial depende completamente del controlador DVI. Pero si está escribiendo su propio controlador DVI (lo cual se supone si está colocando especiales inusuales allí), entonces también podría escribir los datos binarios en base64 o alguna codificación solo ASCII y luego hacer que el controlador los decodifique. en datos arbitrarios.

información relacionada