\NewDocumentCommand 和 pagecounter

\NewDocumentCommand 和 pagecounter

我曾尝试编写一个程序,让用户输入文件作为附录。这些页面应使用罗马数字编号。它运行良好,但现在我正尝试进行改进:如果用户没有附录,我希望将页面计数器设置为零。我的方法是将计数器设置为零并在文档命令中更新它。我可以看到我遗漏了一些东西,但我找不到是什么。有人可以告诉我解决方案吗?这是一个例子

\documentclass[a4paper,12pt]{article}

\usepackage{xparse}
\usepackage{pageslts}

\newcounter{Appcount}
\setcounter{Appcount}{0}

\ExplSyntaxOn

\NewDocumentCommand{\app}{m}
{
    \newpage
    \pagenumbering{roman}
    \fancyhf{}
    \rhead{\itshape Side \, \thepage\ av \, \lastpageref{pagesLTS.roman}}
    \appendix

    \section*{Vedlegg}
    \input{#1}

    \setcounter{Appcount}{\lastpageref{pagesLTS.roman}}

}

\ExplSyntaxOff

\begin{document}


    \app{filename.tex} %can be left out

    Number of pages in the appendix: \theAppcount
\end{document}

答案1

\lastpageref{pagesLTS.roman}不是数字,不能在 中使用。您可以尝试 refcount 包和pageslts 提供的\setcounter标签:pagesLTS.roman.local

\documentclass[a4paper,12pt]{article}

\usepackage{xparse}
\usepackage{pageslts}
\usepackage{fancyhdr}
\newcounter{Appcount}
\setcounter{Appcount}{0}
\usepackage{refcount}
\ExplSyntaxOn
\NewDocumentCommand{\app}{m}
{
    \newpage
    \pagenumbering{roman}
    \fancyhf{}
    \rhead{\itshape Side \, \thepage\ av \, \lastpageref{pagesLTS.roman}}
    \appendix

    \section*{Vedlegg}
    \input{#1}
    \setcounter{Appcount}{\getpagerefnumber{pagesLTS.roman.local}}

}

\ExplSyntaxOff

\begin{document}


    \app{test3.tex} %can be left out

    Number of pages in the appendix: \theAppcount
\end{document}

相关内容