1 tex live 팩키지관리자1

\(\TeX\) 엔진을 보좌하는 다양한 팩키지가 존재한다. \(\LaTeX\) 저작을 할 때 당연히 기본 \(\LaTeX\) 기능외에도 제3자가 개발한 팩키지를 활용하여 \(\LaTeX\) 저작물을 더욱 읽기 쉽고 가독성 높게 작성할 수 있다.

\(\LaTeX\)에서 많이 사용되는 팩키지 관리자는 \(\TeX\) 라이브 매니저 즉, tlmgr 이다. 텍라이브 팩키지 관리자는 운영체제와 독립적으로 이용되며 팩키지와 폰트 꾸러미를 설치 삭제하는데 큰 도움을 준다. 리눅스 package manager 나 R CRAN 혹은 파이썬 PIP 혹은 GitHub 저장소를 통해 동일한 개념을 활용하여 생태계 각각을 풍성하게 하고 영향력을 높여나가고 있다.

한글 폰트 설치 사례를 들어, 과거 폰트꾸러미를 설치하는 것과 팩키지 관리자 사용하는 것을 비교해보자.

고수의 영역 팩키지 관리자: tlmgr
  1. 폰트 꾸러미 설치
  2. updmap.cfg 에 해당 map 파일 기록
  3. udpmap-sys 실행
  1. tlmgr install nanumttf

2 tlmgr 팩키지 관리자

tlmgr info geometry 명령어를 통해서 이미 설치된 \(\LaTeX\) geometry 팩키지에 대한 정보를 확인할 수 있다.

tlmgr info geometry
package:     geometry
category:    Package
shortdesc:   Flexible and complete interface to document dimensions
longdesc:    The package provides an easy and flexible user interface to customize page layout, implementing auto-centering and auto-balancing mechanisms so that the users have only to give the least description for the page layout. For example, if you want to set each margin 2cm without header space, what you need is just \usepackage[margin=2cm,nohead]{geometry}. The package knows about all the standard paper sizes, so that the user need not know what the nominal 'real' dimensions of the paper are, just its standard name (such as a4, letter, etc.). An important feature is the package's ability to communicate the paper size it's set up to the output (whether via DVI \specials or via direct interaction with pdf(La)TeX).
installed:   Yes
revision:    54080
sizes:       src: 325k, doc: 921k, run: 45k
relocatable: No
cat-version: 5.9
cat-license: lppl1.3c
cat-topics:  geometry
cat-related: vmargin typearea geometry-de
cat-contact-bugs: https://github.com/davidcarlisle/geometry/issues
cat-contact-repository: https://github.com/davidcarlisle/geometry
collection:  collection-latex

이외에도 tlmgr 다양한 명령어를 통해 다양한 팩키지 관련 작업을 수행할 수 있다. 자세한 내용은 Basic Usage of tlmgr, the TEX Live Manager 을 참조한다. 기본 사용법은 쉘에서 다음 방식을 사용한다. 즉, 팩키지에 대한 정보를 확인하고 팩키지를 검색하고 팩키지를 설치하고 시간이 지나 최신 팩키지를 갱신하고 팩키지를 삭제하는 작업 등이 포함된다.

tlmgr [global options ] action [action-specific options] [operands]

  • info
  • search
  • install
  • update
  • remove
  • option
  • path
knitr::include_graphics("data/tlmgr.pdf")

3 한글 사설 저장소

tex live를 설치하게 되면 기본 주 저장소로 http://mirror.ctan.org/systems/texlive/tlnet 이 설정된다. 하지만 모든 팩키지가 기본 저장소에 등록된 것이 아니라서 한글의 경우 사설 저장소를 등록해서 필요한 팩키지를 설치해야 저작물 작성에 활용할 수 있다.

$ tlmgr repository list
List of repositories (with tags if set):
        http://mirror.ctan.org/systems/texlive/tlnet (main)

한글 lipsum 을 위해서 lipsum 팩키지 설치를 해야 되는 경우가 대표적인 사례다.

jiwonlipsum 팩키지는 KTUG Private Repository에 저장되어 있어 이를 설치한 후 한글 lipsum을 사용할 수 있다. jiwonlipsum 팩키지를 저장된 KTUG Private Repository 저장소 안내글을 참고하여 설치한다. 사설 저장소를 등록시키고 사설 저장소에 등록된 팩키지를 사용하는 작업흐름은 대략 다음과 같다.

  1. 사설 저장소를 등록한다.
    • $ <sudo> tlmgr repository add http://ftp.ktug.org/KTUG/texlive/tlnet/ ktug
  2. 사설 저장소 등록이 완료되면 tex live 팩키지 관리자가 신규 저장소를 파악해야 되는데 이 과정을 pinning이라고 한다.
    • $ <sudo> tlmgr pinning add ktug "*"
  3. 사설 저장소에 등록된 예를 들어 jiwonlipsum 등 필요한 팩키지를 설치한다.
    • $ <sudo> tlmgr install jiwonlipsum
  4. 시간이 오래 지난 후에, 저장소 등록 팩키지 업데이트 명령어는 다음과 같다.
    • $ <sudo> tlmgr update --all --self
tlmgr repository list
List of repositories (with tags if set):
    http://ftp.ktug.org/KTUG/texlive/tlnet/ (ktug)
    http://mirror.ctan.org/systems/texlive/tlnet (main)

4 팩키지 꿀팁

tex live를 용량이나 네트워크 등 다양한 이유로 인해서 전체 설치하지 않고 일부만 설치할 경우 특정 팩키지가 빠져 컴파일 과정에서 오류가 발생되는 경우가 종종 발생된다. 이런 문제는 다음과 같은 방식으로 문제를 해결한다.

xy.sty 파일이 정상적으로 설치된 경우 다음과 같이 확인되지만 없는 경우 package xy not present in repoistory와 같은 오류가 발생된다.

tlmgr search --global --file xy.sty
tlmgr: package repositories
    main = http://mirror.ctan.org/systems/texlive/tlnet (not verified: gpg unavailable)
    ktug = http://ftp.ktug.org/KTUG/texlive/tlnet/ (not verified: gpg unavailable)
For more about verification, see https://texlive.info/verification.html.
lwarp:
    texmf-dist/tex/latex/lwarp/lwarp-xy.sty
pb-diagram:
    texmf-dist/tex/latex/pb-diagram/pb-xy.sty
xypic:
    texmf-dist/tex/generic/xypic/xy.sty

이를 고치는 방식은 xypic 팩키지에 xy.sty 파일이 있는 것이 확인되기 때문에 xypic 팩키지를 설치한다.

tlmgr install xypic

kpsewhich xy.sty 명령어로 설치된 위치를 확인할 수 있다.

kpsewhich xy.sty
/usr/local/texlive/2020/texmf-dist/tex/generic/xypic/xy.sty

  1. 윤석천, 이주호 (2017), “텍라이브 매니저와 KTUG 사설 저장소,” TeX: 조판, 그 이상의 가능성↩︎

 

데이터 과학자 이광춘 저작

kwangchun.lee.7@gmail.com