Guest User

Untitled

a guest
Jan 19th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. discardpages{-2,-1}
  2.  
  3. keeppages{-3,-1}
  4.  
  5. documentclass{article}
  6.  
  7. usepackage{lipsum,atbegshi,etoolbox}
  8. usepackage{lastpage,refcount}
  9.  
  10. makeatletter
  11. newcommand{discardpages}[1]{% discardpages{<csv list>}
  12. xdefdiscard@pages{#1}% Store pages to discard
  13. AtBeginShipout{% At shipout, decide whether to discard page/not
  14. renewcommand*{do}[1]{% How to handle each page entry in csv list
  15. ifnum##1<0
  16. ifnumvalue{page}=numexprgetpagerefnumber{LastPage}+##1+1relax
  17. AtBeginShipoutDiscard% Discard page/not
  18. gdefdo####1{}% Do nothing further
  19. fi
  20. else% ##1 >= 0
  21. ifnumvalue{page}=##1relax%
  22. AtBeginShipoutDiscard% Discard page/not
  23. gdefdo####1{}% Do nothing further
  24. fi
  25. fi
  26. }%
  27. expandafterdocsvlistexpandafter{discard@pages}% Process list of pages to discard
  28. }%
  29. }
  30.  
  31. newififkeeppage
  32. newcommand{keeppages}[1]{% keeppages{<csv list>}
  33. xdefkeep@pages{#1}% Store pages to keep
  34. AtBeginShipout{% At shipout, decide whether to discard page/not
  35. keeppagefalse%
  36. renewcommand*{do}[1]{% How to handle each page entry in csv list
  37. ifnum##1<0
  38. ifnumvalue{page}=numexprgetpagerefnumber{LastPage}+##1+1relax
  39. keeppagetrue% Page should be kept
  40. gdefdo####1{}% Do nothing further
  41. fi
  42. else% ##1 >= 0
  43. ifnumvalue{page}=##1relax%
  44. keeppagetrue% Page should be kept
  45. gdefdo####1{}% Do nothing further
  46. fi
  47. fi
  48. }%
  49. expandafterdocsvlistexpandafter{keep@pages}% Process list of pages to keep
  50. ifkeeppageelseAtBeginShipoutDiscardfi% Discard page/not
  51. }%
  52. }
  53. makeatother
  54.  
  55. %discardpages{-2,-1}
  56. keeppages{-3,-1}% Keep these pages.
  57.  
  58. begin{document}
  59.  
  60. sloppylipsum[1-50]lipsum[1-50]lipsum[1-50]lipsum[1-50]lipsum[1-50]
  61.  
  62. end{document}
Add Comment
Please, Sign In to add comment