我正在使用一个启动变量 \n 的 for 循环。如何打印 (\n+2) 的结果?我读过 e-Tex 和 LuaTex,但对于这个简单的操作来说,这一切似乎有些过头了?
已经谢谢了!
答案1
一个非常简单的版本:使用\the\numexpr
。
\documentclass{article}
\def\n{1}
\begin{document}
\n\ + 2: \the\numexpr\n+2
\end{document}
更新:更全面的版本。该命令\allmightymath
将使用 来评估整数表达式(即使它们没有简化)expl3
。
\documentclass{article}
\usepackage{expl3,xparse}
\ExplSyntaxOn
\NewDocumentCommand { \allmightymath } { m }
{
\int_eval:n { #1 }
}
\ExplSyntaxOff
\def\n{1}
\begin{document}
\n\ + 2: \the\numexpr\n+2\\
\allmightymath{4*(\n-1)+2}\\
\def\n{2}
\allmightymath{4*(\n-1)+2}
\end{document}
答案2
这是一个非常强大的例子前列腺素F包。有了它,你可以在 TeX 文档中做一些很棒的数学运算。
\documentclass{article}
\usepackage{pgfmath,pgffor}
\begin{document}
\foreach \n in {0,1,...,100}{
\pgfmathparse{int(\n+2)}
\pgfmathresult\par
}
\end{document}
答案3
这是一个基于 LuaLaTeX 的解决方案。它启动一个for
-循环并打印出n
从1
到 的每个20
的值n
,n-2
和4(n-1)+2
。
\documentclass{article}
\begin{document}
\directlua{%
for n = 1 , 20 do
tex.sprint ( n .. " ".. n+2 .. " ".. 4*(n-1)+2 .. "\string\\par" )
end}
\end{document}