6

TeX「プリプロセッサ」の出力を見ることは可能ですか?e. 実際の出力が行われる前の中間ステップですが、すべてのユーザー定義マクロが置き換えられ、TeX プリミティブのサブセットのみが残っていますか?

それとも、そのような中間ステップはありませんか?

4

5 に答える 5

7

書く

\edef\xxx{Any text with any commands. For example, $\phantom x$.}

そして、ログファイルへの出力用

\show\xxx

またはドキュメントの出力用

\meaning\xxx
于 2010-03-17T16:36:58.400 に答える
4

TeX には、マクロ展開のトレースなど、さまざまなトレース ツールが組み込まれています。これは、実際に展開されているライブ マクロのみをトレースしますが、それでも非常に便利です。完全な詳細はThe TeXbookおよびおそらく他の場所にあります。

マクロの問題をデバッグしようとしているときは、通常、大きなハンマーを使用します。

\tracingall\tracingonline

次に、出力または .log ファイルを調べて、知りたいことを探します。

于 2010-03-18T00:15:40.213 に答える
4

Selective Macro Expanderを試してください。

于 2010-03-17T23:18:06.387 に答える
4

TeX には「プリプロセッサ」はありません。任意の段階の任意の制御シーケンスの置換テキストはさまざまです (これは多くのことに使用されます!)。例えば

\def\demo{\def\demo{cde}}
\demo

最初に \demo を 1 つの方法で定義し、次にそれを変更します。同様に、TeX プリミティブをリダイレクトできます。たとえば、LaTeX カーネルは \input を内部の位置に移動して変更します。簡易版:

\let\@@input\input
\def\input#1{\@@input#1 }
于 2010-03-17T17:40:18.737 に答える
0

この問題については、tex.SE でのこの質問とこの質問に関する多くの議論があります。しかし、最良の答え (IMO) はde-macro、TeXLive に付属している Python スクリプトであるプログラムを使用することであることに注意してください。それは非常に有能で、単純な置換だけでなく引数も処理できます。

これを使用するには、展開するマクロを <something>-private.styファイルに移動し、 でドキュメントに含めてから を\usepackage{<something>-private}実行しますde-macro <mydocument>。これ<mydocument>-clean.texは元のマクロと同じですが、プライベートマクロがより基本的なものに置き換えられています。

于 2016-04-19T15:48:45.980 に答える