数学表达式在线编辑:从代码式写法到排版式写法
更新于
写程序、用计算器或者在表格软件里输入公式的人,手上常常是一段代码式写法,比如 (a+b)/2、sqrt(x)、x**2。数学表达式在线编辑要做的,是把这种一行写完的表达式,改写成放得进论文和试卷的排版式公式。两种写法描述的是同一个数学对象,只是表达方式不同,改写时有几处特别容易出错。
两种写法差在哪里
代码式写法是为了让机器读懂而设计的,所有内容挤在一行里,靠括号和运算符的优先级来表达结构;排版式写法是为了让人读懂,分子在上、分母在下,指数缩小并抬高,根号把被开方的部分整个罩住。
举一个对照:代码里的 (x+1)/(x-1),在排版式里是一个分式,分子和分母各占一层,括号就不再需要了:
\frac{x+1}{x-1}
也就是说,代码式里的很多括号只是为了告诉机器运算的先后顺序,改写成排版式之后,结构本身已经表达了这层意思,这些括号应当去掉。
常见写法的对应关系
下面几组是最常遇到的改写,前面是代码式,后面是在编辑器 LaTeX 模式里的写法:
- 乘方:
x**2或x^2,改写为 x²;指数由多个字符组成时,比如x**(n+1),要写成x^{n+1},用花括号把整个指数包起来。 - 平方根:
sqrt(x)改写为根号结构,源码是\sqrt{x};n 次方根x**(1/n)可以写成\sqrt[n]{x}。 - 除法:
a/b在行内可以保留斜线写法,单独成行时通常改成分式\frac{a}{b}。 - 乘法:代码里的
2*x在排版式里一般直接写成 2x,确实需要乘号时用\times或\cdot。 - 绝对值:
abs(x)改写为 |x|。

在「可视化」模式里,这些结构都可以从符号面板点选插入,不必记源码。

手上有一段代码式表达式的话,可以打开编辑器,按上面的对应关系改写一条试试。
改写时最常错的三处
优先级。 代码 -x**2 在多数编程语言里表示先算乘方、再取负,排版式应写成 −x²;而 (-x)**2 才是负 x 的平方。改写时要按原来的运算顺序决定括号留在哪里,不能照着外形搬。同样,a/b*c 是先除后乘,写成分式时 c 应该放在分式外面,而不是被塞进分母。
括号。 代码里用来限定范围的括号,在分式、根号、上标里往往要换成结构本身:(a+b)/(c+d) 改成分式之后,分子与分母外层的括号应当删掉;但 2*(x+1) 这种表示整体相乘的括号要保留。改完之后切到「可视化」,逐层确认括号是否仍然成对、是否还有保留的必要。
函数名正体。 sin(x)、log(x) 里的函数名,在排版式里应当显示为正体。直接敲字母 sin,编辑器会把它当成 s、i、n 三个变量相乘,显示成斜体;在源码里写 \sin、\log 才是正确的函数名,例如:
\sin^{2} x+\cos^{2} x=1

改写完再核对一遍
改写完成后,把排版结果和原来的代码式逐项对照:分子分母有没有颠倒,指数的范围对不对,函数名是不是正体,被删掉的括号有没有改变原来的运算顺序。确认无误之后按需要导出,交给 Word 的选 Word 格式,交给 TeX 环境的选 LaTeX 源码。
延伸阅读
- 数学公式在线编辑:一道例题从录入到落进文档的完整流程
- 数学编辑器在线编辑:什么时候在两种编辑模式之间切换
常见问题
- 数学表达式在线编辑 能直接粘代码里的表达式吗?
- 可以粘贴进 LaTeX 模式的左栏,但代码里用双星号表示乘方、用 sqrt 函数表示根号这类写法不是 LaTeX,要改成 LaTeX 的上标与根号写法才能正确排版。
- 函数名要用正体吗?
- 要。sin、cos、log、ln 这类函数名在排版式里应当显示为正体;直接敲字母会被当成几个变量相乘而显示为斜体,要改用对应的函数名命令。