hwp 수식을 LaTex로(hml-equation-parser)
수학 수식을 처리하는 방법이 항상 문제였는데 오픈 소스로 해결했다.. 관련기사, github
일단 이 패키지 작업 흐름은
- hwp 파일을 hml 형식으로 변환해서 저장하기
- 그 hml안의 수식을 LaTex화한 html 코드로 변환
이다.
작업 환경
Installation
만약 E: Unable to locate package
이런 오류가 생길 수도 있으니 미리 update 시켜주자.링크
$ sudo apt-get update
그 다음 hml-equation-parser 패키지를 설치해야한다. 하지만 주의해야 할 점이 있는데
$ sudo apt-get install pandoc
$ sudo pip3 install typing
$ sudo pip3 install hml_equation_parser
성공적으로 설치했는지 확인해보자!
$ python3
>>> import hml_equation_parser as hp
>>> hp.eq2latex("LEFT ⌊ a+b RIGHT ⌋")
'\\left \\lfloor a+b \\right \\rfloor'
이렇게 나온다면 성공!!
예제 코드를 실행해보자! hml 확장자를 가진 파일(ex. test.hml)을 준비하자.
test.py
import hml_equation_parser as hp
doc = hp.parseHmlSample("test.hml") # parse hml document and make ElementTree
doc = hp.convertEquationSample(doc) # find equations from ElementTree and convert them to latex string
string = hp.extract2HtmlStrSample(doc) # convert ElementTree to html document with MathJax.
import codecs
f = codecs.open("test.html", "w", "utf8")
f.write(string)
f.close()
test.html이 생성되면 성공이다.
## 주의점
-
윈도우에서 안 된다. (코덱 인코딩 문제… 아직 해결 無)
-
not supported tag
error가 있다.not supported tag: SECDEF not supported tag: COLDEF not supported tag: TABLE not supported tag: PICTURE
Written on December 3, 2017