@@ -75,6 +75,10 @@ class SepSegment(str):
75
75
pass
76
76
77
77
78
+ class TextFSegment (str ):
79
+ pass
80
+
81
+
78
82
class SegmentList (object ):
79
83
def __init__ (self , item , figures : dict = None ):
80
84
self ._segments = []
@@ -104,6 +108,9 @@ def __init__(self, item, figures: dict = None):
104
108
self .append (TagSegment (segment [1 :- 1 ]))
105
109
elif re .match (r"\$\\SIFSep\$" , segment ):
106
110
self .append (SepSegment (segment [1 :- 1 ]))
111
+ elif re .match (r"\$\\textf\{[^,]+?,b?d?i?t?u?w?}\$" , segment ):
112
+ seg_capture = re .match (r"\$\\textf\{([^,]+?),b?d?i?t?u?w?}\$" , segment )
113
+ self .append (TextFSegment (seg_capture .group (1 )))
107
114
else :
108
115
self .append (LatexFormulaSegment (segment [1 :- 1 ]))
109
116
self ._seg_idx = None
@@ -115,8 +122,12 @@ def __len__(self):
115
122
return len (self ._segments )
116
123
117
124
def append (self , segment ) -> None :
118
- if isinstance (segment , TextSegment ):
119
- self ._text_segments .append (len (self ))
125
+ if isinstance (segment , TextSegment ) or isinstance (segment , TextFSegment ):
126
+ if len (self ._text_segments ) != 0 and self ._text_segments [- 1 ] == len (self ) - 1 :
127
+ self ._segments [- 1 ] = self ._segments [- 1 ] + segment
128
+ else :
129
+ self ._text_segments .append (len (self ))
130
+ self ._segments .append (segment )
120
131
elif isinstance (segment , (LatexFormulaSegment , FigureFormulaSegment )):
121
132
self ._formula_segments .append (len (self ))
122
133
elif isinstance (segment , FigureSegment ):
@@ -129,7 +140,10 @@ def append(self, segment) -> None:
129
140
self ._sep_segments .append (len (self ))
130
141
else :
131
142
raise TypeError ("Unknown Segment Type: %s" % type (segment ))
132
- self ._segments .append (segment )
143
+ if isinstance (segment , TextFSegment ) or isinstance (segment , TextSegment ):
144
+ pass
145
+ else :
146
+ self ._segments .append (segment )
133
147
134
148
@property
135
149
def segments (self ):
0 commit comments