表环境中的数值计算

表环境中的数值计算

我正在学习力学课程,想用 LaTeX 编写理论和计算。但是,由于设计是一个迭代过程,我想摆脱以下繁琐的循环:

  1. 选择直径、长度等的起始值。
  2. 经过多个步骤,计算派生值。
  3. 最后一步是应力强度分析,如果失败,则转到第一步。

这是我目前所得到的。

\documentclass{article}
\usepackage[nomessages]{fp}  % http://ctan.org/pkg/fp
\usepackage[table]{xcolor}     % For coloured rows within tables.

\begin{document}

\FPset{vAlpha}{20}
\rowcolors{1}{white}{lightgray}
\begin{tabular}{l | c | c | c | c | c | c | c | c}
Gear & $\alpha$ & $h_a$, [mm]             & c, [mm] & $h_f$, [mm] & $\rho$, [mm] & $h_w$, [mm] & h, [mm] & s, [mm] \\
G11  & \vAlpha  & \FPprint{vAlpha * 0.25} &         &             &              &             &         &          \\
\end{tabular}

\end{document}

显然,我试图在表格内进行计算并直接显示结果。它不起作用(第三列没有输出任何内容)。

我知道在这种情况下\FPeval\FPmul会起作用,但我发现它们太麻烦了,原因如下。它们都要求我将结果分配给一个变量,然后我可以稍后再使用它\FPprint。这对我来说不是很有用,因为我需要计算大量变量,然后\FPprint在表中调用。

除了在表格中显示计算结果外,我不会将其用于任何其他用途。所有条目都是一个变量(不同的变量)乘以一个常数。最佳解决方案是什么?

答案1

% Command to multiply a variale by a floating point number.
\newcommand*{\Mul}[2]
{
  \FPeval{vTemp}{#1 * #2}
  \FPround\vTemp{\vTemp}{4}  % Round to four digits after decimal point.
  \FPprint{vTemp}
}

这实际上不是一个通用的解决方案,但可以解决具体问题。

答案2

如果您安装了 R,则可以使用Sweaveknitr将 R 中的所有数学运算放入 LaTeX 中。使用扩展保存下面的 MWE.Rnw并使用以下命令进行编译:

R CMD Sweave --pdf <filename>.Rnw

这直接生成一个<filename>.pdf。对于更复杂的文档,请Rstudio在终端中使用或:

  • R CMD Sweave <filename>.Rnw
  • 然后 <filename>.tex照常编译

妇女权利委员会:

 \documentclass{article}
\begin{document}
\begin{tabular}{lll}
G11  & \Sexpr{vAlpha=20;vAlpha} & \Sexpr{vAlpha * 0.25}  \\
\end{tabular}
\end{document}

相关内容