PDF 파일을 합치는 여러 방법이 있습니다. 아크로뱃, PDFtk, 그리고 pdfpages 레이텍 패키지.
그런데 여러 파일 중 한 두 파일의 크기가 약간 다르면 \includepdf 옵션을 이리저리 달리 줘봐도 기대한 대로 나오지 않는 경우가 이따금 있습니다. 그래서 \includegraphics 명령으로 한 페이지씩 가져다가 페이지 폭에 맞게 앉히는 명령을 만들어 봤습니다.
pdflatex과 xelatex으로 컴파일할 수 있습니다.
\documentclass{minimal} \usepackage[a4paper]{geometry} \usepackage{graphicx} \usepackage{xparse} \geometry{paperwidth=216mm, paperheight=303mm, margin={0pt, 0pt}} \ExplSyntaxOn \sys_if_engine_pdftex:T { \pdfminorversion=6 } \NewDocumentCommand \mergepdf { m } { \bool_gset_false:N \g_tmpa_bool % Not to break the last page \clist_set:Nn \l_tmpa_clist { #1 } \int_set:Nn \l_tmpa_int { \clist_count:N \l_tmpa_clist } \int_step_inline:nn { \l_tmpa_int } { \clist_pop:NN \l_tmpa_clist \l_tmpa_tl \int_compare:nT { ##1 == \l_tmpa_int } { \bool_gset_true:N \g_tmpa_bool } \fetchpage{ \l_tmpa_tl } } } \NewDocumentCommand \fetchpage { m } { \sys_if_engine_xetex:TF { \exp_args:NNx \int_set:Nn \l_tmpb_int { \XeTeXpdfpagecount"#1.pdf" } }{ \pdfximage{#1.pdf} \exp_args:NNx \int_set:Nn \l_tmpb_int { \the\pdflastximagepages } } \int_step_inline:nn { \l_tmpb_int } { \includegraphics[width=\paperwidth, page=##1]{#1} \bool_if:NTF \g_tmpa_bool { \int_compare:nT { ##1 < \l_tmpb_int } { \break } }{ \break } } } \ExplSyntaxOff \begin{document} \mergepdf{A, B, C} % ← 파일 이름 \end{document}
KTUG 한국 텍 사용자 그룹