这是一篇LaTeX快速入门的学习笔记。
编译环境:LaTeX + TeXstudio
学习视频来源于:【1天玩转LaTeX】【写论文不怕格式出错啦!!!】【耿楠教授授权发布】_哔哩哔哩_bilibili
特别鸣谢:耿楠老师的详细讲解
LaTex文件由导言区和==正文区(文稿区)==构成
导言区:用于全局设置
title:标题
author:作者
date:时间
正文区:
\maketitle:显示标题
$内:数学模式
$外:文本模式
也可以用$$表示数学模式,这样操作会让公式令起一行显示
可通过增加空行来实现分段显示
即单$表示:行内公式
双$表示:行间公式
%导言区
\documentclass{article} %引入一个文档类:book,report,letter
\title{My First Document}
\author{Poem}
\date{\today}
%正文区
\begin{document}
\maketitle
Hello world!
Let $f(x)$ be defined by formula:
%here is my big formula
$$f(x)=3x^2+x-1$$ which is a polynomial of degree 2.
\end{document}
%导言区
\documentclass{article} %引入一个文档类:book,report,letter
\usepackage{ctex}%引入中文宏包
%\documentclass{ctexart}
\newcommand\degree{^\circ}
\title{\heiti 杂谈勾股定理}
\author{\kaishu 张三}
\date{\today}
%正文区
\begin{document}
\maketitle
勾股定理可以用现代语言描述如下:
直角三角形斜边的平方等于两条直角边的平方之和。
可以用符号语言表述为:设直角三角形$ABC$,其中$\angle
C=90\degree$,则有:
%equation命令用于产生带编号的行间公式
\begin{equation}
AB^2 = BC^2 + AC^2.
\end{equation}\label{key}
\end{document}
中文宏包CTEX手册
罗马字体、无衬线字体、打字机字体 \textrm
\rmfamily声明后续字体族
既可以使用字体命令,作用域命令参数,也可以使用字体声明,作用于后续的文本。可以用大括号,对字体进行分组,限定字体声明的作用范围。当遇到新的字体命令,会结束当前字体声明,启用新的字体声明。
\documentclass{article}
\usepackage{ctex}
\begin{document}
\textrm{Roman Family} \textsf{Sans Serif Family} \texttt{Typerwriter Family}
{\rmfamily Roman Family} {\sffamily Sans Serif Family} {\ttfamily Typerwriter Family}
\sffamily A strong man can save himself, a great man can save another. %声明无衬线字体,则后续所有字体均为无衬线字体
\ttfamily I don't know if we each have a destiny, or if we're all just floating around accidentally―like on a breeze.%当遇到新的字体命令,会结束当前字体声明,启用新的字体声明。
\end{document}
标准格式:
\sign{方括号内为显示的对应字体}%sign表示对应指令
常用举例:
\rmfamily{罗马字体族}
\sffamily{无衬线字体族}
\ttfamily{打字机字体族}
\heiti{黑体}%注意中文字体需要加ctex宏包。
\songti {宋体}
这里不加的中括号话后面就全变成了"宋体"。
%更多设置可见 texdoc ctex (ctex宏包手册)
\textmd{Medium Series} \textbf{Boldface Series}
{\mdseries Medium Series} {\bfseries Boldface Series}
{\upshape Upright Shape}
{\itshape Italic Shape}
{\slshape Slanted Shape}
{\scshape Small Caps Shape}
\textbf{abc}%粗体
\textit{abc}%斜体
{\songti 宋体} \quad {\heiti 黑体} \quad {\fangsong 仿宋} \quad {\kaishu 楷书}
中文字体的\textbf{粗体}与\textit{斜体}
{\tiny Hello}\\
{\scriptsize Hello}\\
{\footnotesize Hello}\\
{\small Hello}\\
{\normalsize Hello}\\
{\large Hello}\\
{\Large Hello}\\
{\LARGE Hello}\\
{\huge Hello}\\
{\Huge Hello}\\
\documentclass[10pt/11pt/12pt]{article}
%中文字号设置命令
\zihao{-0} 你好! %参数赋0表示小字号
\zihao{5} 你好!
:LaTeX的思想是格式与内容的分离,因此不建议在文档中使用大量的命令,而是用newcommand定义一个新的命令以执行相关的操作。
\newcommand{\myfont}{\textit{\texbf{\textsf{Fancy Text}}}
\myfont
当需要修改字体时,只需要修改已经定义的命令即可!
用section,subsection,subsubsection构建提纲(小节、子小节)
%导言区
\documentclass{ctexart}
\usepackage{ctex}
\CTEXsetup[format={\Large\bfseries}]{section}%使\section中的内容左对齐
%正文区
\begin{document}
\section{引言}
Land is the only thing in the world worth working for, worth fighting for, worth dying for. Because it's the only thing that lasts. %验证正文不受section影响
\section{实验方法}
\section{实验结果}
\subsection{数据}
\subsection{图标}
\subsubsection{实验条件}
\subsubsection{实验过程}
\subsection{结果分析}
\section{结论}
\section *{致谢} %加*用于去掉自带的编号
\end{document}
: \ \ 换行,不会产生新的段落(没有首行缩进)
\par 命令:产生新的段落
但为了清晰,分段通常采用加空行的方法
当然\documentclass{ctexart} 用ctex文档类也是可以的
chapter按章节生成文档大纲
:1.文档类要用{ctexbook}
2.用chapter时,subsubsection就不起作用了。
\documentclass{ctexbook}
\usepackage{ctex}
\CTEXsetup[format={\Large\bfseries}]{section}%使\section中的内容左对齐
%正文区
\begin{document}
\chapter{绪论}
\section{引言}
Land is the only thing in the world worth working for, worth fighting for, worth dying for. Because it's the only thing that lasts.
\section{实验方法}
\section{实验结果}
\subsection{数据}
\subsection{图标}
\chapter{实验}
\subsubsection{实验条件}
\subsubsection{实验过程}
\subsection{结果分析}
\section{结论}
\section *{致谢} %加*用于去掉自带的编号
\end{document}
\tableofcontents产生文档目录
%导言区
\documentclass{ctexbook}
\usepackage{ctex}
\CTEXsetup[format={\Large\bfseries}]{section}%使\section中的内容左对齐
%正文区
\begin{document}
\tableofcontents
\chapter{绪论}
\section{引言}
\section{实验方法}
\section{实验结果}
\subsection{数据}
\subsection{图标}
\chapter{实验}
\subsubsection{实验条件}
\subsubsection{实验过程}
\subsection{结果分析}
\section{结论}
\section *{致谢} %加*用于去掉自带的编号
\end{document}
空白符号
:1.空行分段,多个空行等同于1个;
2.自动缩进,绝对不能使用空格代替;
3.英文中多个空格处理为1个空格,中文中空格将被忽略;
4.汉字与其他字符的间距会自动由XeLaTex处理;
5.禁止使用中文全角空格
\documentclass{article}
\usepackage{ctex}
\usepackage{xltxtra}%提供了针对XeTex的改进并且加入了XeTeX的LOGO
\usepackage{texnames} %一些LOGO
\usepackage{mflogo}
\begin{document}
\section{空白符号}
%1em(当前字体M的宽度)
a\quad b
%2em
a\qquad b
%约为1/6个em
a\,b a\thinspace b
%0.5个em
a\enspace b
% 空格
a\ b
%硬空格(不能分割的空格)
a~b
% 1pc = 12pt = 4.218mm
a\kern 1pc b
a\kern -1em b
a\hskip 1em b
a\hspace{35pt}b
%占位宽度
a\hphantom{xyz}b
%弹性长度
a\hfill b
\section{\LaTeX 控制符}
\# \$ \% \{ \} \~{} \^{} \textbackslash \&
\section{排版符号}
\S \P \dag \ddag \copyright \pounds
\section{\TeX 标志符号}
% t基本符号
\TeX{} \LaTeX{} \LaTeXe{}
%xltxtra宏包提供
\XeLaTeX(需引入xltxtra宏包)
%texnames宏包提供
\AmSTeX{} \AmS- \LaTeX{} \BibTex{} \LuaTex{}
%mflogo宏包提供
\METAFONT{} \MF{} \MP{}
\section{引号}
`左单引号 '右单引号 ``左双引号 ''右双引号
``你好"
\section{连字符}
- -- ---
\section{非英文字符}
\oe \OE \ae \AE \aa \AA \o \O \l \L \ss \SS !` ?`
\section{重音符号(以o为例)}
\`o \'o \^o \''o \~o \=o \.o \u{o} \v{o} \H{o} \r{o} \t{o} \b{o} \c{o} \d{o}
\end{document}
%导言区:\usepackage{graphicx}
%语法:\includegraphics[<选项>]{<文件名>}
%格式:EPS,PDF,PNG,JPEG,BMP
\usepackage{graphicx}
\graphicspath{{figures/},{pics/}} %图片在当前目录下的figures目录
\documentclass{article}
\usepackage{ctex}
\usepackage{graphicx}
\graphicspath{{figures/},{pics/}} %图片在当前目录下的figures目录
\begin{document}
\LaTeX{}中的插图
\includegraphics[scale=0.3]{pictures/p1.jpg}
\end{document}
%[scale指的是比例],pictures选择的是和本系统在一起的文件夹,后面的图片p1.jpg是在pictures文件内。
注:
[可选参数]:scale(缩放因子)、height = 1cm(固定值的图像高度)、width=2cm(固定值的图像宽度)、height=0.1\textheight(版型0.1倍的图像高度)、width=0.2\textwidth(版型0.2倍的图像宽度)、angle=-45(旋转角度)
可同时指定多个可选参数,不同参数之间用逗号分隔
可以在运行中输入如下查看相应帮助文档
**概要:**使用tabular环境生成表格,tabular环境需要一个指定列排版格式的必选参数{l c r p} l:左对齐;c:居中;r:右对齐;p:内容超过宽度时自动换行
语法:%\begin{tabular}[<垂直对齐方式>]{<列格式说明>}
% <表项>&<表项>&…&<表项> \ \
& 分割各列
11%…
%\end{tabular}
%用 \ \ 表示换行
%l -本列左边对齐
%c —本列居中
%r -本列右对齐
% p{<宽>}—本列宽度固定,可自动换行
打开宏包说明文件
跨页长表格
综合表格宏包
\documentclass{ctexart}
\begin{document}
\begin{tabular}{| l || c | c | c | r} % 用 | 产生竖线,两个|可以产生双竖线,列格式说明中空格不起作用
\hline %产生表格横线
A组 & 队名 & 比分 & 备注\\
\hline\hline %产生双横线
1st & RNG & 6-0 & 出线\\
\hline
2nd & DK & 3-3 & 出线\\
\hline
3rd & T1 & 2-4 & 淘汰\\
\hline
4th & G2 & 1-5 & 淘汰\\
\hline
\end{tabular}
\end{document}
**浮动体:**1.实现灵活分页(避免无法分割的内容产生的页面留白)
2.给图标添加标题
3.交叉引用
figure环境(table环境与之类似)
\begin{figure}[<允许位置>]
< 任意内容 >
\begin{figure}
<允许位置>参数(默认top)
h,此处(here)——代码所在的上下文位置
t,页顶(top)——代码所在页面或之后页面的顶部
b,页底(bottom)——代码所在页面或之后页面的底部
p,独立一页(page)——浮动页面
标题控制(caption、bicaption等宏包)
并排与子图表(subcaption、subfig、floatrow等宏包)
绕排(picinpar、wrapfig等宏包)
例
\documentclass{ctexart}
\usepackage{graphicx}
\graphicspath{{figures/}}
\begin{document}
%figure浮动体环境
\LaTeX{}中的插图:\ref{fig-p1} %ref引用标签
\begin{figure}[htbp] %通过可选参数指定浮动体的排版位置
\centering %让环境中的内容居中
\includegraphics[scale=0.3]{imgs/p1}
\caption{\TeX 浮动体学习}\label{fig-p1} %caption设置标题,lable为浮动体设置标签
\end{figure}
%table浮动体环境
\LaTeX{}中的表格\ref{table-score}
\begin{table}[h]
\centering
\caption{积分情况}\label{table-score}
\begin{tabular}{| l || c | c | c | r} % 用 | 产生竖线,两个|可以产生双竖线,列格式说明中空格不起作用
\hline %产生表格横线
A组 & 队名 & 比分 & 备注\\
\hline\hline %产生双横线
1st & RNG & 6-0 & 出线\\
\hline
2nd & DK & 3-3 & 出线\\
\hline
3rd & T1 & 2-4 & 淘汰\\
\hline
4th & G2 & 1-5 & 淘汰\\
\hline
\end{tabular}
\end{table}
\end{document}
\documentclass{ctexart}
\usepackage{amsmath}
\begin{document}
\section{简介}
\LaTeX{}将排版内容分为文本模式和数学模式。文本模式用于普通文本排版,数学模式用于数学公式排版。
\section{行内公式}
\subsection{美元符号}
交换律:$$a+b=b+a$$
\subsection{小括号}
交换律:\(a+b=b+a\)
\subsection{math环境}
交换律:\begin{math}a+b=b+a\end{math}
\section{上下标}
上:$x^{2x^{6}+1}+y=0$ \\
下:$a_1,a_2,a_3...a_{100}$
\section{希腊字母}
$\alpha$
$\beta$
$\gamma$
$\epsilon$
$\omega$
大写希腊字母:
$\Gamma$
$\Delta$
$\Theta$
$\Pi$
$\Omega$
\section{数学函数}
$\log$
$\sin$
$\cos$
$\arcsin$
$\arccos$
$\ln$ \\
$y=\sin^{-1}x$ \\
$y=log_2x$ \\
$\sqrt[4]{x^2+y^2}$ %[]可选参数,开方次数
\section{分式}
$\frac{x}{x^2+x+1}$ \\ %第一个可选参数是分子,第二个是分母
$\sqrt{\frac{x}{x^2+x}}$
\section{行间公式}
\subsection{美元符号}
$$x+y=2$$ %使用双$
\subsection{中括号}
\[x+y=2\] %同样效果
\subsection{displaymath环境}
\begin{displaymath}
x+y=2
\end{displaymath}
\section{自动编号公式equation环境}
交换律见式\ref{eq:commutative} %交叉引用
\begin{equation}
a+b=b+a \label{eq:commutative}
\end{equation}
\section{不编号equation*环境}
交换律见式:\ref{eq:commutative2}:
\begin{equation*}
a+b=b+a \label{eq:commutative2}
\end{equation*}
%在公式末尾加\nonumber也可以去编号
\end{document}
公式的编号与交叉引用也是自动实现的,在排版中,要习惯采用自动化的方式处理诸如图、表、公式的编号与交叉引用。
\documentclass{ctexart}
\usepackage{amsmath}
\begin{document}
%矩阵环境,用&分割列,用\\分割行 每个矩阵前后需要加 \[ \]
%注意\[ \] 里面无需空行
\[
\begin{matrix} %无定界符
0&1\\
1&0
\end{matrix}
\]
\[
A=\begin{pmatrix}%小括号
a_{11}^2&a_{12}^2&a_{13}^2\\
0&a_{22}&a_{23} \\
0&0&a_{33}
\end{pmatrix}
\]
\[
\\
\begin{bmatrix}%中括号
0&-1\\
3&1
\end{bmatrix}\\
\begin{Bmatrix}%大括号
0&-1\\
3&1
17
\end{Bmatrix}
\begin{vmatrix}%单竖线
0&-1\\
3&1
\end{vmatrix}
\begin{Vmatrix}%双竖线
0&-1\\
3&1
\end{Vmatrix}
\]
%常用省略号: \dots 横向 \ddots 对角线 \vdots 竖线
\[
B=\begin{bmatrix}
b_{11} & \dots & b_{1n}\\
& \ddots & \vdots \\
0 & \dots & b_{nn}
\end{bmatrix}_{n\times n} %\times 是乘号 (X)
\]
%分块矩阵(矩阵镶套)
\[
C=\begin{pmatrix}
\begin{matrix} 0&1\\1&-1 \end{matrix}
& \text{\Large 0} \\ %text用于在数学模式中临时切换为文本模式
\text{\Large 0} & \begin{matrix} 1&0 \\ 0& -2 \end{matrix}
\end{pmatrix}
\]
% 括号包裹的矩阵
\[\begin{pmatrix}
a_{11}&a_{12}&\cdots&a_{ln}\\
&a_{22}&\cdots&a_{2n}\\
& &\dots &\vdots \\
\multicolumn{2}{c}{\raisebox{1.3ex}[0pt]{\Huge 0}} %muticolumn合并多列 raisebox调整高度
& &a_{nn}
\end{pmatrix}
\]
% 跨列的省略号:\hdotsfor{<列数>}
\[\begin{pmatrix}
1&\frac 12 &\dots &\frac 1n \\
\hdotsfor{4}\\
m&\frac m2& \dots &\frac mn
\end{pmatrix}
\]
% 行内小矩阵(smallmatrix)环境
复数$z=(x,y)$也可以用矩阵
\begin{math}
\left(% 需手动加上左括号
\begin{smallmatrix}
x &-y\\y &x
\end{smallmatrix}
\right)% 需手动加上右括号
\end{math}来表示
% array环境(类似表格环境tabular)
\[
\begin{array}{r|r}
\frac 12&0\\
\hline
0& -\frac a{bc}\\
\end{array}
\]
\end{document}
\documentclass{article}
\usepackage{ctex}
\usepackage{amsmath}
\usepackage{amssymb}
\begin{document}
% gather和gather*环境实现多行公式的排版(可以使用\\换行)
% 带编号
\begin{gather}
a + b = b + a\\
ab ba
\end{gather}
% 不带编号
\begin{gather*}
3+5 = 5+3 = 8\\
3 \times 5=5 \times 3
\end{gather*}
% 在\\前使用\notag阻止编号
\begin{gather}
3^2 + 4^2 = 5^2 \notag \\
a^2 + b^2 = c^2
\end{gather}
% align和align*环境使公式在指定位置对齐(用&符号指定对齐位置)
% 带编号
\begin{align}
x &=t+\cos t+1\\ %按等号对齐
y &=2 \sin t
\end{align}
% 不带编号
\begin{align*}
x &= t & x &= \cos t & x &= t \\
y &= 2t & y &= \sin(t+1) & y &= \sin t
\end{align*}
% split环境(对齐采用align环境的方式,编号在中间)
\begin{equation}
\begin{split} %实现一个公式的多行排版
\cos 2x &=\cos^2 x- \sin^2 x\\
&=2\cos^2 x-1
\end{split}
\end{equation}
% case环境(实现分段函数的排版)
% 每行公式中使用&分隔为两部分
% 通常表示值和后面的条件
% \text{}在数学模式中处理中文或者临时切换为文本模式
\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}
方法一:
\documentclass{article}
\usepackage{ctex}
\begin{document}
% 一次管理,一次使用
% 参考文献格式:
% \begin{thebibliography}{编号样本}
% \bibitem[记号]{引用标志}文献条目1
% \bibitem[记号]{引用标志}文献条目2
% ……
% \end{thebibliography }
% 其中文献条目包括:作者,题目,出版社,年代,版本,页码等。
% 引用时候要可以采用:\cite{引用标志1,引用标志2,...}
引用一篇文章\cite{article1},引用一本书\cite{book1}
\begin{thebibliography}{99}
\bibitem{article1}陈立耀,苏伟,蔡川,陈晓云.\emph{基于LaTex的Web数堂公式提取方法研究}[1]、让算机科学、2014(06)
\bibitem{book1}william H. Press,saul A.Teukolsky, william T. Metterling, 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,lemph{Math Into \LaTeX},BirkhAuser Boston; 3 edition (une 22,2000).
\end{thebibliography}
\end{document}
1.对TeXstudio作如下设置:
默认文献工具选择BibTex
2.新建一个文件:test.bib,注意是以bib为后缀的。
@BOOK{mittelbach2004,
title={The{{\LaTeX}} Companion},
publisher={Addison-Wesley},
year={2004},
author={Frank Mittelbach and Michel Goossens},
series={Tools and Techniques for Computer Typesetting},
address={Boston},
edition={Second}
}
@misc{patashnik1988designing,
title={Designing BIBTEX styles},
author={Patashnik, Oren},
year={1988},
publisher={February}
}
3.在另一个文档中,引用这个bib文件。
\documentclass{article}
\usepackage{ctex}
\usepackage[round]{natbib} %使用natbib宏包,可以使用更多的排版样式,如plainnat;[参数]指定不同的参数,设置不同的排版格式,round 排版结果变成圆括号
%natbib宏包还提供了\citet和\citep命令
% 指定参考文献的排版样式:plain,unsrt,alpha,abbrv
\bibliographystyle{plain}
\begin{document}
% 指定参考文献数据库,
\bibliography{test}
%添加cite引用命令,使用bib数据库文件中参考文献条目的引用标志,作为cite命令的参数
这是一个文献的引用:\cite{mittelbach2004}
这是另一个文献的引用:\cite{patashnik1988designing}
% 引入bib文件,如果有多个bib文件,使用逗号隔开
% \bibliography{book}
\end{document}
注:\usepackage[round]{natbib} %使用natbib宏包,可以使用更多的排版样式,如plainnat;[参数]指定不同的参数,设置不同的排版格式,round 排版结果变成圆括号
%natbib宏包还提供了\citet和\citep命令,用于设置不同的引用格式,更多细节可查阅宏包使用说明
手动维护bib文件是比较繁琐的并且是极易出错的,可以使用Google Scholar提供的功能,访问谷歌学术,随便搜索点东西,点击“引用”,再点击“BibTex”,即可看到信息。
按如上图所示操作可以得到相应文献bibtex格式的数据,可以直接将该数据拷贝到参考文献数据库中。
同样,也可以从知网检索中导入数据
这种方法需要将TeXstudio作如下设置:
将默认文献工具设置为Biber
\documentclass{article}
% 引入biber宏包
\usepackage[style=numeric,backend=biber]{biblatex}
\usepackage{ctex}
% biblatex/biber
% 新的TEX参考文献排版引擎
% 样式文件(参考文献样式文件--bbx文件,引用样式文件--cbx文件)使用LATEX编写
% 支持根据本地化排版,如:
% biber -l zh__pinyin texfile,用于指定按拼音排序
% biber -l zh__stroke texfile,用于按笔画排序
% 在导言区添加bib数据库(后缀名不能省略)
\addbibresource{test.bib}
\begin{document}
% 无格式化引用
\cite{mittelbach2004}
% 带方括号引用
\parencite{mittelbach2004}
% 上标引用
\supercite{6-1}
\nocite{*}
\printbibliography
% 默认是References,可以自定义
\printbibliography[title={参考文献}]
\end{document}
\documentclass{article}
\usepackage{ctex}
% \newcommand-定义命令
% 命令只能由字母组成,不能以\end开头
% \newcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>}
% \newcommand可以是简单的字符串替换,例如:
% 使用\PRC 相当于People's Republic of \emph{China}这串内容
\newcommand\PRC{People's Republic of \emph{China}}
% \newcommand也可以使用参数,就是把参数填充到#数字的地方
% 参数个数可以有1~9个,#1,#2表示第1、2个参数
% #1表示第一个参数,#2表示第二个参数
\newcommand\loves[2]{#1 喜欢 #2}
% 整体就是参数一喜欢参数二
% 参数采用位置参数,第二个传入的参数即为#2
\newcommand\hatedby[2]{#2 不受 #1 喜欢}
% \newcommand的参数可以有默认值
% 指定参数个数的同时指定了首个参数的默认值
% 第一个参数就成为可选的参数(要使用中括号指定)
% [3]表示有3个参数,第一个参数的默认值是“喜欢”
\newcommand\love[3][喜欢]{#2 #1 #3}
% \renewcommand-重定义命令
% 与\newcommand 命令作用和用法相同,但只能用于已有命令
% \renewcommand<命令>[<参数个数>][<首参数默认值>]{<具体定义>对}
\renewcommand\abstractname{把“摘要”重新定义为“内容简介”} %将摘要重新定义为“内容简介”
% 定义和重定义环境
% \newenvironment{<环境名称>}[<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% \renewenvironment{<环境名称>}][<参数个数>][<首参数默认值>]
% {<环境前定义>}
% {<环境后定义>}
% 为book类中定义摘要(abstract)环境
\newenvironment{myabstract}[1][摘要]
{
\small
\begin{center} \bfseries #1 \end{center}
\begin{quotation}}
{\end{quotation}}
%环境参数只有<环境前定义>中可以使用参数,
%<环境后定义>中不能再使用环境参数
%如果需要,可以先把前面得到的参数保存在一个命令中,在后面使用:
\newenvironment{Quotation}[1]
{\newcommand\quotesource{#1}
\begin{quotation}
{\par\hfil---\textit{\quotesource}}
\end{quotation}
}
\begin{document}
\begin{abstract}
这是一段摘要
\end{abstract}
\begin{myabstract}[我的摘要]
自定义摘要 \end{myabstract}
\begin{Quotation}{练$\cdot$习}
LaTeX快速入门
\end{Quotation}
\PRC
\loves{猫}{鱼}
\hatedby{猫}{萝卜}
\love{猫}{鱼}
\love[最爱]{猫}{鱼}
\end{document}
**注:**定义命令和环境是进行\LaTeX{}格式定制、达成内容与格式分离目标的利器。使用自定义的命令和环境把字体、字号、缩进、对齐、间距等各种琐细的内容包装起来,赋予一个有意义的名字,可以使文档结构清晰、代码整洁、易于维护。在使用宏定义的功能时,要综合利用各种已有的命令、环境、变量等功能。事实上,前面所介绍的长度变量与盒、字体字号等内容,大多并不直接出现在文档正文中,而主要都是用在实现各种结构化的宏定义里。