¿Cómo omitir \newsavebox?

¿Cómo omitir \newsavebox?

Con frecuencia pruebo cosas y hago un poco de introspección para descubrir por qué las cosas (no) funcionan como lo hacen. Utilizar cajas y obtener su ancho, alto y profundidad es una parte integral de esto.

Como esto es algo temporal, me pregunto si he recorrido el camino más largo \newsavebox{\blah}\setbox{\blah}{content}. Las cajas IIRC son como registros y están numeradas. Así que creo que puedo saltarme \newsaveboxy simplemente \savebox{16}{content}.

¿Es correcta la suposición anterior?

Si funciona de esta manera, ¿cuál es un número relativamente seguro para usar, es decir?

¿Cómo da el látex los números de las cajas?

0-255 o 255-0. El otro día me di cuenta de que las casillas 0 y 255 tienen un significado especial y es mejor dejarlas como están.

¿Existen cuadros predefinidos para tales propósitos, donde nunca se guardan para colocar el contenido que desea reutilizar más adelante?

Respuesta1

El sistema de asignación de cajas de LaTeX se hereda del TeX simple, por lo que se aplican las mismas reglas en ambos casos. Las cajas, como otros registros, tienen números y como observas se pueden direccionar de esa manera. Realmente esta es una sintaxis primitiva, no una sintaxis LaTeX, por lo que

\setbox0=\hbox{content}

es utilizable en un nivel bajo, pero

\savebox{0}{content}

¡Realmente no se debe alentar!

Knuth presentó un esquema para hacer que una cierta cantidad de registros estén disponibles como espacio temporal al que se puede acceder por número. Por convención, los registros pares del 0 al 9 se pueden utilizar como espacio temporal y establecerse localmente, mientras que los registros impares en el mismo rango son espacio temporal global. Sin embargo, excepto en un nivel muy bajo, es mucho más habitual utilizar espacio temporal con nombre: \@tempboxaestá disponible en LaTeX, por ejemplo.

Puede usar cualquier registro directamente por número, pero potencialmente tendrá problemas ya que otro código puede tener un nombre asignado para el mismo registro y no sabrá lo que está haciendo. Le recomiendo encarecidamente que defina sus propias cajas de "grupo" si desea cierta flexibilidad para guardar material sin crear nuevos nombres de cajas.

Tenga en cuenta que el objetivo de la sintaxis LaTeX de nivel superior aquí es proporcionar herramientas para los autores de documentos, donde normalmente tener un espacio con nombre dedicado para el material es, con diferencia, el mejor enfoque.

información relacionada