![我怎样才能在每一节开始时分割用 beamer 创建的 PDF?](https://linux22.com/image/409649/%E6%88%91%E6%80%8E%E6%A0%B7%E6%89%8D%E8%83%BD%E5%9C%A8%E6%AF%8F%E4%B8%80%E8%8A%82%E5%BC%80%E5%A7%8B%E6%97%B6%E5%88%86%E5%89%B2%E7%94%A8%20beamer%20%E5%88%9B%E5%BB%BA%E7%9A%84%20PDF%EF%BC%9F.png)
我有一个很长的演示文稿,包含多个部分。我想自动在每个部分拆分 PDF。
我知道beamer
命令。但是使用\includeonlylecture
会丢失全局页面和章节编号,因此每个讲座中的章节都会重新以章节编号 1 开始。
我怎样才能拆分 PDF 使得结果相当于 Latex 创建 PDF 后手动拆分 PDF?
答案1
我修改了这个 bash 脚本将 pdf 拆分成几个部分:
#!/bin/bash
infile=$1 # input pdf
[ -e "$infile" ] || exit 1 # Invalid args
pagenumbers=( $(pdftk "$infile" dump_data | grep -A1 '^BookmarkLevel: 1' | grep '^BookmarkPageNumber: ' | cut -f2 -d' ' | uniq) end )
titles=($(pdftk "$infile" dump_data | grep -B1 '^BookmarkLevel: 1' | grep '^BookmarkTitle: ' | cut -f2- -d' ' | sed -E -e 's/[[:blank:]]+/_/g') )
for ((i=0; i < ${#pagenumbers[@]} - 1; ++i)); do
section=$((i+1))
section=$(printf "%02d" $section)
a=${pagenumbers[i]} # start page number
b=${pagenumbers[i+1]} # end page number
[ "$b" = "end" ] || b=$[b-1]
pdftk "$infile" cat $a-$b output "${section}"_"${titles[i]}".pdf
done