使用 if 语句定义宏

使用 if 语句定义宏

可能重复:
tikz 或 tkz-fct 中的分段定义函数

我希望编写一个获取数字 x 的宏。如果 x 小于 1,它应该返回 x,否则,它返回 x^2。我需要它作为 TikZ 的分段函数,但我希望它作为宏,因为我将运行它几次。有什么简单的方法可以做到吗?

答案1

使用 pgfmathparse

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{mindmap}

\newcommand*{\mycommand}[1]{%
    \pgfmathparse{
        ifthenelse(#1 < 1,#1,#1*#1)}
    \pgfmathresult
}%
\begin{document}
Less than 1 (x = 0.5)\\
f(x) = \mycommand{0.5}

Equal to 1 (x = 1)\\
f(x) = \mycommand{1}

Greater than 1 (x = 2)\\
f(x) = \mycommand{2}
\end{document}

输出结果如下:

输出

对f(n+1)的计算可以用一个新函数来实现:

\newcommand*{\mycommandB}[1]{%
    \pgfmathparse{
        ifthenelse(#1+1 < 1,#1+1,(#1+1)*(#1+1))}
    \pgfmathresult
}%

答案2

您可以将ifthen包与一起使用intcalc。然后定义一个这样的宏:

\newcommand{\test}[1]{\ifthenelse{#1<1}{#1}{\intcalcMul{#1}{#1}}

相关内容