@@ -147,6 +147,10 @@ def eval_tagbox(self, expr, form: Symbol, evaluation: Evaluation):
147147 assert isinstance (expr , BoxElementMixin ), f"{ expr } "
148148 return FormBox (expr , form , ** options )
149149
150+ @property
151+ def is_multiline (self ) -> bool :
152+ return self .boxes .is_multiline
153+
150154
151155class FractionBox (BoxExpression ):
152156 """
@@ -335,6 +339,10 @@ def eval_display(self, boxexpr, evaluation):
335339 """DisplayForm[boxexpr_InterpretationBox]"""
336340 return boxexpr .boxes
337341
342+ @property
343+ def is_multiline (self ) -> bool :
344+ return self .boxes .is_multiline
345+
338346
339347class PaneBox (BoxExpression ):
340348 """
@@ -379,6 +387,10 @@ def eval_display(boxexpr, evaluation):
379387 """DisplayForm[boxexpr_PaneBox]"""
380388 return boxexpr .elements [0 ]
381389
390+ @property
391+ def is_multiline (self ) -> bool :
392+ return self .boxes .is_multiline
393+
382394
383395class RowBox (BoxExpression ):
384396 """
@@ -445,6 +457,10 @@ def check_item(item):
445457
446458 self .items = tuple ((check_item (item ) for item in items ))
447459
460+ @property
461+ def is_multiline (self ) -> bool :
462+ return any (item .is_multiline for item in self .items )
463+
448464
449465class ShowStringCharacters (Builtin ):
450466 """
@@ -587,6 +603,10 @@ def init(self, boxes, style=None, **options):
587603 self .boxes , BoxElementMixin
588604 ), f"{ type (self .boxes )} ,{ self .boxes } "
589605
606+ @property
607+ def is_multiline (self ) -> bool :
608+ return self .boxes .is_multiline
609+
590610
591611class SubscriptBox (BoxExpression ):
592612 """
@@ -768,6 +788,10 @@ def eval_tagbox(self, expr, form: Symbol, evaluation: Evaluation):
768788 assert isinstance (expr , BoxElementMixin ), f"{ expr } "
769789 return TagBox (expr , form , ** options )
770790
791+ @property
792+ def is_multiline (self ) -> bool :
793+ return self .boxes .is_multiline
794+
771795
772796class TemplateBox (BoxExpression ):
773797 """
0 commit comments