설치(상위 항목)
개요 ¶
- TinyTeX is a lightweight, cross-platform, portable, and easy-to-maintain LaTeX distribution based on TeX Live. You may see the Github repo (https://github.com/yihui/tinytex) and project homepage (https://yihui.org/tinytex/) for more info.
- windows용으로 가장 작은 배포 크기는 무려 27 MB 밖에 안된다.
- 아마도 R에서 Rmarkdown용으로 사용하기 위하여 크기가 작은 배포판을 만든 것이 시작으로 보인다. (R에서 파생된 것으로 보이는 것은 CRAN에서 미러링하는 것을 봐도 그러하다.)
- https://github.com/yihui/tinytex-releases
- https://cran.r-project.org/web/packages/tinytex/index.html
활용 ¶
지난해(2020) 텍커널이 변경되는 바람에 미국물리학회 논문투고용 RevTeX4-2 버전이 4-2c에서 4-2e로 바뀌었습니다.
새 텍에서는 4-2c 등 구버전이 안돌아 가서 새버전을 배포한겁니다. 그런데 새버전 4-2e는 구버전 텍에서도 호환성이 유지된다고
광고에는 나와있지만, 2019 텍으로 써 보니 안먹히더군요. 사실 구버전 텍과 구버전 ReVTeX4-2c로 맞추면 무난히 넘어갈
일이지만, 시간에 쫓기는 것도 아니고 또 호기심도 일어서, 새 텍도 하나 가지려고 여기저기 찾아보던 중에 우연히 TinyTeX을
발견하였던 겁니다. 다운 사이트에서 설명하는 대로, 세가지 배포판이 있습니다. TinyTeX-0, TinyTeX-1, TinyTeX 등입니다.
첫번째 것은 텍의 infra 시스템만 있고 텍 자체는 없습니다. 크기는 작지만 삽질을 꽤 해야 될겁니다. 두번째 TinyTeX-1은
dvi 출력하는 LaTeX, pdf 출력하는 pdfLaTeX은 물론이고 XeLaTeX, LuaTeX도 기본설치는 되어있습니다. LiveTeX 기반으로
되어 있어서, 필요한 패키지는 TLmgr로 다 설치됩니다. 세번째 것은 TinyTeX-1에 패키지가 몇개 추가되어 있고, 유틸리티도
몇개 더 있더군요. 유틸리티는 Ktug의 TnXTeX에 충분히 들어있고, 또 버전도 최신버전과 다르지 않으므로, 구태여 욕심낼게
아니더군요. 저는 TinyTeX-1으로 결정하여 설치했습니다. (필요한거 다 설치하고나서도 500메가 넘지 않습니다.)
사실 설치랄 것도 없는 portable입니다. 다운받고 압축 풀면 TinyTeX이란 폴더가 생기는데 그안의 tl-tray-menu.exe 실행하면
화면 우측 하단에 있는 트레이 안에 무슨 동물 머리모양의 아이콘이 생겨납니다. (화면상에는 아무 변화도 일어나지 않고 단지
우측 하단에 TeXLive Menu가 생겼다는 안내가 잠깐 나타났다가 사라집니다.)
그걸 우클릭해서 Command Prompt 선택하면 도스명령창이 뜹니다. Ktug의 TnXTeX과 동일한 구조이고 사용법도 똑같습니다.
하나 특이해 보이는건 pdflatex 실행할때 문서에 .eps 그림파일이 있으면 에러납니다. 이걸 epstopdf를 써서 .pdf 파일로
바꿔줘야 합니다. 이건 알아서 하시겠지만, 제 경우는 sumatrapdf viewer 최신버전을 사용해서 eps를 읽고 pdf로 저장하면
되더군요. 단, 컴에 ghostscript가 설치되어 있어야 합니다. 전엔 gsview 쓰면 됐는데 요새는 그걸 배포하지 않는거 같습니다.
한글관련 패키지 설치하기 전에 아래 있는 명령을 먼저 수행해야 합니다. (mac용, linux용도 있습니다.)
tlmgr repository add https://cran.asia/KTUG/texlive/tlnet/ ktug tlmgr pinning add ktug "*"
Windows에서 사용하기 ¶
PATH에 추가하여 사용하기 ¶
- 위의 단락은 TinyTeX을 portable로 사용하는 예를 들고 있다.
- 시스템에 등록하여, 아래 설명할
tinitex
과 함께 마치 TeXLive를 설치한 것처럼 상시 사용하게 하려면 PATH에 추가한다. 예를 들어 TinyTeX을C:\usr\TinyTeX
아래에 풀어놓았다면,- Windows 11의 "고급 시스템 설정" -> "환경변수" -> "사용자 변수" -> PATH에
C:\usr\TinyTeX\bin\win32
를 추가한다. - 위의 방법이 번거롭다면 명령행에서 할 수 있다. 명령행을 열고, TinyTeX\bin\win32 폴더로 이동한 다음 이 위치에서
.\tlmgr path add
를 실행한다. 성공적으로 추가되었다는 메시지가 나오면, 이 명령행 창을 닫고 재실행한다(필수). 이 방법으로는 보통 User 변수로 (즉 PATH 변수열의 제일 마지막에) 명령이 실행되는 위치가 PATH에 추가된다. 나중에 add 대신 remove로 제거할 수 있다.
- Windows 11의 "고급 시스템 설정" -> "환경변수" -> "사용자 변수" -> PATH에
- 명령행을 재실행하여 tlmgr --version 명령을 주어 TinyTeX이 마치 TeXLive를 설치한 것처럼 동작하는지 확인.
- 이런 식으로 사용할 때에는 트레이 아이콘을 띄울 필요가 없다.
tinitex
유틸리티 ¶
별도로 다운로드받을 수 있는 tinitex은 windows의 경우
tinitex.exe
라는 실행파일 하나로 이루어져 있다.
- 압축을 풀어서
tinitex.exe
를 PATH에 포함된 폴더에 가져다둔다. (예: TinyTeX/texlive/bin/win32/) - 이 유틸리티의 가장 중요한 역할은 현재 로컬 시스템에 설치되어 있지 않은 패키지를 필요하다면 자동으로 설치하면서 pdf를 생성하는 것이다.
- tlmgr repository로
CTAN mirror 한 곳과KTUG PR mirror를 등록해두는 것이 좋다.# tlmgr repository add http://cran.asia/KTUG/texlive/tlnet ktug # tlmgr pinning add ktug "*"
- 다음과 같이 실행 엔진을 지정하여 컴파일할 수 있다. 더 자세한 옵션에 대해서는 tinitex --help.
# tinitex --pdf-engine xelatex filename.tex
- tinitex은 MiKTeX의 mpm이나
texliveonthefly
또는 사설저장소 ktugbin 패키지의kconthefly
와 비슷하게 동작한다. - 대부분의 패키지는 성공적으로 설치된다. (repository가 잘 지정되어 있을 경우에) 다만 오픈타입 폰트는 자동 설치에 실패하는 경우가 있다. 예컨대
UnBatang.ttf
는 자동 설치가 되지만UnYetgul.ttf
는 실패한다. 대부분의 오픈타입 폰트는 별도로 이를 설치하는 것을 고려하는 것이 좋다. 예를 들면 libertine, texgyre 등.# tlmgr install libertine tex-gyre tex-gyre-math
- pdflatex으로 kotex을 사용하는 경우에, 다음 몇 개의 패키지를 수동 설치해두는 것이 좋다.
# tlmgr install kotex-plain nanumtype1
- 또한 xelatex으로 kotex을 사용하는 경우에 다음 폰트를 미리 설치해두는 것이 좋다.
# tlmgr install unfonts-core unfonts-extra
- pdflatex으로 kotex을 사용하는 경우에, 다음 몇 개의 패키지를 수동 설치해두는 것이 좋다.
XeLaTeX과 폰트 ¶
- XeLaTeX의 원활한 사용을 위해서 font config 설정을 수정해야 한다. texmf-var\fonts\config에 있는
fonts.conf
파일의 내용을 자신에게 맞게 고쳐야 하는데, 이것이 매우 귀찮고 portable로 사용하려 할 적에 새로운 기계에서 매번 수정해야 하는 것은 부담이 되므로 한방에 설정할 수 있게 하는 배치파일을 작성하였다. 첨부 파일을 다운로드받아 반드시 압축을 풀어서 두 개의 파일을 동일한 디렉터리에 두고,tinytexfontconfig.bat
를 실행하라. 이 동작은 TinyTeX이 활성화된 환경, 즉 (별도로 PATH를 설정하지 않았다면) 트레이로부터 연 명령행에서 실시하여야 한다.tinytexfontconfig.zip (1.36 KB) (2021/11/04 업데이트: 아래 항목 추천 사항에 texmf-local을 폰트를 저장하는 폴더로 하라는 권유가 있기 때문에 이 폴더도 fontconfig에 적용을 받도록 수정함.)
응용 ¶
tinitex 유틸리티 활용: TinyTeX-0을 이용한 XeLaTeX 전용 작은텍 만들기 ¶
배포판 중 제일 작은 TinyTeX-0을 이용하면 아주 작지만 쓰기에 부족함이 없는 XeLaTeX 전용 텍시스템을 만들 수 있는데, 손작업이라면 고된 삽질이지만, 위에 나와있는 tinitex 유틸리티를 쓰면 한시간도 안걸려서 자신만의 전용 시스템을 만들 수 있습니다.
- TinyTeX-0, tinitex을 다운받고 압축 푼다. 매달 새버전을 배포함. (https://github.com/yihui/tinytex-releases/releases)
- 생겨난 TinyTeX 폴더에 위 유틸리티를 갖다 놓고, 간단한 한글문서를 만들어 둔다. 예컨대
\documentclass{oblivoir} \begin{document} 한글사랑 \end{document}
- 본인이 선호하는 한글꼴 하나정도를 미리 준비한다.(윈도에 이미 있는 거라면 통과)
- 이공계열 문서작성자라면 수학글꼴 stix2를 강력히 추천한다. 수식에 집중하게 만드는 글꼴이다. 여기서(https://www.stixfonts.org/) 다운받고 수학글꼴 STIXTwoMath-Regular.otf만 챙긴다. 텍스트는 윈도에 있는 times new roman이면 차고 넘치므로. 그리고 간단한 수식문서를 준비한다. (revtex template 파일이면 충분)
tlmgr install stix2-otf
- 이상의 준비물은 다 TinyTeX 폴더에 두고서 tl-tray-menu.exe를 구동한다.
- 도스창에서 우선 다음을 실행한다.
tlmgr repository add http://mirror.kakao.com/CTAN/systems/texlive/tlnet kakao tlmgr pinning add kakao "*" tlmgr repository add http://cran.asia/KTUG/texlive/tlnet ktug tlmgr pinning add ktug "*"
- XeLaTeX을 먼저 설치한다.
tlmgr install xetex
- 준비한 한글 글꼴을 texmf-local\fonts 폴더에 장착한다. 수학글꼴도 같이 장착한다. (글꼴 자동설치를 회피하려고)
- 한글 패키지를 설치하기 위해서
tinitex --pdf-engine xelatex (준비한 한글문서 file name)
- revtex 패키지를 설치하기 위해서
tinitex --pdf-engine xelatex revtex-template
- 이상을 설치하고 나서 다못한 설치는 몇개 안되니 수동으로 마감한다. 예컨대
tlmgr install hangulfontset tlmgr install amsmath bibtex siunitx unicode-math
예제: pdflatex 문서를 xelatex 문서로 바꾸기 ¶
- \usepackage{bm}이 있으면 comment 처리해서 다음 다섯줄을 적어 넣으면 끝.
\usepackage{fontspec} \usepackage{unicode-math} \setmainfont[Ligatures=Rare]{Times New Roman} \setmathfont{STIXTwoMath-Regular.otf} \renewcommand{\bm}{\symbf}
- 첨부한 파일꾸러미는 RevTeX aps sample이며 이 문서는 LaTeX으로 처리해서 dvi 파일을 만들기 위한 문서이다. 그림파일을 불러오는 \includegraphics{파일명)에서 파일명의 .eps를 생략해도 LaTeX이 알아서 잘 처리한다. XeLaTeX으로 처리할려면 파일명의 .eps를 생략할 수 없다. 그림을 pdf 파일로 바꿔주지 않아도 xelatex이 잘 처리한다.
amssamp.zip (531.67 KB)
- xelatex 문서를 다시 pdflatex 문서로 바꾸려면 위의 다섯줄을 comment 처리하고 bm 패키지를 쓴다면 살려놓는다. pdflatex은 eps 그림을 자동으로 pdf 그림으로 바꿔 준다. (그림파일명에 .eps 있어야 하고, epstopdf-pkg 패키지가 있어야 함-이것도 tinitex으로 설치할 수있지만 이 글을 읽는 이의 연습문제로 남겨둡니다.. ^_^)
- 다음을 실행해서 패키지도 더 추가하고, 타임스 글꼴과 힘있는 수학글꼴을 쓰면 문서가 어떻게 보이는지 감상해 보자.
tinitex --pdf-engine xelatex apssamp-x
(첨부한 apssamp-x.pdf와 원본인 apssamp-org.pdf를 자세히 봤더니, apssamp-x.pdf에서는 수식의 calligraphic symbol이 작용하지 않았더군요. 그래서 소스를 보니까 {\cal M}으로 되어 있습니다. 이걸 {\mathcal M}으로 바꾸면 원본처럼 됩니다. pdflatex에서도 \mathcal이 통합니다. preamble에 한줄 \renewcommand{\cal}{\mathcal) 더 적고 xelatex 컴파일 하세요...)
- 참고로, 위 \setmainfont에서 Ligatures=Rare 옵션은 times 글꼴 Ligature를 살리려고 준건데 TOC (table of content) 파일 만들 때 오류가 나더군요. .toc 파일은 Ligatures=TeX 옵션으로 만들고 나서 두번째 컴파일할 때 Ligatures=Rare 옵션을 주면 넘어갑니다.
여기서 unicode-math 패키지를 맨 나중에 불러오는 것을 잊지 말아야 하며, ReVTeX에서 많이 쓰는 bm (bold math) 패키지는 이 unicode-math와 충돌한다. 원래 bm패키지는 greek symbol을 bold로 바꿀 때 쓰는데, unicode-math에서는 \symbf 명령을 쓴다.