KTUG 한국 텍 사용자 그룹

Menu

KTUG :: 마당

말씀대로 pdfpages의 \includepdf가 살짝 불편할 때도 있고 각 페이지를 \includegraphics하려 하는 경우도 있겠습니다.

external pdf 파일의 마지막 페이지 번호를 얻는 문제에 관하여 stack exchange에 좋은 글타래가 있습니다. 근데 그거 더 간단하게 할 수 있거든요, 저는 다음과 같이 해서 쓰는데요, 제 방식이 더 간명하다고 저는 생각합니다. msn040.gif

\ExplSyntaxOn

\int_new:N \g_lastximage_int

\NewDocumentCommand \lastpageofpdf { m }
{
    \get_last_page_of_pdf:nN { #1 } \g_lastximage_int
}

\cs_new_nopar:Npn \get_last_page_of_pdf:nN #1 #2
{
    \str_case_e:nn { \c_sys_engine_str }
    {
        { xetex } {
            \int_gset:Nn #2 {
                \xetex_pdfpagecount:D "#1"
            }
        }
        { pdftex } {
            \pdfximage{#1}
            \int_gset:Nn #2 {
                \pdflastximagepages
            }
        }
        { luatex } {
            \saveimageresource { #1 }
            \int_gset:Nn #2 {
                \lastsavedimageresourcepages
            }
        }
    }
}
\ExplSyntaxOff

\lastpageofpdf{파일네임} 명령의 결과는 전역변수 \g_lastximage_int 에 마지막 페이지 번호를 저장하는 것입니다.

만약 "myfavorite.pdf"라는 파일을 한 페이지씩 잘라서 \includegraphics하려면

\lastpageofpdf{myfavorite.pdf}
\int_step_variable:nNn { \g_lastximage_int } \l_myvar_tl 
{
    \includegraphics[page=\l_myvar_tl] {myfavorite.pdf}
}

KTUG 한국 텍 사용자 그룹