LaTeX 排版

本贴最后更新于 233 天前,其中的信息可能已经时移世改

LaTeX 源文件的基本结构

LaTeX 分为“导言区”与“文稿区”。

  • 导言区

    • 在导言区对文章进行全局设置
    • 常会使用 \documentclass{...} 命令,大括号内常有 articlebookreportletter
    • 可以使用 \title 命令输入文章的标题
    • 可以使用 \author 命令输入作者姓名
    • 可以使用 \date 命令输入写作时间,同时用 \today 命令今天的日期
  • 正文区

    • 会使用 \begin\end 渲染编译环境,二者之间为输出内容,常有 \begin{document}\end{document}
    • 注意常在正文区输入 \maketitle 输出标题
%导言区
\documentclass{article}
\title{The First Article}
\author{Ron}
\date{\today}

%文稿区
\begin{document}
    \maketitle
    Hello World!
  
    Let $f(x)$ be defined by the formula
    $$f(x)=3x^2+x-1$$
    which is a polynomial of degree 2.
\end{document}
  • % 后输入注释的内容,注释的内容不会进行编译
  • $$ 之间输入行内公示
  • $$ 后输入行间公式
  • 在源文件中的两行代码之间加入一个空行,可以实现换行的操作,但注意,多个空行会对视为一个空行进行处理

编译效果如下:


LaTeX 中的中文处理办法

❗ 确保编译器为 XeLaTeX,编码为 UTF-8

❗ 在导言区加入 \usepackage{ctex}

%导言区
\documentclass{article}
\usepackage{ctex}
\newcommand\degree{^\circ}

\title{\heiti 勾股定理}
\author{\kaishu 张三}
\date{\today}

%文稿区
\begin{document}
    \maketitle
    勾股定理可以用现代语言表述如下:
  
    直角三角形斜边的平方等于两腰平方和
  
    可以用符号语言表述为:设直角三角形$ABC$,其中$\angle C=90 \degree $,则有:
    \begin{equation}
        AB^2=BC^2+AC^2
    \end{equation}
\end{document}
  • 代码中的 \newcommand\degree{^\circ} 用于定义正文区 \degree 的含义
  • \heiti\kaishu 分别表示字体为黑体和楷书
  • \equation 用于渲染带标号公式的编译环境

编译效果如下:

‼️ 如果在导言区中的 \documentclass{...} 中输入 \ctexart\ctexrep\ctexbook(分别对应 \article\report\book),可以不用使用 \usepackage{ctex}


LaTeX 的字体字号设置

字体属性

  • 字体编码

    • 正文字体编码:OT1、T1、EU1 等
    • 数字字体编码:OML、OMS、OMX 等
  • 字体族

    • 罗马字体:笔画起始处有装饰
    • 无衬线字体:笔画起始处无装饰
    • 打字机字体:每个字符宽度相同,又称等宽字体
  • 字体大小

  • 字体系列

    • 粗细
    • 宽度
  • 字体形状

    • 直立
    • 斜体
    • 伪斜体
    • 小型大写

字体族设置

  • 罗马体:\textrm\rmfamily
  • 无衬线字体:\textsf\sffamily
  • 打字机字体:\texttt\ttfamily
\textrm{Roman Family}   \textsf{Sans Serif Family}  \texttt{Typewriter Family}
  
{\rmfamily Roman Family} {\sffamily Sans Serif Family}   {\ttfamily Typewriter Family}

{} 的作用为限制设置命令或设置声明的作用区域

字体系列设置

  • 普通粗细:\textmd\mdseries
  • 加粗:\textbf\bfseries
\textmd{Medium Series}    \textbf{Boldface Series}
  
{\mdseries Medium Series}   {\bfseries Boldface Series}

字体形状

  • 直立:\textup\upshape
  • 斜体:\textit\itshape
  • 伪斜体:\textsl\slshape
  • 小型大写:\textsc\scshape
\textup{Upright Shape}  \textit{Italic Shape}   \textsl{Slanted Shape}  \textsc{Small Caps Shape}
  
{\upshape Upright Shape}    {\itshape Italic Shape} {\slshape Slanted Shape} {\scshape Small Caps Shape}

中文字体

  • 宋体:\songti
  • 黑体:\heiti
  • 仿宋:\fangsong
  • 楷书:\kaishu
{\songti 宋体}
  
{\heiti 黑体}
  
{\fangsong 仿宋}
  
{\kaishu 楷书}

字体大小

字体大小的编译效果是相对于“基本大小”而确立的,字体的“基本大小”,即文档类参数,可以在导言区中的 \documentclass 后加入 [] 中确定,可以自由设置,如:\documentclass[10pt]{article}

  • \tiny
  • \scriptsize
  • \footnotesiz
  • \small
  • \normalsize
  • \large
  • \Large
  • \LARGE
  • \huge
  • \Huge

中文字号设置命令

  • \zihao{}

    • \zihao{0} 表示“初号”
    • \zihao{-0} 表示“小初号”
    • 可类推之其余字号,{} 中的数字表示“几号”,加上 - 表示“小几号”

❗ 常常会在导言区使用 \newcommand 命令统一设置字体字号

编译总结

\documentclass{article}

\usepackage{ctex}
\newcommand{\myfont}{\textit{\textbf{\textsf{The Text}}}}

\title{\heiti LaTeX的字体字号设置}

\begin{document}
    \maketitle
  
    下面是字体族设置:
  
    \textrm{Roman Family}   \textsf{Sans Serif Family}  \texttt{Typewriter Family}
  
    {\rmfamily Roman Family} {\sffamily Sans Serif Family}   {\ttfamily Typewriter Family}
  
    下面是字体系列设置:
  
    \textmd{Medium Series}    \textbf{Boldface Series}
  
    {\mdseries Medium Series}   {\bfseries Boldface Series}
  
    下面是字体形状设置:
  
    \textup{Upright Shape}  \textit{Italic Shape}   \textsl{Slanted Shape}  \textsc{Small Caps Shape}
  
    {\upshape Upright Shape}    {\itshape Italic Shape} {\slshape Slanted Shape} {\scshape Small Caps Shape}
  
    下面是中文字体的设置
  
    {\songti 宋体} \quad {\heiti 黑体} \quad {\fangsong 仿宋} \quad {\kaishu 楷书}
  
    下面是字体大小的设置
  
    {\tiny Hello}\\
    {\scriptsize Hello}\\
    {\footnotesize Hello}\\
    {\small Hello}\\
    {\normalsize Hello}\\
    {\large Hello}\\
    {\Large Hello}\\
    {\LARGE Hello}\\
    {\huge Hello}\\
    {\Huge Hello}
  
    \myfont
\end{document}

LaTeX 的篇章结构

\section 命令

  • 使用 \section 命令构建提纲,如引言、结论等小节
  • 使用 \subsection 构建子小节
  • 使用 \subsubsection 构建三级小节

\\\par 的区别

  • \\ 换行不缩进
  • \par 换行且缩进

为了使代码结构清晰,换行分段常常使用“空行”实现

\chapter 命令

用于产生章节,常在 \documentclass{book} 的命令下使用,使用 \chapter\subsubsection 命令不起作用

\tableofcontents 命令

用于产生目录

\documentclass{article}

\usepackage{ctex}

\title{\heiti LaTeX的篇章结构}

\begin{document}
    \maketitle
    \tableofcontents
    \section{引言}
    近年来,随着逆向工程和三维重建技术的发展和应用,获取现实世界中物体的三维数据的方法受到越来越多的关注和研究,很多研究机构和商业公司都陆续推出了自己的三维重建系统。
  
    近年来,随着逆向工程和三维重建技术的发展和应用,获取现实世界中物体的三维数据的方法受到越来越多的关注和研究,\\很多研究机构和商业公司都陆续推出了自己的三维重建系统。
  
    近年来,随着逆向工程和三维重建技术的发展和应用,获取现实世界中物体的三维数据的方法受到越来越多的关注和研究,\par 很多研究机构和商业公司都陆续推出了自己的三维重建系统。
    \section{实验方法}
    \section{实验结果}
    \subsection{数据}
    \subsection{图表}
    \subsubsection{实验条件}
    \subsubsection{实验过程}
    \subsection{结果分析}
    \section{结论}
    \section{致谢}
\end{document}

LaTeX 中的特殊字符

空白字符

  • LaTeX 中

    • 空行分段,多个空行等同 1 个
    • 自动缩进,绝对不能使用空格代替
    • 英文中多个空格处理为一个空格,中文中空格将被忽略
    • 汉字与其他字符的间距会自动由 XeLaTeX 处理
    • 禁止使用中文全角空格

空格命令

  • \quad,产生 1 em(当前字体中 M 的宽度)的空格

  • \qquad,产生 2 em 的空格

  • \,\thinspace 产生 1/6 em 的空格

  • \enspace 产生 0.5 em 个空格

  • \+(space) 输出一个空格

  • ~ 输出硬空格(不可被分割的空格)

  • \kern\hskip 产生指定宽度的空白

    • 产生空白的长度可以使用负值
    • 1pc=12pt=4.218em
  • \hspace 根据指定宽度产生空白

  • \hphantom 根据指定参数的占位字符的宽度产生空白

  • \hfill 产生弹性长度的空白(撑满整行)

LaTeX 控制符

代码 \# \$ \% \{ \} \~{} \_{} \^{} \&
对应符号 # $ % { } ~ _ ^ &

❗“\”的输出需要用到 \textbackslash 命令

LaTeX 排版符号

代码 \S \P \dag \ddag \copyright \pounds
对应符号 \S \P \dag \ddag \copyright \pounds

TeX 标志符号

代码 \TeX{} \LaTeX{} \LaTeXe{}
对应符号 \TeX{} \LaTeX{} \LaTeX {2\varepsilon}

引号

代码 ```(撇号) '(单引号) ```` ''
对应符号

连字符

代码 - -- ---
对应符号 - -
用处 连字符 表示数字范围 破折号

非英文字符

代码 \oe \OE \ae \AE \aa \AA \o \O
对应符号 $ $ \aa \AA
代码 \l \L \ss \SS `!`` `?``
对应符号

重音字符

代码 \ a` \'a \^a \''a \"a \~a \=a \.a
对应符号 \`a \'a \^a \"a \~a \=a \.a
代码 \u{a} \v{a} \H{a} \r{a} \t{a} \b{a} \c{a} \d{a}
对应符号 \u{a} \v{a} \H{a} \r{a} \c{a}
\documentclass{article}

\usepackage{ctex}

\title{\heiti \LaTeX{}中的特殊字符}

\begin{document}
    \maketitle
    \section{空白字符}
    aMb\par
    a\quad b \qquad a\textbackslash quad b\par 
    a\qquad b  \qquad  a\textbackslash qquad b \par 
    a\,b , a\thinspace b  \qquad  a\textbackslash,b 或a\textbackslash thinspace b \par 
    a\enspace b \qquad a\textbackslash enspace b\par 
    a\ b \qquad a\textbackslash \ b\par 
    a~b \qquad a\~{}b\par
    a\kern 1pc b \qquad a\textbackslash kern 1pc b\par
    a\kern -1em b \qquad a\textbackslash kern -1em b\par
    a\hskip 1em b \qquad a\textbackslash hskip 1em b\par
    a\hspace{35pt}b \qquad a\textbackslash hspace\{35pt\}b\par
    a\hphantom{xyz}b \qquad a\textbackslash hphantom\{xyz\}b\par
    a\hfill b a\textbackslash hfill b
    \section{\LaTeX 控制符}
    \# \quad \$ \quad \% \qquad \{ \quad \} \quad \~{} \quad \_{} \quad \^{} \quad \& \quad \textbackslash
    \section{排版符号}
    \S \quad \P \quad \dag \quad \ddag \quad \copyright \quad \pounds
    \section{\TeX 标志符号}
    \TeX \quad \LaTeX \quad \LaTeXe \par
    \TeX{} \quad \LaTeX{} \quad 
    \section{引号}
    ` \quad ' \quad `` \quad ''
    \section{连字符}
    - \quad -- \quad ---
    \section{非英文字符}
    \oe \quad \OE \quad \ae \quad \AE \quad \aa \quad \AA \quad \o \quad \O \quad \l \quad \L \quad \ss \quad \SS \quad !` \quad ?`
    \section{重音字符}
    \`a \'a \^a \''a \~a \=a \.a \u{a} \v{a} \H{a} \r{a} \t{a} \b{a} \c{a} \d{a}
\end{document}

LaTeX 中的插图

❗ 需要在导言区使用 \usepackage{graphicx} 命令

基本命令

  • 正文区的使用语法

    • \includegraphics[<选项>]{<文件名>}
    • [] 中可以输入参数控制图片的缩放、旋转
    • 文件名的输入可以加后缀名,也可以不加
  • 支持的图片格式

    • EPS、PDF、PNG、JPEG、BMP
  • 使用 \graphicspath{{figures/} 指定图片文件的搜索路径

    • 可以将图片等资源文件进行分门别类的管理
    • 图片在当前目录下的 figures 目录中
  • 使用 \caption 命令为图片添加说明文字

  • 常使用 figure 命令渲染图片编译环境,对一个普遍进行编译,并结合浮动体使得图片在文字之后

可选参数

  • 旋转角度

    • [angle=...]
  • 缩放

    • [scale=...],在等号后输入缩放系数
  • 固定值的图像高度

    • [height=...]
  • 固定值的图像宽度

    • [width=...]
  • 其余宽、高度控制

    • [height=0.1\textheight],表示版型文本高度 0.1 倍的图像高度
    • [width=0.2\textwidth],表示版型文本宽度 0.2 倍的图像高度

[] 内可以指定多个控制参数,不同参数之间用 , 隔开

\documentclass{article}

\usepackage{ctex}
\usepackage{graphicx}
\usepackage{float}

\title{\heiti \LaTeX{}中的插图}

\begin{document}
    \maketitle
    \LaTeX 中的图片:

    \begin{figure}[H]
        \centering
        \includegraphics[width=\textwidth]{图片/paintofsin.png}
        \caption{sin(x)的图像}
    \end{figure}
  
    \begin{figure}[H]
        \centering
        \includegraphics[scale=0.5,angle=45]{图片/paintoftan.PNG}
        \caption{tan(x)的图像}
    \end{figure}

\end{document}

LaTeX 中的表格

❗ 使用 tabular 环境生成表格

\begin{tabular}{l c c c r}
    \hline 
    &    \\
\end{tabular}

‼️ 可以分别使用 lcr 表示左对齐,居中对齐,右对齐

‼️lcr 的数量代表表格的列数,中间用 | 产生表格竖线,|| 产生双竖线

  • 不同列之间用 & 分割,一行结束后,使用 \\ 换行,用 \hline 产生表格横线,\hline\hline 产生双横线
  • 在可选参数中,还可以使用 p{},输入指定列宽度,此时如果当内容超过宽度时,将会自动换行
\documentclass{article}

\usepackage{ctex}

\title{\heiti \LaTeX{}中的表格}

\begin{document}
    \maketitle
    \LaTeX 中的表格:

    \begin{tabular}{|l||c|c|c|p{1.5cm}|}
        \hline
        姓名 &语文 &数学 &外语 &备注 \\
        \hline\hline
        张三 &87 &100 &93 &优秀\\
        \hline
        李四 &75 &64 &52 &补考另行通知\\
        \hline
        王五 &80 &82 &78 & \\
        \hline
    \end{tabular}

\end{document}

LaTeX 浮动体

❗ 在导言区使用 \usepackage{float} 命令

  • 可以将图片命令放入 \figure 浮动体中

    \begin{figure}[H]
            \centering
            \includegraphics[width=\textwidth]{图片/paintofsin.png}
            \caption{sin(x)的图像}
        \end{figure}
    

‼️ 可以在环境中使用 \centering 命令是图像、表格居中

‼️ 在环境中使用 \caption 设置标题

‼️ 可以使用 \label{...} 命令设置标签

  • 使用 \ref{...} 命令引用标签,从而实现交叉引用
  • 可以将表格命令放入 \table 浮动体中
\begin{table}[H]
        \centering
        \begin{tabular}{|l||c|c|c|r|}
            \hline
            姓名 &语文 &数学 &外语 &备注 \\
            \hline\hline
            张三 &87 &100 &93 &优秀\\
            \hline
            李四 &75 &64 &52 &补考另行通知\\
            \hline
            王五 &80 &82 &78 & \\
            \hline
        \end{tabular}
        \caption{成绩单}
    \end{table}
  • [] 中管理浮动体的允许位置

    • h,此处(here),代码所在的上下文位置
    • t,页顶(top),代码所在页或之后页面的顶部
    • b,页底(bottom),代码所在页面或之后页面的底部
    • p,独立一页(page),浮动页面
\documentclass{article}

\usepackage{ctex}
\usepackage{graphicx}
\usepackage{float}

\title{\heiti \LaTeX{}中的浮动体}

\begin{document}
    \maketitle
    \LaTeX 中的图片举例见图\ref{sin(x)交叉引用}    \begin{figure}[H]
        \centering
        \includegraphics[width=\textwidth]{图片/paintofsin.png}
        \caption{sin(x)的图像}
        \label{sin(x)交叉引用}
    \end{figure}
  
    \LaTeX 中的表格举例如表\ref{成绩单}所示:
    \begin{table}[H]
        \centering
        \begin{tabular}{|l||c|c|c|r|}
            \hline
            姓名 &语文 &数学 &外语 &备注 \\
            \hline\hline
            张三 &87 &100 &93 &优秀\\
            \hline
            李四 &75 &64 &52 &补考另行通知\\
            \hline
            王五 &80 &82 &78 & \\
            \hline
        \end{tabular}
    
        \caption{成绩单}
        \label{成绩单}
    \end{table}

\end{document}

LaTeX 数学公式

❗ 需要使用 amsmath 宏包来实现对不带编号公式与矩阵的编译

❗ 需要使用 amssymb 宏包实现多行公式的编译

❗ 需要使用 mathdots 宏包引入 \iddots 命令

数学公式的输入见 LaTeX 数学公式教程

  • 行内公式的输入方法

    • $...$
    • \(...\)
    • \begin{math}...\end{math}
  • 行间公式的输入方法

    • $$...$$
    • \[...\]
    • \begin{displaymath}...\end{displaymath}
  • 自动编号公式使用 \equation 环境,在该环境中同样可以使用 \lable{...}\ref{...} 命令实现交叉引用

  • 使用不带编号的 \equation* 环境,交叉引用是使用的是小节编号

矩阵的输入方法

  • \hdotsfor{...} 实现跨列的省略号,{} 内所跨的列数

  • \multicolumn 实现混行输入

  • array 环境也可以如表格一般使用 |\hline 添加横竖线,同时对对齐方式进行控制

    • array 环境还可以构造更复杂的矩阵
  • 可以使用 mathdots 宏包下的 \iddots 命令生成反斜省略号,或自定义 \adots,自定义命令如下:

    • newcommand{\adots}{\mathinner{\mkern2mu\raisebox{0.1em){.}\mkern2mu\raisebox{0.4em}{.}\mkern2mu\raisebox{0.7em}{.}\mkern1mu}}

多行公式

  • gather 环境可以实现多行公式,并且对每一行的公式都能进行编号

  • gather* 环境可以实现不带编号的多行公式

    • 或在 \gather 环境中的行末(\\ 前)加入 \notag 阻止编号
  • \align\align* 环境实现在指定位置的对齐

  • 可以使用 equation 环境下的 split 环境,实现对一个公式的多行排版,同时确保整个公式块只有一个编号

  • 对于类似分段函数的排版,可以使用 cases 环境

    • 每行公式中使用 & 分隔为两部分,通常表示值和后面的条件
  • \displaystyle 命令可以将行内公式显示成行间公式效果

    • 在文章头部添加 \everymath{\displaystyle} 命令,可以是全文实现该效果
\documentclass{article}

\usepackage{ctex}
\usepackage{amsmath}
\usepackage{mathdots}
\usepackage{amssymb}

\title{\heiti \LaTeX{}中的数学公式}

\begin{document}
    \maketitle
    \section{数学公式}
    \subsection{交叉引用的两种方式}
    \subsubsection{equation环境}
    Euler公式如式\ref{Euler}所示:
    \begin{equation}
        {\rm e}^{i \pi}+1=0
        \label{Euler}
    \end{equation}
    \subsubsection{equation*环境}
    其更一般的式子为式\ref{Euler_general}    \begin{equation*}
        \text e^{ix}=\cos x+i\sin x
        \label{Euler_general}
    \end{equation*}
    \subsection{矩阵}
    可以在行内直接插入一个矩阵$
    \begin{bmatrix}
        1 &2\\
        3 &4
    \end{bmatrix}$
    ,也可以使用行内小矩阵环境
    $\left(
    \begin{smallmatrix}
        1 &2\\
        3 &4
    \end{smallmatrix} \right)
    $
  
    跨列省略号:
    $$
    \begin{bmatrix}
        1 &2 &3 &4\\
        \hdotsfor{4}\\
        n &2n &3n &4n
    \end{bmatrix}
    $$
  
    混行输入
    $$
    \begin{bmatrix}
        a_{11} &a_{12} &\cdots &a_{1n}\\
               &a_{22} &\cdots &a_{2n}\\
               &       &\ddots &\vdots\\
        \multicolumn{2}{c}{\raisebox{1.3ex}[0.5pt]{\Huge 0}}
               &       &a_{nn}
    \end{bmatrix}
    $$
  
    array环境下的输入
    $$
    \begin{array}{c|c}
        1 &2  \\
        \hline
        2 &4 
    \end{array}
    $$
  
    使用array环境构造更复杂的矩阵
%@{...}添加任意内容,不占表项计数
    $$
    \begin{array}{c@{\hspace{-5pt}}l} 
    % 第1行,第1列
    \left[
        \begin{array}{ccc|ccc}
            a &\cdots &a &b &\cdots &b\\
              &\ddots &\vdots &\vdots &\iddots\\
              &       &a &b \\
            \hline
              &       &  &c &\cdots &c\\
              &       &  &\vdots & &\vdots\\
            \multicolumn{3}{c|}{\raisebox{2ex}[0pt]{\Huge 0}}
                         &c &\cdots &c
        \end{array}
    \right]
    &
        %第1行第2列
        \begin{array}{l}
            \left. \rule{0mm}{7mm}\right\} p\\
            \\
            \left. \rule{0mm}{7mm}\right\} q
        \end{array}
        %第2行第1列
        \\[-5pt]
        \begin{array}{cc}
             \underbrace{\rule{17mm}{0mm}}_m &
             \underbrace{\rule{17mm}{0mm}}_m
        \end{array}
    & 
        %第2行第2列
    \end{array}
    $$
    \subsection{多行公式}
    \subsubsection{gather环境}
    \begin{gather}
        3+5=5+3=8\\
        3\times 5=5 \times 3
    \end{gather}
    \subsubsection{align环境}
    \begin{align}
        x+2y&=5\\
        x^2-xy^2&=4
    \end{align}
    \subsubsection{split环境}
    区别于gather环境与align环境会对每一行都进行编号,split环境可以实现对一个公示的多行排版,并且只有一个编号
    \begin{equation}
        \begin{split}
            \cos 2x &=\cos^2 x-\sin^2 x\\
                    &=2\cos^x -1
        \end{split}
    \end{equation}
    \subsubsection{cases环境}
    对于大括号下的分段函数,常常使用cases环境进行排版
    \begin{equation}
        D(x)=
        \begin{cases}
            1,&\text{如果}x \in \mathbb{Q}\\
            0,&\text{如果}x \in \mathbb{R}\setminus\mathbb{Q}
        \end{cases}
    \end{equation}
\end{document}

LaTeX 中的参考文献

简单参考文献

一次管理,一次引用

❗ 使用 thebibliography 环境

\begin{thebibliography}{编号样本}
    \bibitem[记号]{引用标志}文献条目1
    \bibitem[记号]{引用标志}文献条目2
    ......
\end{thebibliography}


  • 可以使用 \cite 命令在正文中引用参考文献
\documentclass{ctexart}

%\usepackage{ctex}

\title{\heiti \LaTeX{}中的参考文献}

\begin{document}
    \maketitle
  
    正文中引用参考文献\cite{book1}
    \begin{thebibliography}{99}
        \bibitem{article1}陈立辉,苏伟,蔡川,陈晓云.\emph{基于LaTeX的web数学公式提取方法研究}[J].计算机科学.2014(06)
        \bibitem{book1}william H.Press,Saul A.Teukolsky,William T.Vetterling,Brian P.Elannery,
        \emph{Numerical Recipes 3rd Edition:The Art of Scientific Computing}Cambridge University Press,New York,2007.
        \bibitem{latexGuide}Kopka Helmut,W.Daly Patrick,
        \emph{Guide to \LaTeX{}},$4{th}$Edition.Available at \texttt{http://www.amazon.com}.
        \bibitem{latexMath}Graetzer George,\emph{Math Into \LaTeX{}},BirkhAduser Boston;3 edition (June 22,2000).
    \end{thebibliography}
\end{document}

BibTeX

一次管理,多次引用

BibLaTeX

一次管理,多次引用

LaTeX 的自定义命令与环境

自定义命令

\newcommand 命令

‼️ 命令只能有字母组成,不能以 \end 开头

语法格式如下:

\newcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}

  • \newcommand 可以是简单的字符串替换
\newcommand\PRC{People's Republic of \emph{China}}

  • \newcommand 可以使用参数
\newcommand\loves[2]{#1 喜欢 #2}
\newcommand{\hatedby}[2]{#2 不受 #1 喜欢}

‼️ 参数个数最多是 9 个,使用时用 #1#2\cdots#9 表示


  • \newcommand 的参数也可以有默认值

‼️ 指定参数个数的同时指定了首个参数的默认值,那么这个命令的第一个参数就成为可选的参数(要使用中括号指定)

‼️ 只能为第一个参数指定默认值,此时,第一个参数称为该命令的可选参数,在使用该命令时,如果需要为第一个参数提供实际参数,则该参数需要用 [] 指定

\newcommand{\love}[3][喜欢]{#2#1#3}
  • \renewcommand 重新定义已有的命令


自定义环境

  • \newenvironment\renewenvironment 定义和重定义环境

语法如下

\newenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
               {<环境前定义>}
               {<环境后定义>}
\documentclass{article}

\usepackage{ctex}

\title{\heiti \LaTeX{}中的自定义命令与环境}
\newcommand\PRC{People's Republic of \emph{China}}
\newcommand\loves[2]{#1 喜欢 #2}
\newcommand{\hatedby}[2]{#2 不受 #1 喜欢}
\newcommand{\love}[3][喜欢]{#2#1#3}
\newenvironment{myabstract}[1][摘要]
{\small \begin{center} \bfseries #1 \end{center}
    \begin{quotation}}
    {\end{quotation}}

\begin{document}
    \maketitle
    \PRC
  
    \loves{}{}
  
    \hatedby{}{萝卜}
  
    \love{}{}
  
    \love[最爱]{}{}
  
    \begin{myabstract}
        这是一段自定义格式的摘要...
    \end{myabstract}
  
    \begin{myabstract}[我的摘要]
        这是一段自定义格式的摘要...
    \end{myabstract}
  
\end{document}

  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    9 引用 • 32 回帖 • 163 关注
1 操作
ZhenR 在 2023-09-07 23:18:31 更新了该帖

相关帖子

回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...