查找在 Latex 中执行计算的语法

查找在 Latex 中执行计算的语法

我想在 latex 中执行一些计算,以便构建一个可以重复用于不同输入的图表。具体来说,它与绘制连接两个点的线和相对于这些点的弧有关。

我发现很难找到进行计算的语法,因为大多数人感兴趣的是如何生成符号来表示方程式,而不是实际进行计算。

我实际上需要这两点。

但一般来说,哪里是寻找在乳胶中编写数学函数的技巧的好地方(而不是使用乳胶来打印好看的数学方程式)?

具体来说,我想计算连接两点的斜率的反正切,其中这两个点的 x 和 y 值存储在变量中。

例如,

\def\xa{-5}
\def\ya{3}
\def\xb{4}
\def\yb{-4}
\def\rotation{60}

... 可以将这些数字用作节点的 x、y 坐标等,也可以用作节点文本或标签。我可以在 tikzpicture 上下文中对它们进行计算,例如:

\draw [dashed, thick] (\xa, \ya) -- (\xa+4, {(tan(\rotation)*4)+\xa});

但如果我尝试根据对现有变量执行的计算来定义新变量,它只会将结果作为字符串返回给我,而不是执行计算。例如,

\def\trajectoryGradient{(\earthy-\shipy)/(\earthx-\shipx)}
\def\trajectoryDeg{arctan(\trajectoryGradient)}

\node[label=below:{$\trajectoryDeg$}] at (-2, -2){}; 

...我得到的只是字符串版本,而不是计算结果:

输出的屏幕截图

我怎样才能让它在这里进行计算?也许 arctan 不是 latex 命令,但找出是否是这种情况与我的问题的第一部分有关。

答案1

您可以为命名变量设置一个框架。我使用它\?来“评估变量”。为了打印值,请使用siunitx功能。

\documentclass{article}
\usepackage{siunitx}

\ExplSyntaxOn

\NewDocumentCommand{\setfp}{mm}
 {
  \fp_zero_new:c { l_phenomniverse_var_#1_fp }
  \fp_set:cn { l_phenomniverse_var_#1_fp } { #2 }
 }

\NewExpandableDocumentCommand{\?}{m}
 {
  \fp_use:c { l_phenomniverse_var_#1_fp }
 }

\ExplSyntaxOff

\begin{document}

\setfp{earthx}{-5}
\setfp{earthy}{3}
\setfp{shipx}{4}
\setfp{shipy}{-4}
\setfp{rotation}{60}

\setfp{trajectoryGradient}{(\?{earthy}-\?{shipy})/(\?{earthx}-\?{shipx})}
\setfp{trajectoryDeg}{atan(\?{trajectoryGradient})*180/pi}

\num{\?{trajectoryDeg}}

\num[round-mode=places,round-precision=0]{\?{trajectoryDeg}}

\num[round-mode=places,round-precision=2]{\?{trajectoryDeg}}

\end{document}

在此处输入图片描述

答案2

您可以使用Lua(LaTeX)进行计算:

%!TEX program = lualatex
\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{luacode}
\begin{document}

\newcommand\w{\directlua{tex.sprint(1/3)}}

This is my graph, it has width of \w and it looks very nice

\includegraphics[width=\w\textwidth]{}

\end{document}

示例复制自这里

相关内容