我想“绘制”一个简单的线函数,例如f(x) = 3x+5
。实际上,这是完美的工作:
\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\plot{3*x+5};
\end{axis}
\end{tikzpicture}
\end{document}
但是,对于线函数,我希望能够创建一个自定义命令,该命令将函数作为参数并评估此线上的两个点。像这样:
\NewDocumentCommand\myline{m}{
\draw (-5;\fx{#1}(-5)>) -- (5; \fx{#1}(7)>);
}
\NewDocumentCommand\fx{m r()}{
% this is where I'm missing what to do:
% #1 is the function: #1 = 3*x+5
% #2 is the value to use: x = #2
}
在哪里
<#1(-5)>
应解析并评估行函数x=-5
<#1(7)>
应解析并评估行函数x=7
请注意,我想保留“绘图”样式功能:并且我不想像这样3*x+5
添加反斜杠:x
3*\x+5
我尝试使用各种pgfmath
功能,但一定是缺少了一些东西才能让它工作:(
感谢您的帮助 !
答案1
以下是一个完全可扩展的函数,它允许您仅使用 来评估函数x
。警告:x
即使您不希望如此,每个 都会被替换为值,因此您不能再使用 函数exp()
了l3fp
。您可以使用可选参数更改替换的变量名称,这样\fx[x_1]{exp(x_1/5)}{2}
就可以了。
\documentclass{article}
\usepackage{etl}
\ExplSyntaxOn
\NewExpandableDocumentCommand \fx { O{x} m m }
{
\fp_eval:n { \etl_replace_all_deep:nnn {#2} {#1} {#3} }
}
\ExplSyntaxOff
\begin{document}
\fx{3*x+5}{-5} and \fx{3*x+5}{7}
\end{document}