我正在探索一些 LaTeX3 例程和语法。如何使用以下函数sin
等函数。我在以下 sin 函数中遇到错误(请取消注释罪函数来查看错误):
\documentclass{article}
\usepackage{expl3}
\begin{document}
\ExplSyntaxOn
\newcommand*\sampleCalculation{%
\fp_new:N \mynumber
\fp_set:Nn \mynumber{150}
\fp_sub:Nn \mynumber{5}
\fp_add:Nn \mynumber{-1}
\fp_div:Nn \mynumber{12}
\fp_mul:Nn \mynumber{0.0001}
\fp_sub:Nn \mynumber{-38}
\fp_abs:N \mynumber
\fp_neg:N \mynumber
%\fp_sin:N \mynumber
\fp_use:N \mynumber
}
% aliases
\let\real\fp_new:N
\let\realset\fp_set:Nn
\let\realadd\fp_add:Nn
\let\realsub\fp_sub:Nn
\let\realdiv\fp_div:Nn
\let\realmul\fp_mul:Nn
\newcommand\sampleCalculations{%
\real \Z
\realset \Z{150}
\realsub \Z{5}
\realadd \Z{-1}
\realdiv \Z{12}
\realmul \Z{0.0001}
\Z
}
\ExplSyntaxOff
\sampleCalculation
\sampleCalculations
\end{document}
答案1
LaTeX3 的 FPU 经历了一些重大变化。在 TeX Live 2012 DVD(2012 年 6 月中旬)中包含的版本之前,“旧”FPU 只能以一种方式工作。改进的 FPU 可从开发存储库获得,计划于 2012 年 6 月底发布到 CTAN,可扩展且具有多项改进。
更新的(可扩展)FPU 答案
大多数赋值应该使用\fp_set:Nn
或 来完成\fp_gset:Nn
。这些宏的第二个参数接受任意浮点表达式。
\fp_set:Nn \l_my_fp { sin ( 7.415e-1 + 2.4 ) }
原始(不可扩展)FPU 答案
目前,\fp_sin:Nn
需要两个参数,存储结果的变量和角度(以弧度为单位):
\fp_sin:Nn \l_my_fp { 3.1415 }
fp 操作的最佳语法非常欢迎反馈。目前的想法是,使用单独的输入和输出参数来计算正弦比假设的更有意义
\fp_set:Nn \l_my_fp { 3.1415 }
\fp_sin:N \l_my_fp
这并不是一成不变的:fp 模块比其他模块更新得多expl3
,因此需要好好解决。这个语法问题就是这样一个领域。另一个是使用度数还是弧度。内部计算以弧度为单位,所以也许 \fp_rad_to_deg:N
可能\fp_deg_to_rad:N
是一种有用的折衷方法。
我还要指出的是,目前没有弧函数:正弦和余弦函数有其他用途,所以我完成了这些。当有需求时,我会做弧函数。