Skip to content

Commit

Permalink
Added support for oint and iiint
Browse files Browse the repository at this point in the history
  • Loading branch information
hrushikeshrv committed Feb 2, 2025
1 parent 97e8e9d commit d93d8eb
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 12 deletions.
16 changes: 10 additions & 6 deletions docxlatex/parser/ommlparser.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,18 +178,22 @@ def parse_nary(self, root: Element) -> str:
character_map = {
8721: "\\sum",
8747: "\\int",
8748: '\\iint',
8748: "\\iint",
8749: "\\iiint",
8750: "\\oint",
8751: "\\oiint",
8752: "\\oiiint",
}
char = 8747
for child in root:
if child.tag == qn("m:naryPr"):
for child2 in child:
if child2.tag == qn("m:chr"):
char = ord(child2.attrib.get(qn("m:val")))
text = character_map[char]
sub = ''
sup = ''
content = ''
text = character_map.get(char, character_map[8721])
sub = ""
sup = ""
content = ""
for child in root:
if child.tag == qn("m:sub"):
sub = self.parse(child)
Expand All @@ -216,5 +220,5 @@ def parse_nary(self, root: Element) -> str:
qn("m:sSubSup"): parse_s_sub_sup,
qn("m:sPre"): parse_s_pre,
qn("m:rad"): parse_rad,
qn('m:nary'): parse_nary,
qn("m:nary"): parse_nary,
}
Binary file added tests/docx/tags/nary/iiint.docx
Binary file not shown.
Binary file added tests/docx/tags/nary/iiint2.docx
Binary file not shown.
Binary file added tests/docx/tags/nary/iiint3.docx
Binary file not shown.
Binary file added tests/docx/tags/nary/oint.docx
Binary file not shown.
Binary file added tests/docx/tags/nary/oint2.docx
Binary file not shown.
Binary file added tests/docx/tags/nary/oint3.docx
Binary file not shown.
66 changes: 60 additions & 6 deletions tests/omml/test_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,19 +222,73 @@ def test_rad(self):

def test_nary(self):
text = (
Document("./docx/tags/nary/integral.docx").get_text(linear_format=False).strip()
Document("./docx/tags/nary/integral.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\int{x dx} $", text)
text = Document("./docx/tags/nary/integral2.docx").get_text(linear_format=False).strip()
text = (
Document("./docx/tags/nary/integral2.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\int_{0}^{1}{x dx} $", text)
text = Document("./docx/tags/nary/integral3.docx").get_text(linear_format=False).strip()
text = (
Document("./docx/tags/nary/integral3.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\int_{0}^{1}{x dx} $", text)
text = Document("./docx/tags/nary/iint.docx").get_text(linear_format=False).strip()
text = (
Document("./docx/tags/nary/iint.docx").get_text(linear_format=False).strip()
)
self.assertEqual("$ \\iint{xy dxdy} $", text)
text = Document("./docx/tags/nary/iint2.docx").get_text(linear_format=False).strip()
text = (
Document("./docx/tags/nary/iint2.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\iint_{0}^{1}{xy dxdy} $", text)
text = Document("./docx/tags/nary/iint3.docx").get_text(linear_format=False).strip()
text = (
Document("./docx/tags/nary/iint3.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\iint_{0}^{1}{xy dxdy} $", text)
text = (
Document("./docx/tags/nary/iiint.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\iiint{x dx} $", text)
text = (
Document("./docx/tags/nary/iiint2.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\iiint_{0}^{1}{x dx} $", text)
text = (
Document("./docx/tags/nary/iiint3.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\iiint_{0}^{1}{x dx} $", text)
text = (
Document("./docx/tags/nary/oint.docx").get_text(linear_format=False).strip()
)
self.assertEqual("$ \\oint{x dx} $", text)
text = (
Document("./docx/tags/nary/oint2.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\oint_{0}^{1}{x dx} $", text)
text = (
Document("./docx/tags/nary/oint3.docx")
.get_text(linear_format=False)
.strip()
)
self.assertEqual("$ \\oint_{0}^{1}{x dx} $", text)


if __name__ == "__main__":
Expand Down

0 comments on commit d93d8eb

Please sign in to comment.