在显示标题之前检查部分目录或图表列表是否为空

在显示标题之前检查部分目录或图表列表是否为空

我创建了一个命令,,用于从导入章节的\importchapter{<title>}{<folder>}{<file>}{<minitables>}主要内容并自动生成。<file><folder>\chapter{<title>}

biblatex用于管理参考书目。refsegment为每个章节创建一个,并\printbibliography[segment=\therefsegment]在结束时完成\importchapter

titletoc用于在报告的某些章节中放置本地目录和/或图表列表。startcontents/startlist放在导入章节文件之前,stopcontents/stopslist放在末尾\importchapter

由于\printbibliography如果没有引用就不会显示,所以我不必担心。但是,即使该章节中没有要显示的元素,也会显示部分表格和列表的标题。我决定何时显示,然后手动将\DOmc\DOmf/或放入的参数\DOmt中。但我希望它们自动检查是否有要显示的内容,就像 一样。<minitables>\importchapter\printbibliography

我想我应该研究一下*.ptc*.plf和,并检查第 k章和之间*.plt是否有任何关系。但我不知道该怎么做。这可能吗?\contentslinechapter@kchapter@k+1

在下面的例子中,图表列表应该仅在第一章中显示。

\documentclass[a4paper]{report}
\usepackage{import}

\usepackage[backend=biber,style=ieee-alphabetic,natbib=true,sorting=ynt]{biblatex} %added
\addbibresource{IEEEfull.bib} %added

\usepackage{filecontents}
\begin{filecontents}{intro.tex}
 \section{First}
  \begin{figure}[!h]\caption{First figure}\end{figure}
 \section{Second}
  \begin{figure}[!h]\caption{Second figure}\end{figure}
\end{filecontents}
\begin{filecontents}{back.tex}
 \section{First back}
 \subsection{First sub back}
\end{filecontents}

\usepackage{titletoc}

\newcommand\DOminitoc[2]{ \section*{#1} #2 }

\newcommand\DOmc{ \DOminitoc{ \contentsname }{ \printcontents[chapter]{}{1}{} } }
\newcommand\DOmf{ \DOminitoc{ \listfigurename }{ \printlist[chapter]{lof}{1}{} } }
\newcommand\DOmt{ \DOminitoc{ \listtablename }{ \printlist[chapter]{lot}{1}{} } }

\newcommand\importchapter[4]{
 \begin{refsegment}
  \chapter{#1}
  \startcontents[chapter]
  \startlist[chapter]{lof}
  \startlist[chapter]{lot}
  #4

  \vspace{1em}\hrule
  \subimport{#2}{#3}
  \stopcontents[chapter]
  \stoplist[chapter]{lof}
  \stoplist[chapter]{lot}
  \printbibliography[segment=\therefsegment,heading=subbibliography]
 \end{refsegment}
}

\begin{document}

\importchapter{Introduction}{}{intro}{\DOmc\DOmf}
\importchapter{Background}{}{back}{\DOmc\DOmf}

\end{document}

相关内容