Code
::include_graphics("data/tlmgr.pdf") knitr
\(\LaTeX\) 프로젝트 구조는 다음과 같다.
PDF는 이동 가능 문서형식으로 번역되며 Portable Document Format의 약자기도 하지만 파일명이기도 하다. PDF 파일에는 일반 문서 및 문자, 도형, 그림, 글꼴이 포함된다. 아도브(Adobe)에서 1993년에 개발한 전자 문서 형식이자 국제 표준(ISO) 문서 형식(ISO 19005)으로 어느 환경에서나 동일한 결과물을 보여주기 위해 개발되어 사실상 문서를 주고 받을 때 사용하는 표준으로 자리잡았다. 좀더 쉽게 PDF는 컴퓨터 환경에 관계없이 같은 표현을 하기 위한 목적으로 개발되었고, 장치 독립성 및 해상도 독립성을 가진다라고 이해할 수 있다. pdf
는 어디까지나 출력해서 얻는 ’인쇄물’이라 이를 편집하기 위해서는 전용 소프트웨어가 따로 필요하다. 윈도우에서는 PDF Writer Distiller
, 리눅스에서는 PDF Studio
가 대표적이다.
.pdf
가 사실상의 표준이 되기 이전 팩스기에서 나온 TIFF
파일, 아도브 자사 포스트스크립트(.ps
), AT&T 연구소에서 도서관의 도서나 각종 문서보관을 위햇 개발된 DuVu 프로젝트에서 나온 .djv
, .djvu
등이 있었지만 결국 .pdf
파일로 정리되었다.
\(\TeX\) 엔진을 보좌하는 다양한 팩키지가 존재한다. \(\LaTeX\) 저작을 할 때 당연히 기본 \(\LaTeX\) 기능외에도 제3자가 개발한 팩키지를 활용하여 \(\LaTeX\) 저작물을 더욱 읽기 쉽고 가독성 높게 작성할 수 있다.
\(\LaTeX\)에서 많이 사용되는 팩키지 관리자는 \(\TeX\) 라이브 매니저 즉, tlmgr
이다. 텍라이브 팩키지 관리자는 운영체제와 독립적으로 이용되며 팩키지와 폰트 꾸러미를 설치 삭제하는데 큰 도움을 준다. 리눅스 package manager
나 R CRAN
혹은 파이썬 PIP
혹은 GitHub 저장소를 통해 동일한 개념을 활용하여 생태계 각각을 풍성하게 하고 영향력을 높여나가고 있다.
한글 폰트 설치 사례를 들어, 과거 폰트꾸러미를 설치하는 것과 팩키지 관리자 사용하는 것을 비교해보자.
고수의 영역 | 팩키지 관리자: tlmgr |
---|---|
|
|
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
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 저장소 안내글을 참고하여 설치한다. 사설 저장소를 등록시키고 사설 저장소에 등록된 팩키지를 사용하는 작업흐름은 대략 다음과 같다.
$ <sudo> tlmgr repository add http://ftp.ktug.org/KTUG/texlive/tlnet/ ktug
tex live
팩키지 관리자가 신규 저장소를 파악해야 되는데 이 과정을 pinning
이라고 한다.
$ <sudo> tlmgr pinning add ktug "*"
jiwonlipsum
등 필요한 팩키지를 설치한다.
$ <sudo> tlmgr install jiwonlipsum
$ <sudo> tlmgr update --all --self
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
팩키지를 설치한다.
kpsewhich xy.sty
명령어로 설치된 위치를 확인할 수 있다.
distiller
파워포인트 파일 크기가 370 메가바이트로매우 크지만 이를 “다른 이름 저장”을 통해 PDF로 변환시키게 되면 크기를 다소 줄일 수 있지만, PDF Writer distiller
로 변환시킬 경우 크기를 획기적으로 줄일 수 있다.
레이저 프린터로 고화질 출력을 할 경우 포스트스크립트(Postscript)를 사용해서 레이저 프린터로 출력할 수 있다. 이를 다시 PDF Writer Distiller
를 사용해서 PDF 파일을 제작할 수 있고 현재는 기술이 많이 발달해서 워드, 아래한글 등 다양한 문서 저작 편집기를 사용해서 바로 PDF 파일을 제작할 수 있다.
pdfsizeopt
또다른 방식으로 pdfsizeopt
는 시각적 품질을 저하시키거나 대화형 기능(예: 하이퍼링크)을 제거하지 않고 대용량 PDF 파일을 작은 파일로 변환하는 프로그램이다. pdfsizeopt
는 Linux, Windows, macOS, Unix 환경에서 동작하고, TeX
및 LaTeX
문서에서 생성된 PDF를 중심으로 PDF 파일 크기를 최적화하는 모범 사례를 모아둔 패키지다. pdfsizeopt는 Python으로 작성되어 속도가 약간 느리지만, 무거운 작업의 일부를 더 빠른 종속성(C, C++ 및 Java)으로 구현했다.
tools
R tools
패키지 compactPDF()
명령어로 PDF 파일 크기를 줄일 수 있다.
Adobe
웹사이트Adobe Acrobat Compress PDF size 웹사이트에 PDF를 끌어다 놓아 PDF 압축기로 파일 크기를 줄이는 것도 가능하다.
종이 크기(Standard Paper Size)는 수많은 표준이 있으며 나라와 시기에 따라 다르다. 오늘날 쓰이는 크기에는 대한민국에서 활용하는 국제 표준인 ISO A형(A4 등 A 계열)과 북아메리카(North American) 미국 종이 크기가 있다. 국제 종이 크기 표준은 ISO 216이며 이를 따라 제작한 종이를 흔히 ISO A형이라고도 한다. A형 전지는 A0로 표기하며 이를 접어서 절단할 때마다 숫자를 늘린다. A1은 한번 접어서 자른 크기이며, 흔히 사용하는 A4는 A0를 네 번 접어서 자른 종이 크기이다. 가장 많이 사용되고 있는 A4는 가로 x 세로 \(210 mm \times 297 mm\) 크기를 갖는다.
geometry
가 문서 레이아웃을 자유로이 지정하는 대표적인 팩키지다. 이외에도 국내에서 많이 사용되는 memoir
, oblivoir
팩키지를 사용할 수 있다.
geometry
팩키지: 판형과 판면을 설정하는 대표적인 팩키지. showcrop
과 showframe
옵션을 주어 재단선을 그려준다.memoir
, oblivoir
클래스: 클래스 옵션으로 showtrmis
를 주고 \trimLmarks
, \trimXmarks
, \trimFrame
명령을 줄 수 있고 QuarkXpress
에서 작업한 것과 비슷한 모양으로 그려주는 \quarkmarks
명령도 제공.crop
팩키지: \crop
명령과 cam, cross, frame, axes, noaxes 옵션 설정 가능.documentclass
선택사양을 지정하면 문서를 원하는 방향으로 작성할 수 있다. class_name
에 지정할 수 있는 것은 book
, article
, report
, letter
등이 대표적이다.
\documentclass[option1, option2, etc.]{class_name}
article
, report
, book
10 ~ 12pt 만 가능.
extrarticle
, extreport
, extbook
글꼴 크기를 8 ~ 12pt, 14pt, 17pt, 20pt 범위에서 나름 자유롭게 선택가능.
한국과학기술원 산업수학연구실 고기형 지음(1995), “한글 LATEX의 모든 것—한글과 TEX”의 목차와 연습문제를 보게 되면 \(\LaTeX\) 기본기를 익히는데 큰 도움이 될 듯 싶다.
“How did the PDF file format become the de facto standard for document publishing?”, Quora↩︎
윤석천, 이주호 (2017), “텍라이브 매니저와 KTUG 사설 저장소”, TeX: 조판, 그 이상의 가능성↩︎
Brailsford (2016-10-01), “PDF Workflow - Computerphile”, Computerphile↩︎
tom (2013-02-13), “LaTeX documentclass options illustrated”, texblog because LaTeX matters↩︎