Skip to content

Commit 9c5f3c9

Browse files
fix special issue in formula (#4468)
1 parent 7ae1000 commit 9c5f3c9

File tree

2 files changed

+38
-17
lines changed

2 files changed

+38
-17
lines changed

paddlex/inference/models/formula_recognition/processors.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,8 @@ def post_process(self, s: str) -> str:
337337
str: The post-processed LaTeX string.
338338
"""
339339
text_reg = r"(\\(operatorname|mathrm|text|mathbf)\s?\*? {.*?})"
340-
letter = "[a-zA-Z]"
341-
noletter = "[\W_^\d]"
340+
letter = r"[a-zA-Z]"
341+
noletter = r"[\W_^\d]"
342342
names = [x[0].replace(" ", "") for x in re.findall(text_reg, s)]
343343
s = re.sub(text_reg, lambda match: str(names.pop(0)), s)
344344
news = s
@@ -840,8 +840,8 @@ def normalize(self, s: str) -> str:
840840
str: Normalized string.
841841
"""
842842
text_reg = r"(\\(operatorname|mathrm|text|mathbf)\s?\*? {.*?})"
843-
letter = "[a-zA-Z]"
844-
noletter = "[\W_^\d]"
843+
letter = r"[a-zA-Z]"
844+
noletter = r"[\W_^\d]"
845845
names = []
846846
for x in re.findall(text_reg, s):
847847
pattern = r"\\[a-zA-Z]+"
@@ -874,7 +874,7 @@ def normalize(self, s: str) -> str:
874874
return s.replace("XXXXXXX", " ")
875875

876876
def remove_chinese_text_wrapping(self, formula):
877-
pattern = re.compile(r"\\text\s*{\s*([^}]*?[\u4e00-\u9fff]+[^}]*?)\s*}")
877+
pattern = re.compile(r"\\text\s*{([^{}]*[\u4e00-\u9fff]+[^{}]*)}")
878878

879879
def replacer(match):
880880
return match.group(1)

paddlex/inference/models/formula_recognition/result.py

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -164,18 +164,39 @@ def generate_tex_file(tex_file_path: str, equation: str) -> None:
164164
equation (str): The LaTeX equation to be written into the file.
165165
"""
166166
with custom_open(tex_file_path, "w") as fp:
167-
start_template = (
168-
r"\documentclass[varwidth]{standalone}" + "\n"
169-
r"\usepackage{cite}" + "\n"
170-
r"\usepackage{amsmath,amssymb,amsfonts,upgreek}" + "\n"
171-
r"\usepackage{graphicx}" + "\n"
172-
r"\usepackage{textcomp}" + "\n"
173-
r"\usepackage{xeCJK}" + "\n"
174-
r"\DeclareMathSizes{14}{14}{9.8}{7}" + "\n"
175-
r"\pagestyle{empty}" + "\n"
176-
r"\begin{document}" + "\n"
177-
r"\begin{large}" + "\n"
178-
)
167+
start_template = r"""
168+
\documentclass[varwidth]{standalone}
169+
\usepackage{cite}
170+
\usepackage{amsmath,amssymb,amsfonts,upgreek}
171+
\usepackage{graphicx}
172+
\usepackage{textcomp}
173+
\usepackage{xeCJK}
174+
\DeclareMathSizes{14}{14}{9.8}{7}
175+
\pagestyle{empty}
176+
\makeatletter
177+
\def\x@arrow{\DOTSB\Relbar}
178+
\def\xlongequalsignfill@{\arrowfill@\x@arrow\Relbar\x@arrow}
179+
\newcommand{\xlongequal}[2][]{\ext@arrow 0099\xlongequalsignfill@{#1}{#2}}
180+
\def\xLongleftrightarrowfill@{\arrowfill@\Longleftarrow\Relbar\Longrightarrow}
181+
\newcommand{\xLongleftrightarrow}[2][]{\ext@arrow 0099\xLongleftrightarrowfill@{#1}{#2}}
182+
\def\xlongleftrightarrowfill@{\arrowfill@\longleftarrow\relbar\longrightarrow}
183+
\newcommand{\xlongleftrightarrow}[2][]{\ext@arrow 0099\xlongleftrightarrowfill@{#1}{#2}}
184+
\def\xLeftrightarrowfill@{\arrowfill@\Leftarrow\Relbar\Rightarrow}
185+
\newcommand{\xLeftrightarrow}[2][]{\ext@arrow 0099\xLeftrightarrowfill@{#1}{#2}}
186+
\def\xleftrightarrowfill@{\arrowfill@\leftarrow\relbar\rightarrow}
187+
\newcommand{\xleftrightarrow}[2][]{\ext@arrow 0099\xleftrightarrowfill@{#1}{#2}}
188+
\def\xLongleftarrowfill@{\arrowfill@\Longleftarrow\Relbar\Relbar}
189+
\newcommand{\xLongleftarrow}[2][]{\ext@arrow 0099\xLongleftarrowfill@{#1}{#2}}
190+
\def\xLongrightarrowfill@{\arrowfill@\Relbar\Relbar\Longrightarrow}
191+
\newcommand{\xLongrightarrow}[2][]{\ext@arrow 0099\xLongrightarrowfill@{#1}{#2}}
192+
\def\xlongleftarrowfill@{\arrowfill@\longleftarrow\relbar\relbar}
193+
\newcommand{\xlongleftarrow}[2][]{\ext@arrow 0099\xlongleftarrowfill@{#1}{#2}}
194+
\def\xlongrightarrowfill@{\arrowfill@\relbar\relbar\longrightarrow}
195+
\newcommand{\xlongrightarrow}[2][]{\ext@arrow 0099\xlongrightarrowfill@{#1}{#2}}
196+
\makeatother
197+
\begin{document}
198+
\begin{large}
199+
"""
179200
fp.write(start_template)
180201
equation = add_text_for_zh_formula(equation)
181202
equation = get_align_equation(equation)

0 commit comments

Comments
 (0)