如何将两个值相加并将结果存储在其他变量中?

如何将两个值相加并将结果存储在其他变量中?

在 LaTeX2e 中,如何将两个值相加并将它们分配给其他变量?

我想要计算类似的东西:

var=\textwidth - 1cm 

如果两者都是常数:

var=1+1

答案1

在常规 LaTeX 中,calc包裹可以轻松操作长度算术:

\documentclass{article}
\usepackage{calc}% http://ctan.org/pkg/calc
\newlength{\mylength}
\begin{document}
\setlength{\mylength}{\textwidth}%
\noindent\rule{\mylength}{20pt}

\bigskip
\setlength{\mylength}{\textwidth-1cm}%
\noindent\rule{\mylength}{20pt}

\bigskip
\setlength{\mylength}{\textwidth-80pt+5mm-1bp}%
\noindent\rule{\mylength}{20pt}
\end{document}

使用 calc 包计算不同长度的线

以上内容涉及长度。对于使用数字的基本算术,fp包裹。下面是使用中缀表示法的示例(逆波兰表示法/RPN也可以通过以下方式实现\FPupn

\documentclass{article}
\usepackage[nomessages]{fp}% http://ctan.org/pkg/fp
\begin{document}
The following arithmetic is easy:
\begin{itemize}
  \item \FPeval{\result}{clip(5+6)}%
    $5+6=\result$
  \item \FPeval{\result}{round(2+3/5*pi,5)}%
    $2+3/5\times\pi=\result$
\end{itemize}
\end{document}

使用 fp 包进行正则运算

答案2

在经典的 Knuth TeX 中,

\newdimen\len
\len=\hsize
\advance\len by -1cm

\newcount\cnt
\cnt=1
\advance\cnt by 1

eTeX,

\newdimen\len
\len=\dimexpr\hsize-1cm\relax

\newcount\cnt
\cnt=\numexpr1+1\relax

LaTeXcalc

\usepackage{calc}

\newlength\len
\setlength{\textwidth+1cm}

\newcounter{cnt}
\setcounter{cnt}{1+1}

LaTeX2e 与expl3(LaTeX3),

\usepackage{expl3}
\ExplSyntaxOn
\dim_new:N \l_len_dim
\dim_set:Nn \l_len_dim {\textwidth + 1cm}

\int_new:N \l_cnt_int
\int_set:Nn \l_cnt_int {1+1}
\ExplSyntaxOff

答案3

既然 LuaTeX 已经可用,那就忘掉所有复杂的东西,然后执行以下操作:

\directlua{
a = 0
a = a + 1

tex.print(a)
}

答案4

使用较新的 TeX 发行版

\newdimen\len
\len=\dimexpr\textwidth-1cm\relax

\newcount\cnt
\cnt=\numexpr1+1\relax

不过,您感兴趣的框架是什么还不太清楚。

相关内容