九九乘法表如何用宏编程实现不用宏包

发布于 2024-08-19 22:34:08

看到海波的九九加法表,改编了一个九九乘法表。但不想用bigintcalc宏包,怎么改才可以达到效果。
九九乘法表.png
MWE如下:

\documentclass{standalone}
\usepackage{expl3}
\usepackage{bigintcalc}
\begin{document}
\ExplSyntaxOn
\begin{tabular}{*{9}{l}}
  \int_step_inline:nn {9}{
    \int_step_inline:nn {#1}{
    $ ##1 \times  #1 = \bigintcalcMul{##1}{#1}$ 
    \int_compare:nNnF {##1} = {9}{ & }
    }\\
    }
\end{tabular}
\ExplSyntaxOff
\end{document}

查看更多

关注者
0
被浏览
985
鱼香肉丝没有鱼先生
脾气不好,别来惹我!!!

\bigintcalcMul 用于计算两个数的乘积, 既然使用了 LaTeX3 那么就可以直接使用 \int_eval:n { #1*##1} 替代, 如果你的 latex 发行版高于 2022, 你可以直接使用 \inteval{#1 * ##1}.

\documentclass{standalone}
\begin{document}
\ExplSyntaxOn
\begin{tabular}{*{9}{l}}
  \int_step_inline:nn {9}{
    \int_step_inline:nn {#1}{
    $ ##1 \times  #1 = \int_eval:n {#1 * ##1}$ 
    \int_compare:nNnF {##1} = {9}{ & }
    }\\
    }
\end{tabular}
\ExplSyntaxOff
\end{document}
2 个回答
Sagittarius Rover
Sagittarius Rover 2024-08-20
我要成为Typst糕手/(ㄒoㄒ)/~~

和题主要求的不是特别相关,前几天正好学习了\tikzmath的有关功能,也实现了九九乘法表...
下面是一个MWE的片段

%\usepackage{amsmath}
%\usepackage{tikz}
%\usepackage{xcolor}
%\usepackage{pgffor}
%\usetikzlibrary{math} 
\begin{tikzpicture}
\tikzmath{
function paint_rectangle(\x,\y){
    int \i,\j,\k;
    for \i in {1,...,\x}{
        for \j in {1,...,\y}{
            \k = \i * \j;
            if \i <= \j then{
                {
                    \node [rectangle,
                        fill=green!30,
                        draw=green!60,
                        rounded corners
                    ] at (2.5*\i,\j) {\i $\times$ \j $=$ \k};
                };
            }else{
                {
                    \node [rectangle,
                        fill=violet!40,
                        draw=violet!80,
                        rounded corners
                    ] at (2.5*\i,\j) {$\j \times \i=\k$};
                };
            };
        };
    };
};
\A = 6;
\B = 15;
paint_rectangle(\A,\B);
}
\end{tikzpicture}

image.png

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览