TEX 学习笔记

本文档介绍了TEX的学习笔记,包括在Windows和Linux环境下安装编译器CTEX和texlive,启动设置,以及使用WinEdt、TexMaker等编辑器的配置与快捷键。还详细讲解了TEX语法,如字号、目录索引、特殊字符、标题页、图表、公式、布局和中文支持等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章链接: http://harttle.com/2015/05/02/tex-note.html

编译器

Windows

  • 安装CTEX,可很好地支持各种编译器并获得良好的中文支持。

Linux

安装 texlive。

arch: texlive-core texlive-bin texlive-langcjk texlive-latexextra
ubuntu: texlive texlive-xetex texlive-lang-cjk

Startup

安装好TEX编译器后已经使用gbsn,gkai等字体,但这些字体库不全。可以编译简单的中文:

\documentclass{article}
\usepackage{CJKutf8}
\begin{document}
\begin{CJK}{UTF8}{gkai}
我是楷体
\end{CJK}
\begin{CJK}{UTF8}{gbsn}
我是宋体
\end{CJK}
\end{document}

使用 xelatex 编译,可以方便地编译中文。首先,在导言区添加:

\usepackage[cm-default]{fontspec}

然后在文档中添加:

\setmainfont[Mapping=tex-text]{WenQuanYi Micro Hei}
%for beamer:
\setsansfont[Mapping=tex-text]{WenQuanYi Micro Hei}

为了能够在Linux中使用 windows 字体,首先拷贝字体到用户的字体库:

cp -r $win_dir/Windows/Fonts ~/.fonts/winfonts

然后更改 xelatex 字体映射:

  1. 打开/usr/share/texlive/texmf-dist/tex/latex/ctex/fontset/ctex-xecjk-winfonts.def
  2. 将这里指定等win字体更改为系统中存在的字体(使用 fc-list查看),如SimSun, KaiTI等

编辑器

TexMaker、TexStudio、Kile、LaTex Editor、SciTE LaTex IDE、Texlipse、LaTex Lab、JaxEdit、BaKoMa Tex Word等。以下介绍常用的几种。

WinEdt

这是CTEX默认的编辑器,功能强大;中文支持很好;有大量的CTex库
收费软件;更新困难;可配置性差;智能识别上不够方便;程序文件庞大;文档支持不好。

快捷键

  • F5 编译树结构
  • F9 编译
  • Ctrl+Enter 自动补全

显示行号

状态栏有显示;在行首显示快捷键:Ctrl+=

自动完成

  • 输入\begin{sth} } 会自动完成 \end

  • 输入\end{ { 会自动完成 \begin

  • \begin{XXX} 后输入> 自动解决begin和end不匹配

  • 输入\ref{},会显示所有标签

更改编码方式

CTEX 默认编码为System.打开UTF8时乱码解决方案:

方案一、文件开头添加

% !Mode:: "TeX:UTF-8"

方案二、Options->Preferences->Unicode->Enable UTF-8:

Format for Modes 加Tex(改为Tex;UTF-8……)

TexMaker

以及新版的 TexMakerX(即TexStudio),跨平台,界面简洁。可以自定义编译命令,实现一键编译。自动补全较强。但是依赖于后台编译器如texLive。

快捷键

自动补全 Ctrl+Space,与输入法冲突可以更改
跳转到下一个编辑块 Ctrl+Right

Kile

  • Linux KDE
  • 界面友好
  • 文档很全

Vim、Emacs

  • 纯文本编辑工具
  • 易于与bash集成,使用Makefile编译

语法

字号

从小到大依次为

\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge

目录索引

去掉编号前多余的零

\renewcommand{\thesection}{\arabic{section}}

特殊字符

  • 特殊字符用\转义,例如\%

  • @字符

    //控制@字符的特殊含义,便于定义命令,诸如
    \newcommand{\figcaption}{\def\@captype{figure}\caption}
    \makeatletter
    \makeatother

标题页

  • report中添加标题页

    \thispagestyle{empty}   //标题页不占页码
    \maketitle
  • article中添加标题页

    \thispagestyle{empty}   //标题页不占页码
    \maketitle
    \newpage
  • 作者

    \author{a \and b}

图表

  • ps文件应编译为PDF后引入tex文件,否则文件名路径不能有多个.
  • caption中换行: \protect\\
  • 表格边框

    \toprule        //表格上边框
    \bottonrule     //表格下边框
    \midrule        //标题栏下边框
    \hline          //横穿一行的横线
    \cline{m-n}     //从第m列到第n列画横线
                   //竖线在tabular参数中用|来指定。
    \textwidth为页面文字宽度 \linewidth为当前环境下允许的宽度
    \minipage{.59\linewidth}之间要有间隔否则会自动换行

公式

  • 数学函数

    \sin    //sin函数
  • 分段函数

    f(x)=\begin{cases}
            1 & x<0 \\
            -1 & n>1
        \end{cases}
  • 定界符:\left.,\right|

布局

  • 页眉页脚

    \usepackage{fancyhdr}
    \pagestyle{fancy}
    
    \lhead{}
    \chead{}
    \rhead{\bfseries The performance of new graduates}
    
    \lfoot{From: K. Grant}
    \cfoot{To: Dean A. Smith}
    \rfoot{\thepage}
    
    \renewcommand{\headrulewidth}{0.4pt}
    \renewcommand{\footrulewidth}{0.4pt}
  • 控制页码格式

    \pagenumbering{num_style}
    % arabic - Arabic numerals
    % roman - Lowercase roman numerals
    % Roman - Uppercase roman numerals
    % alph - Lowercase letters
    % Alph - Uppercase letters
  • 空格

    空格样式代码宽度
    两个quad空格a \qquad b两个m的宽度
    quad空格a \quad b一个m的宽度
    大空格a\ b1/3m宽度
    中等空格a\;b2/7m宽度
    小空格a\,b1/6m宽度
    没有空格ab0
    紧贴a\!b缩进1/6m宽度
    缩进\indenta缩进Tab

交叉引用

定义:\label{sth}
引用:\ref{sth}

  • 公式引用:\eqref{sth}
  • label应放在caption下面,否则ref标号会不正确

中文

  • 间距

    \begin{CJK}{GBK}{song}      //英文换行,换行时默认加空格
    \begin{CJK*}{GBK}{song}     //中文换行,避免多余的空格
    CJKtilde                    //重定义‘~’, 使得这个符号不再代表一个不可断行的空格,  而是一个可断行的弹性距离,  加在中文和英文之间调整它们的距离(一般是一个 CJK 字符的 1/4 大小的空格).
  • 标题

    \renewcommand\tablename{}  %表标题为中文而不是table
    \renewcommand\figurename{}
  • 日期

    \renewcommand{\today}{\number\year\number\month\number\day}                 %\today时显示中文日期
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值