다국어 합본의 반달 색인

2017.01.16 15:44

yihoze 조회 수:117

서로 다른 언어로 된 18 개 PDF 파일들이 있다. 그것들을 하나로 합치면서 각 파일의 언어를 반달색인으로 나타내야 한다.  

 

ThumbIndexOfLanguages.png


\documentclass{minimal}


\usepackage{xparse, expl3}

\usepackage{graphicx}

\usepackage{xcolor}

\usepackage{eso-pic}

\usepackage{fontspec}

\setmainfont{HCR Dotum LVT}

\usepackage[a5paper]{geometry}


\geometry{

papersize={115mm, 169mm}, 

layoutsize={115mm, 169mm},

margin={0pt, 0pt},

layoutoffset={0mm, 0mm}, 

}


\ExplSyntaxOn


\clist_new:N \docs

\clist_set:Nn \docs { 

Foo_QSG_cze.pdf,

Foo_QSG_dan.pdf,

Foo_QSG_ger.pdf,

Foo_QSG_spa.pdf,

Foo_QSG_fre.pdf,

Foo_QSG_ita.pdf,

Foo_QSG_dut.pdf,

Foo_QSG_nor.pdf,

Foo_QSG_pol.pdf,

Foo_QSG_por.pdf,

Foo_QSG_slo.pdf,

Foo_QSG_fin.pdf,

Foo_QSG_swe.pdf,

Foo_QSG_tur.pdf,

Foo_QSG_rus.pdf,

Foo_QSG_chi.pdf,

Foo_QSG_jap.pdf,

Foo_QSG_kor.pdf

}


\clist_new:N \langs 

\clist_set:Nn \langs {

ČEŠTINA,

DANSK,

DEUTSCH,

ESPAÑOL,

FRANÇAIS,

ITALIANO,

NEDERLANDS,

NORSK,

POLSKI,

PORTUGUÊS,

SLOVENČINA,

SUOMI,

SVENSKA,

TÜRKÇE,

РУССКИЙ ЯЗЫК,

中文,

日本語,

한국어

}


\int_new:N \ycoor


\NewDocumentCommand \MergePDFs {}

{

\int_zero:N \l_tmpa_int

\int_zero:N \l_tmpb_int

\setlength\parindent{0pt}

\clist_map_inline:Nn \docs

{

\int_incr:N \l_tmpa_int %% get language name

\tl_set:Nn \l_tmpa_tl

\clist_item:Nn \langs { \int_use:N \l_tmpa_int } 

}

\int_set:Nn \ycoor { \int_eval:n { 158 - (\l_tmpb_int * 14) } } %% decide y-coordinate

\exp_args:No \LangIndex{\ycoor}{\l_tmpa_tl} %% print thumbindex language

\IncludePage{##1}{1}{8} %% merge pages

\int_incr:N \l_tmpb_int %% increase counter for next y-coordinate 

\int_compare:nT { \l_tmpb_int == 9 } { \int_zero:N \l_tmpb_int }

}

}


\NewDocumentCommand \IncludePage { m m m }

{

\int_step_inline:nnnn {#2}{1}{#3}

\includegraphics[page=##1]{#1}\newpage

}

}


\NewDocumentCommand \LangIndex { m m }

{

\hbox_set:Nn \l_tmpa_box {

\rotatebox{-90}{

\colorbox{lightgray}{

\parbox{3cm}{

\centering\rule{0pt}{4mm}

\bfseries\fontsize{9pt}{9pt}\selectfont

\textcolor{black}{#2}

}

}

}

}

\AddToShipoutPicture{%

\setlength{\unitlength}{1mm}

\int_if_odd:nT {\value{page}}

{

\put(106.5, #1){\box_use:N \l_tmpa_box}

}

}

}


\ExplSyntaxOff


\begin{document}

\MergePDFs

\end{document}




XE Login