Преобразование выражений с помощью FrontEnd

Как я недавно узнал , в Mathematica есть несколько типов выражений. ], которые автоматически анализируются FrontEnd.

Например, если мы оцениваем HoldComplete [Rotate [Style [expr, Red], 0.5]] , мы видим, что FrontEnd не отображает исходное выражение:

Screenshot

Можно ли контролировать такое поведение FrontEnd?

И можно ли получить полный список выражений, которые анализируются FrontEnd автоматически?


EDIT

Мы можем видеть вызовы MakeBoxes при использовании Print :

On[MakeBoxes]; Print[HoldComplete@Rotate["text", Pi/2]]

Но копирование и вставка распечатанного вывода дает измененное выражение: HoldComplete [Rotate ["text", 1.5707963267948966]] . Это показывает, что Print не учитывает HoldComplete .

При создании выходной ячейки также должны быть вызовы для MakeBoxes . Есть ли способ их увидеть?

7
задан Community 23 May 2017 в 12:00
поделиться