Q&A 마당은 텍 관련 질문/답변을 위해 만들었습니다.
- 로그인 없이 자유롭게 글을 읽고 쓸 수 있는 철학은 처음과 같이 계속됩니다.
- 질문 전에 아래를 읽어 보세요. 좋은 질문이 좋은 답을 받을 수 있는 좋은 방법입니다.
- 질문에 맞는 제목을 붙이세요. 질문의 내용과 관련없는 "고수님", "긴급질문", "도와주세요"와 같은 제목은 답이 잘 올라오지 않습니다. 이 게시판에 올라오는 모든 글은 질문입니다. 굳이 [질문], [Q]를 적으실 필요도 없습니다.
- 내용을 충실히 적어 주시고, 같은 상황을 재현할 수 있는 최소한의 예제가 같이 있어야 합니다.
- 최소 예제는 "Minimal working example"을 읽어 보세요.
- 파일을 첨부하실 때에는 가능한 압축하여 파일 크기를 줄여서 올려주시길 바랍니다.
- 개인적으로 사용하신 글꼴이 들어 있는 경우, preparefont.sty에 관한 답변을 참조하세요.
- 스팸 글을 막기 위하여 짧은 시간 내에 다시 글이 등록되는 IP를 막거나, 광고 글을 막기 위하여 금지어로 .com, .net 등을 설정하고 있습니다. 다소간의 불편함이 있으시더라도 양해 바랍니다.
- 금지어에서 stackexchange, stackoverflow, ctan, overleaf, , github, google.com, gmail.com, .org, .io, sil.org, wiki.com, tistory.com등은 해제하였습니다.
- MathJax를 이용한 수식조판을 사용하실 수 있습니다. 여기를 참조하세요.
- 사용하는 편집기는 CKeditor입니다.
- 편집기에서 [enter]를 누르면 <p> 태그가 들어가고, 문단으로 생각하고 한 줄을 비웁니다.
- 글줄만 바꾸려면 [shift-enter]를 누르면 <BR> 태그가 들어가므로 용도에 맞게 나누어 쓸 수 있습니다.
- 수식를 문서내에 삽입하시려면 에디터를 툴바에서 [소스]를 눌러 HTML로 입력할 수 있게 바꾸신 후 <pre> </pre> tag를 사용하셔서 <pre> 여러 줄의 수식 </pre>처럼 입력하시면 좋습니다.
한글Markdown문서로 pdf 생성할 때 kotex 설정하는 방법(Sphinx, ReadtheDocs 환경)
2022.10.05 11:16
[배경설명]
ReadtheDocs for business(Sphinx) 서비스를 사용하는 경우 .rst 또는 .md 파일을 소스로 PDF문서를 자동으로 생성할 수 있습니다. 하지만 한글 부분이 표시되는 않는 문제가 있고 매뉴얼에도 중국어와 일본어에 대한 설정사항만 나와 있습니다.
[문제점]
PDF 파일 생성기능을 사용하기 위해 설정파일 conf.py에 매뉴얼에 따라 아래처럼 설정합니다.
(파일경로) \Sphinx_Project\docs\source\conf.py --- latex_engine = 'xelatex' latex_use_xindy = False ---
conf.py 파일 저장후 빌드하면 pdf 파일이 만들어지고, 화면왼쪽 메뉴에 pdf 파일을 다운로드 할 수있는 링크가 생깁니다. 하지만 한글부분이 모두 물음표(?)로 표시됩니다.
[해결방안]
kotex를 사용하도록 preamble 설정을 추가합니다. 설정하려면 아래 내용을 conf.py 파일에 추가해주시면 됩니다.
latex_elements = { 'preamble': '\\usepackage{kotex}\n', }
conf.py 설정한 예시:
파일 맨 아래쪽 'Unicode language settings for Korean' 항목을 참고하세요.
# -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ "myst_parser", "sphinx.ext.duration", "sphinx.ext.autosectionlabel", "sphinx.ext.autodoc", "nbsphinx", # MyST-NB "sphinx_rtd_theme", ] # intersphinx_mapping = {'python': ('https://docs.python.org/3', None)} # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path. exclude_patterns = [] # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # # html_theme = 'furo' html_theme = 'sphinx_rtd_theme' # html_theme = 'alabaster' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] # Add Unicode language settings for Korean latex_engine = 'xelatex' latex_use_xindy = False latex_elements = { 'preamble': '\\usepackage{kotex}\n', }
[질문사항]
위의 설정으로 진행하면 기본글꼴인 명조체로 PDF파일이 만들어집니다.
고딕 같은 다른 글꼴을 사용하려면 어떻게 하면 되는지 아시는 분 댓글 부탁드립니다.
감사합니다
댓글 4
-
noname
2022.10.05 12:55
-
jspaik
2022.10.06 08:18
도움주셔서 감사합니다.
설정사항을 그대로 복사해서 붙여넣기 해봤습니다.
그런데 PDF에서 한글이 부분이 표시가 되지 않습니다.
이전처럼 "?"로 자리표시가 되는 것도 아니고 그냥 공백입니다.
ㅠㅠ
-
likesam
2022.10.06 13:49
Noto Sans KR 글꼴이 설치되어 있어야 합니다. 아마 https://fonts.google.com/noto/specimen/Noto+Sans+KR 가 맞을 듯합니다.
이 글꼴을 TeX이 설치되어 있다고 알 수 있는 위치에 놓아 두어야 합니다. http://www.ktug.org/xe/index.php?document_srl=246627 를 참조하세요.
-
yihoze
2022.10.05 14:23
'preamble': '\\usepackage{kotex}\n'
kotex이 적절한 해법이 아닙니다. 왜냐하면 latex_engine에 xelatex을 설정하면 polyglossia를 부르게 되어 있습니다. 그런데 (sphinx가 여전히 낡은 docutils . writers . latex2e 모듈을 사용하고 있다면), gloss-korean.ldf가 로드되지 않습니다. Babel 파이썬 클래스에 korean이 정의되어 있지 않기 때문입니다. docutils 저자에게 이 문제에 대해 메일을 쓴 적이 있는데, 그의 답장을 받은 뒤에 sphinx 저자들에게 요청을 해야 한다는 것을 깨달았습니다.
아무튼 sphinx 저자들이, 다국어 조판을 위해, kotex을 쓸 수 있도록 고치지는 않을 것입니다. kotex을 사용해도 아마 별 문제는 생기지 않을 것입니다만, Babel이 'ko'를 인식하지 못하면 로캘 문제가 생깁니다. 즉 admonition을 사용하는 경우 "Caution"이 "주의"로 바뀌지 않죠.
이에 대해 제 블로그에 남겨둔 것이 있습니다. 도움이 되지 않을까 합니다.
https://hoze.tistory.com/1860
latex_engine = 'xelatex' latex_elements = { 'preamble': r''' \usepackage{kotex} \setmainhangulfont{Noto Sans KR} ''', }