장과 부록 계산

장과 부록 계산

내 동안서로 다른 파일 간의 총 개수에 대한 상호 참조에 대한 마지막 경험, 장과 부록 계산 문제가 나타납니다.

MWE로서 주어진 MWE를 사용할 수 있습니다.여기 일부 수정 사항이 있습니다.

다음과 같은 간단한 명령이 \setcounter{truechapters}{\value{totalchapters}-\value{chapter}}작동하지 않는 경우가 있습니다.

그 이유는 이러한 값을 잘못 사용했기 때문인 것 같습니다.

문제는 간단하고 합리적인 방법으로 하나의 PDF에서 세 개의 카운트(총 장, 부록 및 실제 장)를 얻는 방법입니다.

\zlabelHeiko가 설명한 대로 사용할 수 없다는 점도 참고하세요.여기

내 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}

여기에 이미지 설명을 입력하세요

관련 정보