我希望我没有错过某个地方的问题,但到目前为止我还没有找到解决我的问题的方法。
我正在撰写一篇累积论文,并希望使用\includepdf
及其addtoline
选项将单篇论文作为 PDF 包含在主文档中。但是,包含表格的 PDF 位于我主文件的第四章中,因此显示为
4.1 标题1.....第 X 页
4.2 标题2.....第 Y 页
4.3 Caption3.....第 Z 页。
相反,我希望有类似的东西
试卷 1
表 1 - 标题 1..... 第 X 页
试卷 2
表 1 - 标题 2.....第 Y 页
表 2 - 标题 3.....第 Z 页
本章不应涉及。希望这能解决我的问题。我对这些数字也有同样的问题,但我认为如果解决了 LoT 问题,那么该解决方案也可以用于 LoF。有人有什么想法吗?我将不胜感激,因为这已经花费了太多时间……
答案1
这是一个解决方案。此使用pagecommand
和\addtocontents
\documentclass{book}
\usepackage{pdfpages}
\newcounter{mtpaper}
\newcounter{mtfig}[mtpaper]
\newcounter{mttab}[mtpaper]
\newcommand*{\newpaper}{%
\stepcounter{mtpaper}%
\addtocontents{lot}{\protect\addvspace{10pt}\noindent Paper \themtpaper\par}%
\addtocontents{lof}{\protect\addvspace{10pt}\noindent Paper \themtpaper\par}}
\newcommand{\newtable}[3]{% #1 file name #2 page #3 caption
\stepcounter{mttab}% % one can use refst and add a label
\includepdf[pages=#2, pagecommand={%
\addtocontents{lot}{%
\protect\contentsline {table}{{Table \themttab --- }{#3}}{\thepage}}%
}]{#1}}
\newcommand{\newfigure}[3]{% #1 file name #2 page #3 caption
\stepcounter{mtfig}% % one can use refst and add a label
\includepdf[pages=#2, pagecommand={%
\addtocontents{lof}{%
\protect\contentsline {figure}{{Figure \themtfig --- }{#3}}{\thepage}}%
}]{#1}}
\begin{document}
\listoffigures
\listoftables
\chapter{Foo}
\chapter{Bar}
\chapter{Baz}
\newpaper
\newtable{b}{2}{Foo bar table}
\newpaper
\newtable{a}{2}{Foo table}
\newtable{a}{3}{Bar table}
\newfigure{a}{2}{Foo table}
\end{document}
更新如果使用 hyperref 包。
请注意,计数器mttab
和被和 mtfig
替换。table
figure
\documentclass{book}
\usepackage{pdfpages}
\usepackage{hyperref}
\newcounter{mtpaper}
\makeatletter
\@addtoreset{table}{mtpaper}
\renewcommand*{\thetable}{\arabic{table}}
\@addtoreset{figure}{mtpaper}
\renewcommand*{\thefigure}{\arabic{figure}}
\newcommand*{\newpaper}{%
\stepcounter{mtpaper}%
\addtocontents{lot}{\protect\addvspace{10pt}\noindent Paper \themtpaper\par}%
\addtocontents{lof}{\protect\addvspace{10pt}\noindent Paper \themtpaper\par}}
\newcommand*{\newtable}[3]{% #1 file name #2 page #3 caption
\refstepcounter{table}%
\includepdf[pages=#2, pagecommand={%
\phantomsection%
\addtocontents{lot}{%
\protect\contentsline {table}{{Table \thetable --- }{#3}}{\thepage}{\@currentHref}}%
}]{#1}}
\newcommand*{\newfigure}[3]{% #1 file name #2 page #3 caption
\refstepcounter{figure}%
\includepdf[pages=#2, pagecommand={%
\phantomsection%
\addtocontents{lof}{%
\protect\contentsline {figure}{{Figure \thefigure --- }{#3}}{\thepage}{\@currentHref}}%
}]{#1}} \makeatother
\begin{document}
\listoffigures
\listoftables
\chapter{Foo}
\chapter{Bar}
\chapter{Baz}
\newpaper
\newtable{b}{2}{Foo bar table}
\newpaper
\newtable{a}{2}{Foo table}
\newtable{a}{3}{Bar table}
\newfigure{a}{2}{Foo table}
\end{document}
更新对于没有任何表格或图表的论文,我们使用
\stepcounter{mtpaper}
\includepdf[pages=PAGES,OTHER OBTIONS]{filename}
对于rotateoversize
、lindscape
选项、命令\newtable
和\newfigure
已更改,现在它们接受要传递给的可选参数\includepdf
\documentclass{book}
\usepackage{pdfpages}
\usepackage{hyperref}
\newcounter{mtpaper}
\makeatletter
\@addtoreset{table}{mtpaper}
\renewcommand*{\thetable}{\arabic{table}}
\@addtoreset{figure}{mtpaper}
\renewcommand*{\thefigure}{\arabic{figure}}
\newcommand*{\newpaper}{%
\stepcounter{mtpaper}%
\addtocontents{lot}{\protect\addvspace{10pt}\noindent Paper \themtpaper\par}%
\addtocontents{lof}{\protect\addvspace{10pt}\noindent Paper \themtpaper\par}}
\newcommand*{\newtable}[4][]{% #1 options of \includepdf #2 file name #3 page #4 caption
\refstepcounter{table}%
\includepdf[#1, pages=#3, pagecommand={%
\phantomsection%
\addtocontents{lot}{%
\protect\contentsline {table}{{Table \thetable --- }{#4}}{\thepage}{\@currentHref}}%
}]{#2}}
\newcommand*{\newfigure}[4][]{% #1 options of \includepdf #2 file name #3 page #4 caption
\refstepcounter{figure}%
\includepdf[#1, pages=#3, pagecommand={%
\phantomsection%
\addtocontents{lof}{%
\protect\contentsline {figure}{{Figure \thefigure --- }{#4}}{\thepage}{\@currentHref}}%
}]{#2}} \makeatother
\begin{document}
\listoffigures
\listoftables
\chapter{Foo}
\chapter{Bar}
\chapter{Baz}
\newpaper
\newtable[landscape,scale=.5,frame]{b}{2}{Foo bar table}
\newpaper
\newtable{a}{2}{Foo table}
\newtable{a}{3}{Bar table}
\newfigure{a}{2}{Foo table}
\end{document}