hyperref 는 상호 참조, 인용, 목차 항목, URL을 PDF 안에서 클릭할 수 있는 링크 로 바꾸고, 책갈피(PDF 아웃라인)와 제목 같은 메타데이터까지 설정해 줍니다. 불러오는 것은 \usepackage{hyperref} 한 줄이면 되지만, 거의 마지막에 불러온다 는 철칙이 있습니다. 이 페이지에서는 그 규칙, 링크 색과 테두리, \href와 \url로 링크 만들기, 일본어 책갈피 처리까지 차례로 살펴봅니다.
불러오기와 순서
사용법 자체는 정말 간단합니다. 프리앰블에 \usepackage{hyperref}만 쓰면 됩니다. 그러면 상호 참조(\ref), 인용(\cite), 목차 항목, 각주 등이 자동으로 링크가 되고, PDF 뷰어에서 클릭하면 해당 위치로 이동할 수 있습니다. 아무 설정을 하지 않아도 문서 안의 모든 참조가 이미 작동하는 링크가 되는 셈입니다.
주의해야 할 점은 어디에서 불러오는가 입니다. hyperref는 \ref, \cite, \section 등 많은 명령을 내부에서 재정의 해 링크로 만듭니다. 따라서 같은 명령을 건드리는 다른 패키지보다 뒤에 불러오지 않으면 그 재정의가 덮어써질 수 있습니다. 경험칙은 분명합니다. hyperref는 프리앰블의 거의 마지막에 둡니다(대부분의 패키지 뒤).
하지만 “마지막”에도 몇 가지 예외 가 있습니다. 대표적인 것이 cleveref 로, hyperref의 정의를 감지해 동작하므로 반드시 hyperref 뒤에 불러와야 합니다. varioref도 함께 쓴다면 순서는 varioref → hyperref → cleveref입니다. 순서를 틀리면 로그에 경고가 없어도 참조가 깨질 수 있습니다(cleveref 자세한 내용은 상호 참조 페이지 참조).
% プリアンブルのほぼ最後で読み込む / load almost last
\usepackage{graphicx}
\usepackage{amsmath}
% ... 他のパッケージ ... / ... other packages ...
\usepackage{hyperref} % ほぼ最後 / almost last
\usepackage{cleveref} % hyperref の後(数少ない例外)/ after hyperref (an exception)링크 모양 — 색과 테두리
기본적으로 링크는 글자 주위에 색 있는 상자(테두리) 를 그려 표시됩니다. 화면에서는 알아보기 쉽지만, 인쇄하면 링크는 보이지 않고 테두리만 남아 보기가 좋지 않아 보통 피하는 표시 방식입니다. 모양은 패키지를 불러올 때의 옵션으로 제어하거나, 더 유연하게 \hypersetup{...} 에서 key=value 쌍을 쉼표로 나열해 설정합니다. \hypersetup은 프리앰블 어디에 써도 됩니다.
가장 많이 쓰는 옵션은 colorlinks=true 입니다. 이 옵션은 테두리를 없애고 링크 텍스트 자체에 색을 입힙니다(인쇄해도 어색하지 않고 화면에서도 읽기 쉽습니다). 색은 종류별로 지정할 수 있습니다. linkcolor(\ref 같은 내부 링크), citecolor(문헌 인용), urlcolor(\url/\href의 URL), filecolor(로컬 파일 링크)를 따로 설정합니다. 기본색은 차례대로 빨강, 초록, 마젠타, 시안입니다.
인쇄용으로는 hidelinks 가 편리합니다. 색도 테두리도 적용하지 않으므로 링크는 겉보기에는 완전히 사라지지만 클릭 기능은 남아 있습니다. 반대로 상자 표시(colorlinks=false)를 유지하면서 모든 테두리 색을 한 번에 바꾸고 싶다면 allbordercolors 로 전체 테두리 색을 지정할 수 있습니다.
| 옵션 | 효과 |
|---|---|
colorlinks=true | 테두리를 없애고 링크 글자에 색을 입힘 |
hidelinks | 색도 테두리도 없음. 클릭은 가능(인쇄용) |
linkcolor | \ref 같은 내부 링크의 색(기본값: 빨강) |
citecolor | 문헌 인용의 색(기본값: 초록) |
urlcolor | URL 링크의 색(기본값: 마젠타) |
filecolor | 로컬 파일 링크의 색(기본값: 시안) |
allbordercolors | 모든 테두리 색을 한 번에 지정 |
링크 만들기 — \href와 \url
외부 URL 링크는 두 가지 명령으로 만듭니다. \href{URL}{display text} 는 원하는 문자열에 링크를 겁니다(\href{https://www.ctan.org/}{CTAN} 라고 쓰면 “CTAN”이라는 단어가 링크가 됩니다). 반면 \url{URL} 은 URL 자체를 고정폭 글꼴로 조판하면서 동시에 링크로 만듭니다. 본문에 URL을 보이게 하고 싶으면 \url, 다른 단어 뒤에 숨기고 싶으면 \href를 사용합니다.
URL에는 %, #, ~, _ 같은 LaTeX 특수 문자가 자주 들어갑니다. \url과 \href의 장점은 URL 부분에서는 이런 문자를 그대로 쓸 수 있다 는 점입니다(이스케이프 불필요. 다만 \url의 인수에는 일부 제약이 있습니다). URL을 고정폭으로 보이고 싶지만 링크는 만들고 싶지 않을 때는 \nolinkurl{URL} 을 사용합니다(\url과 같은 조판, 링크 없음).
詳しくは\href{https://www.ctan.org/pkg/hyperref}{hyperref のページ}を参照。
% 「hyperref のページ」がリンクになる / the words become the link
ダウンロードは \url{https://www.ctan.org/} から。
% URL がそのまま組版され、かつリンクになる / URL is typeset and linked
リンクなしで URL を見せる: \nolinkurl{https://example.com/a_b#c}
% 等幅で表示、リンクは張らない / monospaced, no linkPDF 메타데이터
hyperref는 PDF의 문서 정보(메타데이터) 도 설정합니다. 이는 PDF 뷰어의 “문서 속성”에 표시되고 검색이나 라이브러리 관리 도구에서도 쓰이는 정보입니다. \hypersetup에서 다음 키를 지정합니다. pdftitle(제목), pdfauthor(저자), pdfsubject(주제), pdfkeywords(키워드).
값에 쉼표나 등호가 들어 있으면 키 구분자와 충돌하므로 각 값을 중괄호 {}로 감싸는 것 이 가장 안전합니다(예: pdftitle={Foundations of Linear Algebra}). 이는 문서 자체의 \title과는 별개이며, \title은 메타데이터로 복사되지 않습니다. 둘을 맞추려면 같은 문자열을 직접 쓰거나 pdfusetitle 같은 방식을 사용합니다.
책갈피(PDF 아웃라인)
책갈피(아웃라인)는 PDF 뷰어가 페이지 옆에 보여 주는 접을 수 있는 제목 목록으로, 긴 문서를 탐색할 때 필수입니다. hyperref는 문서의 장, 절 같은 제목에서 책갈피를 자동으로 생성 합니다(bookmarks=true가 기본값). 책갈피에 절 번호도 포함하려면 bookmarksnumbered=true, 처음부터 트리를 펼쳐 보이려면 bookmarksopen=true 를 지정합니다.
책갈피를 더 안정적으로 다루기 위해 bookmark 패키지(hyperref 뒤에 불러옴)를 함께 사용할 수 있습니다. 이 패키지는 hyperref의 오래된 책갈피 생성 코드를 대체하고, 책갈피의 스타일과 색 을 설정할 수 있게 하며, .out 보조 파일 처리를 안정화합니다. \bookmarksetup{...}으로 동작을 세밀하게 조정할 수 있습니다. 복잡한 문서에서 책갈피가 흐트러질 때 흔히 쓰는 해결책입니다.
일본어 책갈피와 글자 깨짐 방지
책갈피와 메타데이터는 PDF 내부 문자열로 기록되므로 일본어(CJK)를 넣으면 글자가 깨질 수 있습니다. 핵심은 Unicode로 내보내는 것 입니다. 현대 엔진(LuaLaTeX / XeLaTeX)에서는 unicode가 기본으로 활성화되어 있어 보통 별도 설정 없이도 일본어 책갈피가 올바르게 나옵니다. 명시하려면 \usepackage[unicode]{hyperref}로 불러오거나 \hypersetup{unicode}를 설정합니다.
전통적인 pLaTeX / upLaTeX + dvipdfmx 환경에서는 hyperref를 \usepackage[dvipdfmx]{hyperref}처럼 불러온 뒤 pxjahyper 패키지를 함께 쓰는 것이 표준적인 방법입니다. pxjahyper는 (u)pLaTeX 환경에서 일본어 책갈피를 글자 깨짐 없이 만들기 위한 패키지이며 TeX Live에 포함되어 있습니다. 엔진에 따라 내부 한자 코드에 맞춰 출력을 Unicode로 변환하는 설정(pdfencoding=auto가 하는 일과 같은 종류)을 보조합니다.
pdfencoding=auto는 문자열이 ASCII(Unicode 엔진에서는 ASCII 범위)에 들어가면 그대로 두고, 그렇지 않으면 Unicode로 전환하도록 자동 판단하는 옵션입니다(주로 pdfTeX 계열용. Unicode 엔진에서는 기본이 이미 Unicode라 보통 필요 없습니다). 헷갈리면 LuaLaTeX에서는 추가 설정 없음, (u)pLaTeX에서는 pxjahyper 추가 라고 기억하면 충분합니다.
% --- pLaTeX / upLaTeX + dvipdfmx の場合 / for pLaTeX-upLaTeX + dvipdfmx ---
\usepackage[dvipdfmx]{hyperref}
\usepackage{pxjahyper} % 日本語しおりの文字化けを防ぐ / fix Japanese bookmarks
% --- LuaLaTeX の場合は unicode が既定 / on LuaLaTeX, unicode is the default ---
% \usepackage{hyperref}hyperref가 추가하는 참조 명령 — \autoref와 \nameref
hyperref를 불러오면 상호 참조를 돕는 두 가지 명령도 사용할 수 있습니다. \autoref{key} 는 \ref 대신 쓰며, 참조 대상의 종류에 따라 “section 3.4”, “Figure 3” 같은 단어를 자동으로 앞에 붙이고 전체를 링크로 만듭니다. 앞에 붙는 단어는 \figureautorefname, \sectionautorefname 등을 재정의해 바꿀 수 있으며, 일본어화도 이 방식으로 합니다.
다른 하나인 \nameref{key} 는 번호가 아니라 참조 대상의 제목 문자열 자체 를 삽입합니다(\section{Introduction}에 붙은 라벨을 참조하면 “Introduction”이 출력됩니다). 번호가 아니라 제목으로 참조하고 싶을 때 사용합니다. 이러한 참조 계열 명령의 전체 그림(\ref, \eqref, \cref 등)은 상호 참조 페이지에서 자세히 다룹니다.
정리된 설정 예
실무에서 자주 쓰는 설정을 모으면 다음과 같습니다. colorlinks=true로 테두리를 없애고 글자에 색을 입히며, 종류별로 색을 나누고, bookmarksnumbered로 번호가 붙은 책갈피를 만들고, 메타데이터도 설정합니다. 인쇄 중심 문서라면 colorlinks=true 줄을 hidelinks로 바꾸면 링크는 보이지 않지만 클릭 기능은 남습니다.
\usepackage{hyperref}
\hypersetup{
colorlinks=true, % 枠ではなく文字に色 / color text, not boxes
linkcolor=blue, % 内部リンク / internal links
citecolor=teal, % 文献引用 / citations
urlcolor=magenta, % URL
bookmarksnumbered=true, % しおりに節番号 / numbered bookmarks
pdftitle={線形代数の基礎},
pdfauthor={山田 太郎},
pdfsubject={講義ノート},
pdfkeywords={LaTeX, 線形代数, ベクトル空間},
}
% 印刷向けなら colorlinks の行を hidelinks に置き換える
% for print, swap the colorlinks line for: hidelinks