如何在 latex 中进行数学运算?

如何在 latex 中进行数学运算?

我是新手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,否则我们进行计算。

相关内容