Advertisement
syvshc

crosspdf

Apr 29th, 2022
521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Latex 1.43 KB | None | 0 0
  1. \documentclass{article}
  2. \usepackage[]{xparse}
  3. \usepackage{pdfpages}
  4. \ExplSyntaxOn
  5. \NewDocumentCommand \crosspdf { O{#1-en} m  }
  6.  {
  7.    \int_set:Nn \l_tmpa_int { 1 }
  8.    \int_new:N \l_tmpone_int
  9.    \int_new:N \l_tmptwo_int
  10.    \int_new:N \l_min_int
  11.    \int_new:N \l_max_int
  12.    \pdfximage{#1.pdf}
  13.    \exp_args:NNx \int_set:Nn \l_tmpone_int { \the\pdflastximagepages }
  14.    \pdfximage{#2.pdf}
  15.    \exp_args:NNx \int_set:Nn \l_tmptwo_int { \the\pdflastximagepages }
  16.    \int_compare:nNnTF { \l_tmpone_int } > { \l_tmptwo_int }
  17.      {
  18.        \int_set_eq:NN \l_min_int \l_tmptwo_int
  19.        \int_set_eq:NN \l_max_int \l_tmpone_int
  20.        \tl_set:Nn \l_min_tl { #2 }
  21.        \tl_set:Nn \l_max_tl { #1 }
  22.      }
  23.      {
  24.        \int_set_eq:NN \l_min_int \l_tmpone_int
  25.        \int_set_eq:NN \l_max_int \l_tmptwo_int
  26.        \tl_set:Nn \l_min_tl { #1 }
  27.        \tl_set:Nn \l_max_tl { #2 }
  28.      }
  29.    
  30.    \int_do_until:nn { \l_tmpa_int > \l_min_int }
  31.      {
  32.        \includepdf[pages={\int_use:N \l_tmpa_int}]{#1.pdf}
  33.        \includepdf[pages={\int_use:N \l_tmpa_int}]{#2.pdf}
  34.        \int_incr:N \l_tmpa_int
  35.      }
  36.    \int_compare:nNnT { \l_max_int } > { \l_min_int }
  37.      {
  38.        \int_incr:N \l_min_int
  39.        \includepdf[pages={\int_use:N \l_min_int - last}]{\tl_use:N \l_max_tl}
  40.      }
  41.  }
  42. \ExplSyntaxOff
  43. \begin{document}
  44. % 先插 #1, 再插 #2, #1 默认值是 #2-en
  45. \crosspdf[test]{my}
  46. \end{document}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement