40分钟入门 LaTeX 排版

本文修改自LaTeX新人教程,30分钟从完全陌生到基本入门。由于无法找到原文章,于是引用了一片引用率最高的博文,侵删。

我在初接触LaTeX时,翻得到了这篇文章,跟着代码看实例,很容易猜出代码的意思,速成很快,比较推荐。因此在这里引用,并对文章进行了一部分的修改。适合有一定编程基础的同学迅速入门。

其他LaTeX教程攻略,我个人推荐是在看完这一篇之后,再随意当字典或百科全书来查阅。推荐书籍:《LaTeX 入门》--刘海洋

================================

0. 前言

对于真心渴望迅速上手LaTeX的人,前言部分可以跳过不看。(文末有原前言。)

我修改这一篇教程的动机,正是因为网络上能够找到的简要速成的LaTeX教程仅仅有一篇,就是我现在引用的这一篇。这一篇文章的确十分的棒,我在初学的时候也是看这一篇才入门的。但是它有一个问题是,它是2013年写出来的,主要是运用WinEdt+MikTeX进行的。然而我们数学建模课程教学时推荐的是使用TeXStudio套装,而且我们课程对代码、公式、图片、表格的要求更强。因此,我在原来的基础上,增加了图片、代码块、三线表的详细教程并略微修改了公式部分的内容。以教会新人上手的基础上加入了数模论文所需要的内容,确保能够在40分钟内跟着这个教程走完全步骤就可以基本算是“玩转LaTeX”了。

由于我的疏忽,忘了增添代码块部分的教程,现已补上。

由于水平有限、编写时间仓促,文中难免会有一些错误或不准确的地方,恳请读者批评指正。

===============================

下面是教程正文。(正文最后增添了附录)


1. LaTeX软件的安装和使用

方法A(推荐):在 TeXlive 或是 TeXStudio 的官网下载相关套装。
方法B(程序员推荐):在安装好 TeXlive 套装后,VSCode 下载相关插件,并配置自己喜欢的操作界面。我使用的就是这种方式,界面清爽、操作方便、排错简单,但初学者不推荐。
(哈哈这一部分当然不包含在标题的40分钟里。)


2. 第一个文档

打开TexStudio,建立新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8。

\documentclass{article}
\begin{document}
  hello, world
\end{document}

在编译下拉菜单中选择pdfLaTeX,并点击编译(一个类似于播放的标准,一般在左上角)。
如果顺利的话,我们就可以顺利生成出第一个pdf文件,点击工具栏中的放大镜按钮就可以快速打开生成的pdf文件。


3. 标题、作者和注释

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

\documentclass{article}
\author{My Name}
\title{The Title}
\begin{document}
  \maketitle
  hello, world % This is comment
\end{document}

4. 章节和段落

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

\documentclass{article}
  \title{Hello World}
\begin{document}
  \maketitle
  \section{Hello China} China is in East Asia.
  \subsection{Hello Beijing} Beijing is the capital of China.
  \subsubsection{Hello Dongcheng District}
  \paragraph{Tian'anmen Square}is in the center of Beijing
  \subparagraph{Chairman Mao} is in the center of Tian'anmen Square
  \subsection{Hello Guangzhou}
  \paragraph{Sun Yat-sen University} is the best university in Guangzhou.
\end{document}

退格只是我个人偏好,看起来层次清晰美观。实际操作上未必要如此,每一行之前的空格不影响编译生成PDF的排版结果。


5. 加入目录

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

\documentclass{article}
\begin{document}
  \tableofcontents
  \section{Hello China} China is in East Asia.
  \subsection{Hello Beijing} Beijing is the capital of China.
  \subsubsection{Hello Dongcheng District}
  \paragraph{Hello Tian'anmen Square}is in the center of Beijing
  \subparagraph{Hello Chairman Mao} is in the center of Tian'anmen Square
\end{document}

6. 换行

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

\documentclass{article}
\begin{document}
  Beijing is
  the capital
  of China.

  New York is

  the capital

  of America.

  Amsterdam is \\ the capital \\
  of Netherlands.
\end{document}

7. 数学公式

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

\documentclass{article}
  \usepackage{amsmath}
  \usepackage{amssymb}
\begin{document}
  The Newton's second law is F=ma.

  The Newton's second law is $F=ma$.

  The Newton's second law is
  $$F=ma$$

  The Newton's second law is
  \[F=ma\]

  Greek Letters $\eta$ and $\mu$

  Fraction $\frac{a}{b}$

  Power $a^b$

  Subscript $a_b$

  Derivate $\frac{\partial y}{\partial t} $

  Vector $\vec{n}$

  Bold $\mathbf{n}$

  To time differential $\dot{F}$

  Matrix (lcr here means left, center or right for each column)
  \[
  \left[
  \begin{array}{lcr}
    a1 & b22 & c333 \\
    d444 & e555555 & f6
   \end{array}
  \right]
  \]

  Equations(here \& is the symbol for aligning different rows)
  \begin{align}
    a+b&=c\\
    d&=e+f+g
  \end{align}

  \[
  \left\{
  \begin{aligned}
    &a+b=c\\
    &d=e+f+g
  \end{aligned}
  \right.
  \]

  \end{document}

具体细节可以自行搜索LaTeX的数学符号表或别人给的例子。

这里给出一个十分方便的导出LaTex数学公式方式
相信大家都已经安装了MathType了,在MathType中的选项(option)里有一个剪切和复制选项,选择转换其他文字(Text using MythType translator),下拉选择LaTex 2.09 and later,这样你再进行编辑后复制出来的就是LaTeX公式了!怎么样,是不是很方便?


8. 插入图片

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,放在和图片文件同一个文件夹里,编译并观察现象。

\documentclass{article}
\usepackage{graphicx}
\begin{document}
  \begin{figure}[ht]
 
    \centering    %居中
    \includegraphics[scale=0.3]{XDU.jpg}    %插入图片
    \caption{this is my head portrait}    %设置图片的一个编号以及为图片添加标题
    \label{figl}    %给图片一个名称方便后文引用
 
\end{figure}
\end{document}

figure参数:h 此处(here)t 页顶(top)b 页底(bottom)p 独立一页(page)


9. 简单表格

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

\documentclass{article}
  \usepackage{booktabs}    %三线表需要引用的宏包
\begin{document}
  \begin{tabular}{|c|c|}
    a & b\\
    c & d\\
  \end{tabular}

  \begin{tabular}{|c|c|}
    \hline
    a & b\\
    \hline
    c & d\\
    \hline
  \end{tabular}

  \begin{center}
  \begin{tabular}{|c|c|}
    \hline
    a & b\\ \hline
    c & d\\
    \hline
  \end{tabular}
  \end{center}

  \begin{table}[htbp]
    \begin{center}
    \caption{\label{tab:test}example table}
    \begin{tabular}{p{1cm}p{2cm}p{3cm}}
     \toprule
     12 & 12 & 12 \\
     \midrule
     12 & 12 & 12 \\
     12 & 12 & 12 \\
     12 & 12 & 12 \\
     \bottomrule
    \end{tabular}
    \end{center}
   \end{table}
\end{document}

10. 代码块

建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8,编译并观察现象。

#######自定义代码块######
\documentclass[UTF8]{ctexart}
  \usepackage{listings}
  \usepackage{xcolor}
  \usepackage[titles]{tocloft}
  \renewcommand{\cftdot}{$\cdot$}
  \renewcommand{\cftsecdotsep}{1.5}
  \setlength{\cftbeforesecskip}{7pt}
  \setlength{\cftbeforesubsecskip}{3pt}
  \renewcommand{\cftsecfont}{\bfseries\zihao{-4}\heiti}
  \renewcommand{\cftsecleader}{\cftdotfill{\cftsecdotsep}}
  \renewcommand{\cftsecaftersnumb}{\hskip.4em}

  \definecolor{dkgreen}{rgb}{0,0.6,0}
  \definecolor{gray}{rgb}{0.5,0.5,0.5}
  \definecolor{mauve}{rgb}{0.58,0,0.82}

  \lstset{
    frame=tb,
    aboveskip=3mm,
    belowskip=3mm,
    showstringspaces=false,
    columns=flexible,
    framerule=1pt,
    rulecolor=\color{gray!35},
    backgroundcolor=\color{gray!5},
    basicstyle={\small\ttfamily},
    numbers=none,
    numberstyle=\tiny\color{gray},
    keywordstyle=\color{blue},
    commentstyle=\color{dkgreen},
    stringstyle=\color{mauve},
    breaklines=true,
    breakatwhitespace=true,
    tabsize=3,
  }

\begin{document}
  \thispagestyle{plain}  %这个与代码块无关,引用代码块时可去掉

  \section{排队算法--matlab 源程序}
  \begin{lstlisting}[language=matlab]
    kk=2;
    [mdd,ndd]=size(dd);
    while ~isempty(V)
      [tmpd,j]=min(W(i,V));
      tmpj=V(j);
      for k=2:ndd
        [tmp1,jj]=min(dd(1,k)+W(dd(2,k),V));
        tmp2=V(jj);
        tt(k-1,:)=[tmp1,tmp2,jj];
      end
      tmp=[tmpd,tmpj,j;tt];
      [tmp3,tmp4]=min(tmp(:,1));
      if tmp3==tmpd, ss(1:2,kk)=[i;tmp(tmp4,2)];
        else,tmp5=find(ss(:,tmp4)~=0);tmp6=length(tmp5);
        if dd(2,tmp4)==ss(tmp6,tmp4)
          ss(1:tmp6+1,kk)=[ss(tmp5,tmp4);tmp(tmp4,2)];
          else, ss(1:3,kk)=[i;dd(2,tmp4);tmp(tmp4,2)];
        end;
      end;
      dd=[dd,[tmp3;tmp(tmp4,2)]];V(tmp(tmp4,3))=[];
      [mdd,ndd]=size(dd);kk=kk+1;
    end;
    S=ss;
    D=dd(1,:);
  \end{lstlisting}
\end{document}

这里的代码不理解没有关系,只要知道怎么填入以及在哪里填入 matlab、lingo 代码就行了。


11. 中文支持

方法A:把开头的\documentclass{atricle}换成\documentclass[UTF8]{ctexart}
方法B(推荐):引用宏包\usepackage[UTF8]{ctexart}
如果是第一次使用ctexart的话,会自动下载和安装宏包和模板,之后就不会再下载了。
例子参考如下:
建立一个新文档,将以下内容复制进入文档中,保存,保存类型选择为UTF-8。

\documentclass{ctexart}
\begin{document}
你好,世界
\end{document}

12. 结尾

到目前为止,你已经可以用LaTeX自带的article模板来书写一篇基本的论文框架了,至少你已经能够用得起来LaTeX了。
在论文从框架到完整的过程中,必然还存在许多的细节问题,比如字体字号,比如图片拼合,比如复杂的表格等等。
那些问题,就请咨询google或是CSDN吧。通常来说我们作为初学者会提出的问题,早就已经有许多的先辈们在网络上提过同样的问题了,看看别人的回答就可以。(不推荐百度是因为百度的推荐算法令人窒息)

===============================

附录,有关我认为不是新手急需,但是的确比较有用的信息


1. 宏包

\package{}就是在调用宏包,对计算机实在外行的同学姑且可以理解为工具箱。
每一个宏包里都定义了一些专门的命令,通过这些命令可以实现对于一类对象(如数学公式等)的统一排版(如字号字形),或用来实现一些功能(如插入图片或制作复杂表格)。
通常在\documentclass之后,在\begin{document}之前,将文章所需要涉及的宏包都罗列上。
对于新人而言比较常用的宏包有

编辑数学公式的宏包:\usepackage{amsmath}和 \usepackage{amssymb}
编辑数学定理和证明过程的宏包:\usepackage{amsthm}
插入图片的宏包:\usepackage{graphicx}
复杂表格的宏包:\usepackage{multirow}

差不多了,对于新人来说,这五个宏包已经基本够用了。如果有其他的特殊需求,就通过google去寻找吧。
补充说明一下,现在ctexart模板里集成了中文支持,所以CJK宏包并不是必需品。


2. 模板

模板就是在\documentclass{}后面的大括号里的内容。
在这一份教程中,我们使用的是LaTeX默认自带的模板article,以及中文模板ctexart。
模板就是实现我之前所介绍的LaTeX的经验总结的第二点的实现方式。
一篇文章,我们定义了section,定义了paragraph,就是没有定义字体字号,因为字体字号这一部分通常来说是在模板中实现的。
一个模板可以规定,section这个层级都用什么字体什么字号怎么对齐,subsection这个层级用什么字体什么字号怎么对齐,paragraph又用什么字体什么字号怎么对齐。
当然模板里还可以包含一些自定义的口令,以及页眉页脚页边距一类的页面设置。
由于模板的使用,在我的使用经验里来看,绝对不可能算是基本入门级的内容,所以在正文里当然不会提及。
如果有人实在想学,如果LaTeX已经接触到这个程度上了,那么再去翻其他厚一些的教材,也不亏了。


3. 参考文献和制作幻灯片

做参考文献的时候,文章也已经快写到尾声了,而幻灯片更不是进阶一些的需求。对这两个功能有需求的LaTeX user,使用LaTeX也已经相当熟练了,自己去google一下或查阅其他厚教程是很理所当然的,一点也不冤枉。
在此我就只提供两个搜索关键词,参考文献可以搜bibtex,制作幻灯片可以搜beamer。

===============================

后记(原前言)

本教程面向对LaTeX完全无认知无基础的新人。
旨在让新人能够用最简单快捷的方式,轻松入门,能够迅速使用LaTeX完成基本的文本编辑。
这个教材最终能够达到的水平是能够使用LaTeX写一篇正常的proposal。如果希望有更大需求的提高,那么推荐在熟悉了这一篇文章的内容之后,再自行google或查阅其他稍厚的教材。
尤其旨在破除部分新人对LaTeX在传闻中难以学习的恐惧感。
在入门之后,面对各种进阶应用、特殊要求与异常状况,可以自行咨询google解决。

先用三句话来介绍什么是LaTeX,以下三点基于我个人的主观经验的总结。
1.LaTeX是一类用于编辑和排版的软件,用于生成PDF文档。
2.LaTeX编辑和排版的核心思想在于,通过\section和\paragraph等语句,规定了每一句话在文章中所从属的层次,从而极大方便了对各个层次批量处理。
3.LaTeX在使用体验方面,最不易被Word替代的有四个方面:方便美观的数学公式编辑、不会乱动的退格对齐、非所见即所得因此可以在编辑的时候用退格和换行整理思路但生成PDF出来不影响美观、部分导师和刊物不接受Word排版的文章。

我要严厉警告和强烈声讨那些自以为是advanced LaTeX user的人。请你们不要为了自己那一点可怜可悲的虚荣心,去刻意渲染LaTeX有多么高端多么不容易学习,这和孔乙己炫耀茴香豆的茴字有四种写法有什么区别么?混账!LaTeX到底有多“难”你们自己清楚好么?同理的还有很大一部分的VI user,还有Linux user,还有Fallout player。卧槽,一个软件而已,有什么好显摆的。别人想学LaTeX,好,你随手给人家丢一个几百页的英文Manual,显得自己很高端吗?你自己看过了吗?你推荐给别人的时候真的有希望别人看完吗?只是装逼的话就是混账!

我写这一篇教程的动机,正是因为网络上能够找到的简要速成的LaTeX教程完全没有。我能找得到的最简短或是说在我看来最具有指导意义的,就是那篇《一份不太简短的LaTeX介绍》。然而对于希望迅速对LaTeX有所了解的人,那一篇“不太简短的介绍”也仍旧稍嫌略长,我当初在入门时也研究了整晚。在LaTeX社区群里聊得久了,大家都是朋友,既然缺了这一块我又有闲情,那么就补上了。因此我写了这一篇教程,完全是以教会新人上手为目的,把华而不实的内容统统略去,确保能够在三十分钟内跟着这个教程走完全步骤就可以基本算是“玩转LaTeX”了。这个三十分钟的时长,是我帮助我身边的朋友开始接触LaTeX入门的常规时间,是经验积累的结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容