昨天,有人在群里发了做的乘法表,潘立强老师给出了一个自己的指令。表格文本(序列(序列(文本('\color{red}{\fbox{\color{blue}{' + i + '\times' + j + '=' + (i j) + (如果(i j < 10, '\;\;', '')) + '}}}'), i, 1, j), j, 1, 9))指令略微有点长,但是它一个指令就画出来了乘法表。效果如下。你可以直接复制它到GeoGebra软件输入框中,你也能看到结果。
表格文本( <列表1>, <列表2>, ... )序列( <表达式>, <变量>, <起始值>, <终止值> )
文本( <对象>, <点>, <是否替换变量? true|false>, <是否应用 LaTeX 公式? true|false> )为了大家能够看的更清楚,我们可以给各个指令涂上色。
表格文本(
文本('\color{red}{\fbox{\color{blue}{' + i + '\times' + j + '=' + (i j) + (这就是我们能看到的层次关系,和之前我们的案例比,这个案例中,我们之前从未涉及到的就是文本和表格文本,今天我们就简单介绍下这两个指令。
文本( <对象>, <点>, <是否替换变量? true|false>, <是否应用 LaTeX 公式? true|false> )<是否替换变量>,是文本中出现的已有对象是否用数值代替对象名称。<是否应用LaTeX公式>,这里需要考虑文本是否是由LaTeX公式编辑的,如果是编辑的必须选择true,如果不选择true的话,看不到LaTeX公式的实际效果。(1)、文本('1', (0, 0), true, true)(2)、A=(0,0) 文本(A, A, true, true)这样就会在A的位置上出现其坐标值,而且A移动的时候,该文本也会跟着移动。文本(f(x) = f, (10, 2),true, true)文本(f(x) = f, (10, 0),false, true)
对比上面两个指令,你会发现<是否替换变量>存在的意义。文本('\sqrt{x}', (10, 0), false, true)文本('\sqrt{x}', (10, 1), false, false)
对比上面两个指令,你会发现<是否应用 LaTeX 公式>存在的意义。
除了这条最精确的文本指令外,还有四个简化的文本指令:
文本( <对象> )
文本( <对象>, <是否替换变量? true|false> )文本( <对象>, <点>, <是否替换变量? true|false> )1、文本指令中没有设置位置点,默认位置在(0,0)2、文本指令中没有设置<是否替换变量>,默认替换变量。3、文本指令中没有设置<是否应用 LaTeX 公式>,默认是不应用。如 A=(10,0) 文本(A) 文本('\sqrt(2)')
表格文本
表格文本( <列表1>, <列表2>, ... )表格文本( <列表1>, <列表2>, ..., <对齐方式 'v' #垂直|'h' #水平|'l' #左对齐|'r' #右对齐|'c' #居中|...> )表格文本指令其实很简单,就是设定几个集合,它给你化成表格。第二条比第一条指令多了表格的对齐方式。如:
得到的表格文本,默认并没有表格,可以在绘图区-样式栏设置。2、A={1,2,3,4} ,B={4,3,2,1} 表格文本(A,B)
该案例我们会发现,表格文本,如果涉及多个集合的话,是一个集合表示一行,多个集合的元素数量可以不一致。
利用文本、表格文本、序列,我们能不能画出一个乘法表呢?首先,画一个乘法表,最外面肯定就是表格文本,里面有九个集合。九个集合中每个集合的元素数量还不一样,分别是从1个元素到9个元素。这里我们就要嵌套序列指令,一个序列的变量是i 表示横坐标,另一个序列的变量是j 一个表示纵坐标。我们会发现i始终是小于等于j的值的。这里也就是说变量i所在的那个序列,设定最大值的时候就是j了。最后得到的就是一个这样的指令序列( 序列( (i,j) ,i,1,j) ,j,1,9)
如果将上面的点的坐标表达式(i,j)修改为一个文本表达式
文本( i + '\times' + j +'=' + (i j) , (4i,-j), true, true)
我们就能得到一个丑陋的乘法表了。
序列( 序列( 文本( i + '\times' + j +'=' + (i j) , (4i,-j), true, true) ,i,1,j) ,j,1,9)
文本( i + '\times' + j +'=' + (i j) , (4i,-j), true, true)
这条指令中的\times 是乘号;然后需要注意,要替换变量的地方不能用双引号,其他文本内容需要双引号引起来,然后用加号连接起来,就是我们的文本内容。(4i,-j)是坐标位置,true1替换变量,因为这里要有i,j两个变量需要替换,true2,表示要执行的是LaTeX 公式,\times就是LaTeX 语言中乘号的写法。
在我们做出来这个的基础上,如果我们在外面加上一个表格文本。表格文本( 序列( 序列( 文本( i + '\times' + j +'=' + (i j) , (4i,-j), true, true) ,i,1,j) ,j,1,9) )你会得到一个文本型的乘法表,对比下,第二个更漂亮些了。除此之外,如果是第一个会受到坐标系设置而影响大小,而第二个是不影响的,因为是一个整体了。第一个是每一道题目设置了一个坐标位置。
至此,我们可以给每一个文本增加一个边框(LaTeX语法:\fbox{ 内容 })。这样会更美观。这里需要注意要加边框,必须用大括号括住内容。
表格文本( 序列( 序列( 文本( '\fbox{'+ i + '\times' + j +'=' + (i j)+'}' , (4i,-j), true, true) ,i,1,j) ,j,1,9) )
这里,你会发现,当乘积<10的时候,并和成绩大于10的时候表格的宽度不一致。这就是为何要增加一个如果指令的原因。这条指令的含义就是如果乘积小于10的时候加个空格。表格文本( 序列( 序列( 文本( '\fbox{'+ i + '\times' + j +'=' + (i j) +(如果(i j < 10, '\;\;', '')) +'}' , (4i,-j), true, true) ,i,1,j) ,j,1,9) )
如果你想要表格边框和文本颜色不一致,那你需要再增加两个LaTeX语法:\color{red}{ } \color{blue}{}。注意最后括号的顺序。表格文本( 序列( 序列( 文本( '\color{red}{ \fbox{\color{blue}{'+ i + '\times' + j +'=' + (i j) +(如果(i j < 10, '\;\;', '')) +'}}}' , (4i,-j), true, true) ,i,1,j) ,j,1,9) )另外,在使用表格文本时,我们可以把坐标定位、是否应用变量、是否应用LATEX三个参数省略掉。自终版指令就是潘老师的指令:表格文本( 序列( 序列( 文本( '\color{red}{ \fbox{\color{blue}{'+ i + '\times' + j +'=' + (i j) +(如果(i j < 10, '\;\;', '')) +'}}}' ) ,i,1,j) ,j,1,9) )
假如觉得不需要,不做这个颜色效果的话也可以。设置了颜色的话,样式栏的颜色就不起作用啦。不设置颜色的指令最终版:表格文本(序列(序列(文本 ('\fbox{'+ i + '\times' + j +'='+ (i j) +(如果(i j < 10, '\;\;', '')) +'}' ) ,i,1,j) ,j,1,9)) GeoGebra的文本支持LATEX。LATEX说到的时候可能很多老师不陌生,但是应该也有很多人会和我一样,一脸懵,这个是啥东西呢?对文本有特别大需要的老师可以看看段明老师编的《GeoGebra的LaTeX语法》(文件可以去微云、永硕网盘、腾讯课堂下载),或许对你有帮助。本文重点分析了潘立强老师的案例、在此表示感谢。如果你也想和潘老师及更多大神交流学习,可以加入我们的GeoGebra交流QQ群。