我正在学习力学课程,想用 LaTeX 编写理论和计算。但是,由于设计是一个迭代过程,我想摆脱以下繁琐的循环:
- 选择直径、长度等的起始值。
- 经过多个步骤,计算派生值。
- 最后一步是应力强度分析,如果失败,则转到第一步。
这是我目前所得到的。
\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,则可以使用Sweave
或knitr
将 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}