KTUG 한국 텍 사용자 그룹

Menu

KTUG :: 마당자유글 › oblivoir와 HTML

noname | 2020.02.10 10:56:43 | 메뉴 건너뛰기 쓰기

oblivoir 클래스의 다음 버전에 HTML 변환을 지원하는 기능이 들어갈 예정입니다.

tex4ht로도 pandoc으로도 뭔가 여기저기 걸리는 게 많아서 html 문서를 쉽게 얻기 힘들었는데요, 고심끝에 lwarp를 지원하는 것으로 결정했습니다. 무엇보다 좋은 것은 mathjax를 자동화할 수 있다는 것이고 적어도 수식에 관한 한 (표준 수식만을 사용한 경우에) mathjax를 이용하여 좋은 웹문서를 만들 수 있습니다.

그러나, 이런 일이 다 그렇듯이 한방에 "완벽한 html"이 만들어지는 마법 같은 것은 없고요, 일단 문서의 내용이 html 형식으로 출력된다는 것이고 여기에 디자인을 입히는 것은 아마도 별도의 css 디자인이 필요하리라 봅니다. 그래도 css를 만드는 수고를 논외로 한다면 비교적 견실한 html를 얻을 수 있다고 생각합니다. 실용적으로 생각하더라도 중간 일거리를 많이 줄일 수 있겠죠.

그런데 샘플 문서를 만드는 것이 저로서는 아주 힘든 일이라서 도움을 청하는 바입니다. 제게 더 많은 사례 문서가 있을수록 버그 수정이나 품질 개선에 크게 도움이 될 것입니다.

다음 사항에 주의해주십시오.

  1. tabu는 안 되는 것으로... tabu 표는 tabularx나 tabular로 바꾸어야 할 겁니다. 게다가 lwarp 문서를 보면 아시겠지만 tabular는 아주 까다롭게 굴 때가 있습니다. tabular가 들어가는 환경을 정의할 때 & 문자의 catcode를 반드시 바꾸어주어야 하는데 이에 대해서는 lwarp 문서를 참고하시고요.
  2. 그밖에도 compatible하지 않은 패키지가 더 있을 것입니다.
  3. 사용자가 페이지스타일, 장스타일, 사용자 명령을 대량으로 정의해서 쓰는 경우에 모두 원하는 대로 동작한다고 보장하지 못합니다. html을 목적으로 한다면 이런 "복잡한" 정의들은 좀더 간명하고 표준적인 것으로 바꾸어 쓰는 것이 좋습니다. 그러나 어느 정도 에러 없이 컴파일될는지 제가 짐작할 수가 없으므로 이런 사례들도 보여주시면 감사하겠습니다. (아무튼 인쇄용 preamble과 html용 preamble을 별도로 정의하는 것이 효율적일 것이라고 짐작할 수 있습니다.)
  4. 현재 목적은 "컴파일 타임 에러가 발생하지 않는 것"입니다.
  5. pdftex을 위한 oblivoir는 이 기능을 제공하지 않을 예정입니다. memhangul-ucs에 기초한 파트는 더이상 업그레이드하지 않겠습니다.

첨부 파일을 모두 한 폴더에 풀어놓고 거기서 테스트하시기 바랍니다. html을 목적으로 하는 문서의 문서 옵션으로

\documentclass[lwarp,lwarpoption={mathjax}]{oblivoir}

라고 지정하면 lwarp를 실행할 준비가 갖추어집니다. mathjax 관련 옵션을 주지 않으면 mathjax가 동작하지 않습니다.

폴더 안에 testmathjax.tex이 있는데 이를 컴파일하여 에러가 없으면

$ lwarpmk html testmathjax

라는 명령을 실행합니다. 그러면 폴더에 testmathjax.html이 생겨나 있을 것입니다. 몇 개의 css도 생기므로 참고하십시오.

나중에 수정을 쉽게 하기 위해서 파일은 답글로 달겠습니다.

댓글 [9]

댓글 쓰기

목록 삭제

KTUG 한국 텍 사용자 그룹