私は頻繁に何かを試し、少し内省して、物事がなぜうまく機能しないのかを調べます。ボックスを使用して、その幅、高さ、奥行きを取得することは、これに不可欠な部分です。
これは一時的なハッキング的なものなので、 の長い道のりをたどる必要があるのだろうかと思います。IIRC ボックスはレジスタのようなもので、番号が付けられています。そのため、スキップして だけでよいと\newsavebox{\blah}\setbox{\blah}{content}
思います。\newsavebox
\savebox{16}{content}
上記の推測は正しいでしょうか?
もしこのように動作するなら、比較的安全な数字はいくらでしょうか?
ラテックスはどのようにしてボックス番号を発行するのでしょうか?
0-255 または 255-0。先日、ボックス 0 と 255 には特別な意味があり、そのままにしておく方がよいことに気付きました。
後で再利用したいコンテンツを保存しない、そのような目的のための定義済みボックスはありますか?
答え1
LaTeXのボックス割り当てシステムはプレーンTeXから継承されているため、どちらの場合も同じルールが適用されます。ボックスには他のレジスタと同様に番号があり、ご覧のとおりその方法でアドレス指定できます。これは実際にはプリミティブ構文であり、LaTeX構文ではないため、
\setbox0=\hbox{content}
使えるレベルは低いですが、
\savebox{0}{content}
本当に奨励されるべきではありません!
Knuth は、特定の数のレジスタをスクラッチ スペースとして使用し、番号でアクセスできるようにするスキームを作成しました。慣例により、0 から 9 までの偶数番号のレジスタはスクラッチ スペースとして使用してローカルに設定できますが、同じ範囲の奇数番号のレジスタはグローバル スクラッチ スペースになります。ただし、非常に低いレベルを除き、名前付きスクラッチ スペースを使用する方がはるかに一般的です。\@tempboxa
たとえば、LaTeX で使用できます。
任意のレジスタを番号で直接使用できますが、他のコードが同じレジスタに割り当てられた名前を持っている場合があり、何をしようとしているのかがわからず、問題が発生する可能性があります。新しいボックス名を作成せずにマテリアルを保存する柔軟性が必要な場合は、独自の「プール」ボックスを定義することを強くお勧めします。
ここでの高レベル LaTeX 構文の全体的な目的は、ドキュメント作成者にツールを提供することであり、通常は資料専用の名前を付けたスペースを用意することが、はるかに最善のアプローチであることに注意してください。