計算章節和附錄

計算章節和附錄

在我的最近對不同文件之間的總數進行交叉引用的經驗,出現了章節和附錄計數的問題。

作為 MWE,我們可以使用給定的 MWE這裡 經過一些修改。

碰巧像這樣的簡單命令 \setcounter{truechapters}{\value{totalchapters}-\value{chapter}}不起作用。

我想,原因是錯誤地使用了這些數值。

問題是如何以簡單合理的方式獲得一個pdf中的三個計數(總章節數、附錄和真實章節數)?

請注意,我也不能\zlabel像 Heiko 所描述的那樣使用這裡

這是我的 MWE:

MyBook.tex:

\documentclass{memoir}
\usepackage{totcount}
\usepackage{assoccnt}

\newtotcounter{totalchapters}
\DeclareAssociatedCounters{chapter}{totalchapters} % Associate the driven counter `totalchapters` to the master counter `chapter`

\AtBeginDocument{
    %% register a counter on the basis of the last chapter in totcounter
    \regtotcounter{chapter}
}

\newcounter{truechapters}


\begin{document}

\chapter{A}
\chapter{B}
\appendix
\chapter{C}
\chapter{D}
\chapter{E}
\chapter{F}
\chapter{G}
\chapter{H}
\chapter{I}


There are \total{totalchapters} total chapters.


There are \total{chapter} appendix chapters.


%here we need to count the difference of two previous counters
%\setcounter{truechapters}{\value{totalchapters}-\value{chapter}} 


There are \thetruechapters \: true chapters.



\end{document}

MyBook.pdf 的螢幕截圖如下:

在此輸入影像描述

答案1

您可以使用 LaTeX2e-kernel-macro\addtocounter和 eTeX-primitive\numexpr進行計算。

\documentclass{memoir}
\usepackage{totcount}
\usepackage{assoccnt}

\newtotcounter{totalchapters}
\DeclareAssociatedCounters{chapter}{totalchapters} % Associate the driven counter `totalchapters` to the master counter `chapter`

\AtBeginDocument{
    %% register a counter on the basis of the last chapter in totcounter
    \regtotcounter{chapter}
}
\newcounter{truechapters}

\begin{document}

\chapter{A}
\chapter{B}
\appendix
\chapter{C}
\chapter{D}
\chapter{E}
\chapter{F}
\chapter{G}
\chapter{H}
\chapter{I}

There are \total{totalchapters} total chapters.

There are \total{chapter} appendix chapters.

%here we need to count the difference of two previous counters
\setcounter{truechapters}{\value{totalchapters}}%
\addtocounter{truechapters}{-\value{chapter}}%

There are \thetruechapters \: true chapters.

\setcounter{truechapters}{\numexpr\value{totalchapters}-\value{chapter}\relax}%

There are \thetruechapters \: true chapters.

\end{document}

答案2

為主要章節、附錄和總計定義三個新計數器。

這裡的技巧是添加程式碼來\appendix保存到目前為止的章節數truechapters並重置附錄數的計數器。

\documentclass{memoir}
\usepackage{etoolbox}
\usepackage{totcount,assoccnt}

\newcounter{truechapters}
\regtotcounter{truechapters}

\newcounter{totalchapters}
\newcounter{appendixchapters}
\DeclareAssociatedCounters{chapter}{totalchapters,appendixchapters}
\regtotcounter{totalchapters}
\regtotcounter{appendixchapters}

\preto\appendix{%
  % save the number of true chapters
  \setcounter{truechapters}{\value{chapter}}%
  % reset the number of chapters
  \setcounter{appendixchapters}{0}%
}


\begin{document}

\frontmatter

There are \total{totalchapters} total chapters.

There are \total{appendixchapters} appendix chapters.

There are \total{truechapters} true chapters.

\mainmatter

\chapter{A}
\chapter{B}
\appendix
\chapter{C}
\chapter{D}
\chapter{E}
\chapter{F}
\chapter{G}
\chapter{H}
\chapter{I}

\end{document}

在此輸入影像描述

答案3

egreg 解決方案的一個變體,這次使用最新的xassoccnt軟體包(是 的後繼者assoccnt),它部分支援總計數器。

\documentclass{memoir}
\usepackage{xassoccnt}% Version 1.2 or higher, current version is 1.7

\NewTotalDocumentCounter{appendixchapters}
\DeclareTotalAssociatedCounters{chapter}{truechapters,totalchapters}

\makeatletter
\g@addto@macro\appendix{%
  \SuspendCounters{truechapters}
  \AddAssociatedCounters{chapter}{appendixchapters}
}
\makeatother

\begin{document}

\frontmatter

There are \TotalValue{totalchapters} total chapters.

There are \TotalValue{appendixchapters} appendix chapters.

There are \TotalValue{truechapters} true chapters.

\mainmatter

\chapter{A}
\chapter{B}
\appendix
\chapter{C}
\chapter{D}
\chapter{E}
\chapter{F}
\chapter{G}
\chapter{H}
\chapter{I}

\end{document}

在此輸入影像描述

相關內容