diff --git a/EduNLP/SIF/parser/parser.py b/EduNLP/SIF/parser/parser.py index db290946..b5ed272d 100644 --- a/EduNLP/SIF/parser/parser.py +++ b/EduNLP/SIF/parser/parser.py @@ -226,7 +226,16 @@ def get_token(self): print("Warning: there is some chinese characters in formula!") self.warnning = 1 flag = 0 - self.head += 1 + self.head += 1 + elif flag and ch_informula == '\n': + # latex 中出现换行符,删除且打印一次 warning + print("Warning: there is a '\\n' in formula!") + self.warnning = 1 + flag = 0 + self.text = self.text[:self.head] + self.text[self.head + 1:] + self.modify_flag = 1 + else: + self.head += 1 if self.head >= len(self.text): self.call_error() return self.error @@ -324,6 +333,10 @@ def description_list(self): >>> text_parser.description_list() >>> text_parser.fomula_illegal_flag 1 + >>> text = '方程$x+y=2\n$' + >>> text_parser = Parser(text) + >>> text_parser.description_list() + Warning: there is a '\n' in formula! """ # print('call description_list') self.description() diff --git a/tests/test_sif/test_parser.py b/tests/test_sif/test_parser.py index 34f996d2..1d75c533 100644 --- a/tests/test_sif/test_parser.py +++ b/tests/test_sif/test_parser.py @@ -34,3 +34,7 @@ def test_parser(): text_parser = Parser(text) text_parser.description_list() assert text_parser.fomula_illegal_flag == 1 + + text = '方程$x+y=2\n$' + text_parser = Parser(text) + text_parser.description_list()