博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LaTeX | 为学术论文排版而生【公式篇】
阅读量:6221 次
发布时间:2019-06-21

本文共 2369 字,大约阅读时间需要 7 分钟。

hot3.png

一步一坑,继续LaTeX系列的第三篇【公式篇】,前面介绍过【入门篇】和【文本篇】,新来的朋友们可以查看。在公式编辑方面,LaTeX具有独到甚至统治性的优势,大批用户投入LaTeX的怀抱。今天就一起见识下它的魅力吧!

论数学公式

对于理工科、经济学等方向的学生和科研人员来说,难免要与数学公式打交道,比如写报告、发表学术论文。从我自己和周围的朋友来看,排版数学公式永远是件麻烦事,特别是当公式很多很复杂时。

比如在Word中,插入公式很容易引起行距的变化,需要多次调整,且很容易出现牵一发而动全身的典型Word风格(此处忽略Word排版大神)。此外在Word中给公式编号也是要经过很多步骤,就算借助MathType也无法实现一键完成编号的程度。

目前排版数学公式的方法最常见的是:

  • Word中自带的插入公式功能。

  • 借助Mathtype

上面这两种方法,要么折磨人,要么根本满足不了需要,这里不多说,大家都懂!:)

今天就向大家介绍排版数学公式的王者LaTeX

☟,准备入坑!

LaTeX 数学公式语法

假如现在我们要用LaTeX排版勾股定理,编写下面的代码即可:

$a^2 + b^2 = c^2$

得到的效果就是:

编译输出

什么!这么简单,等等,没你想得那么简单:)

因为LaTeX也算是一种编程语言,所有内容都需要通过代码实现,从上面勾股定理的实现代码可以看出都是由字母搭配各种符号构成。这里有两点:

  • 字母是都知道,这不是问题。
  • LaTeX编辑公式涉及到的符号特别多,先不说知道什么时候用哪个符号,你连把这些符号记住就不太可能了(累觉不爱,且行且珍惜:))

不过,有办法解决,后面再说。继续LaTeX语法。

行内公式

所谓行内公式(inline math)即指公式不单独成行,而是在一句话的中间。行内公式有三种表达方式:

  • $...$
  • \(...\)
  • \begin{math}...\end{math}

我们一般习惯使用$...$。比如我要表达频率等于速度除以波长这么一句话,LaTeX代码如下:

频率$f$等于速度$v$除以波长 $\lambda$

效果如下:

行内公式

是不是很简单的呢:)

行间公式

行间公式(display math)指单独成行的公式,分单行公式多行公式(后面再说)。行间公式的表达方式也有三种:

  • $$...$$
  • \[...\]
  • \begin{displaymath}...\end{displaymath}

同样,一般习惯使用$$...$$。比如使用下面的代码实现二次函数的一般表达式:

$$ f(x)= ax^2 + bx + c $$

运行得到效果:

行间公式

怎么,是不是依然很简单,:)继续往下看。

公式编号

公式编辑好后,往往需要对其进行编号,即公式有编号且编号自动增加。实现公式编号需要在导言区(不懂这些概念的学习)调用{amsmath}宏包,还得使用equation环境。给二次函数一般表达式编号的全部实现代码如下:

\documentclass[UTF8]{ctexart}\usepackage{amsmath}\begin{document}\begin{equation}         f(x)= ax^2 + bx + c \end{equation}\end{document}

运行得到效果:

编译输出

但是,单单做到这一步还不够,因为往往文档都是有章节的,且经常碰到公式编号跟随章节序号变化的要求。这一点LaTeX早就为我们考虑了,而且实现方法非常简单(绝对秒杀WordMathType)。

方法就是导言区添加:\numberwithin{equation}{section}

因此修改前面的代码为:

\documentclass[UTF8]{ctexart}\usepackage{amsmath}\numberwithin{equation}{section}\begin{document}\section{Math}\begin{equation} f(x)= ax^2 + bx + c \end{equation}\end{document}

运行得到效果:

编译输出

到这里,可以发现用LaTeX编辑公式是这么简单高效。那么如何解决很难记住那么多符号的问题呢,比如求和、积分、求导等符号。继续往下看。

你可能不知道的 MathType 功能

先设想一下:

如果能先在MathType里编辑好公式,然后直接拷贝到LaTeX里进行排版,那该有多好!这样便能将MathType可见即可得的风格与LaTeX所思即所想的风格结合起来。

事实是MathType确实能做到,下面具体说一下。

  • 首先在MatyType中编辑好自己需要的公式,比如二次函数根的表达式:

    编辑公式

  • 在菜单栏选择剪切并拷贝预置

    MathType设置

  • 选择MathMl 或 TeX,点击确定,完成设置。

    MathType设置

  • 然后全选编辑器好的公式,Ctrl+C复制。

  • LaTeX编辑器(比如TeXstudio)粘贴,得到:

\[x = \frac{
{ - b \pm \sqrt {
{b^2} - 4ac} }}{
{2a}}\]

这里可以看出,默认情况下MathType采用行间公式\[...\]

  • 编译代码得到:

    编译输出

  • 到此完成。

所以可以看到,通过上述方法,我们可以在MathType中先编辑好比较复杂的公式,特别是涉及很多符号的公式,然后拷贝到LaTeX中。当然,有时满足需要,可以稍微修改下粘贴到LaTeX的代码,以得到更好的公式排版效果。

转载于:https://my.oschina.net/ZhenyuanLiu/blog/2991864

你可能感兴趣的文章
nodejs上HTML分析利器node-jquery
查看>>
Angular-Bootstrap和Compiler
查看>>
植入式攻击入侵检测解决方案
查看>>
Ubuntu 14.04下安装Golang以及LiteIDE
查看>>
Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
查看>>
批量生成 htpasswd 密码
查看>>
Tiny代码生成框架
查看>>
大型网站技术架构之秒杀系统架构设计
查看>>
AOP的另一种实现----cglib
查看>>
一、大型网站技术架构演化
查看>>
NVIDIA Jetson TK1学习与开发(十):人脸检测(Face Detection)
查看>>
C++中的树、二叉树、二叉树遍历、二叉树前序、中序、后序遍历相互求法
查看>>
cms查询系统(二)json形式参数的设计与解析
查看>>
[置顶]微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
查看>>
用树结构描述和计算数据
查看>>
使用NSClassFromString
查看>>
PHP读取日志里数据方法理解
查看>>
#大学#汇编指令查询
查看>>
深挖android low memory killer
查看>>
Linux_CentOS-服务器搭建 <一>
查看>>