我是新手LaTeX
。我正在研究一些示例LaTeX
。示例我想在我的文档中创建一个进度条。我的示例代码如下所示。任何帮助都将不胜感激。
\documentclass{article}
\usepackage{amsmath}
\usepackage{lastpage}
\usepackage[draft,subsubsection]{progress}
\renewcommand{\ProgressDocOutput}[1]{%
\vskip-0.6cm\ProgressDrawBar{#1}\vskip 0.4cm}
\ProgressGfxXSize = 1725
\ProgressGfxYSize = 120
\begin{document}
Page1
\progress{\thepage*100/\pageref{LastPage}} % it should rturn 50
\pagebreak
Page2
\progress{\thepage*100/\pageref{LastPage}} % it should rturn 100
\end{document}
答案1
您可以使用refcount
。请注意,标签是LastPage
而不是Lastpage
。
\documentclass{article}
\usepackage{lastpage,refcount}
\usepackage[draft,subsubsection]{progress}
\renewcommand{\ProgressDocOutput}[1]{%
\vskip-0.6cm\ProgressDrawBar{#1}\vskip 0.4cm}
\ProgressGfxXSize = 1725
\ProgressGfxYSize = 120
\newcommand{\calcprogress}{%
\progress{%
\numexpr
\ifnum\getpagerefnumber{LastPage}=0
0
\else
\thepage*100/\getpagerefnumber{LastPage}
\fi
\relax
}%
}
\begin{document}
Page1
\calcprogress % it should return 50
\pagebreak
Page2
\calcprogress % it should return 100
\end{document}
解释:\progress
想要一个存储在计数寄存器中的数字,这样就\numexpr
很好了。我们必须处理LastPage
尚未设置的情况,当\getpagerefnumber{LastPage}
返回 0 时;在这种情况下我们返回 0,否则我们进行计算。