文章目录
什么是Environment
在Latex中,\begin{sth} 内容 \end{sth}
这种类型的都是environment。他描述了内容
应该如何展示。
例如:
\begin{center}
这个一个系统定义好的Environments
\end{center}
center
这个environment定义应该将其内容居中展示。
自定义Environment(\newenvironment命令)
定义好的environment并不能满足人们的需求,比如不同学校的摘要要求字体,格式等都不一样,所以需要自定义environment
通过\newenvironment
命令可以自定义environment,格式为 \newenvironment{name}{pre}{after}
,其中name
表示environment的名称,pre
表示内容
前的内容,after
表示内容后的内容。 例如
\newenvironment{myenv}{文档前面的内容\par}{文档后面的内容}
\begin{myenv}
文档的内容\par
\end{myenv}
可以看到,使用自定义environment myenv
,他会自动在文档前面和后面增加指定的内容。
\par 是指切换下一段,类似换行。
除了指定文本内容外,还可以在environment中使用environment,例如
\newenvironment{boxed}
{
\begin{center}
\begin{tabular}{|p{0.9\textwidth}|}
\hline\\
}
{
\\\\\hline
\end{tabular}
\end{center}
}
%--------------------------------------------------
boxed之前的内容
\begin{boxed}
This is the text formatted by the boxed environment
\end{boxed}
boxed之后的内容
上述内容等价于:
文档之前的内容
\begin{center}
\begin{tabular}{|p{0.9\textwidth}|}
\hline\\
文档内容
\\\\\hline
\end{tabular}
\end{center}
文档之后的内容
到这里,其实就很容易看出,environment的本质为:将\begin{name}
替换为pre
,将\end{name}
替换为after
\newenvironment{name}{pre}{after}
\begin{name}
\end{name}
自定义Environment传递参数
\newenvironment{name}[参数个数][首参数默认值]{pre}{after}
定义单个参数
\newenvironment{myenv}[1][默认值]
{参数:#1 \par}
{}
\begin{myenv}
内容
\end{myenv}
\begin{myenv}[参数1]
内容
\end{myenv}
该实例中,定义了1个参数,参数默认值为默认值
。在pre
中可以使用#1
获取参数。after
中不能获取参数。
定义多个参数
\newenvironment{myenv}[2][默认值]
{参数:#1 \par 参数2:#2 \par}
{}
\begin{myenv}[参数1]{参数2}
内容
\end{myenv}
\begin{myenv}{参数2}
内容
\end{myenv}
当有多个参数时,第一个参数使用[]
传递,后面的参数使用{}
传递
重写现有Environment
和前面一样,只需要将newenvironment
改为renewenvironment
即可
实战:定义摘要
要求:
- 标题:小二号黑体字居中
- 正文:为小四号宋体,行距20磅,首行缩进二个字符
\documentclass{article}
\usepackage[UTF8]{ctex} % 引入宏,显示
\usepackage[UTF8]{ctex} % 引入宏,显示中文
\usepackage{type1cm} % 字体工具包
\usepackage{indentfirst} % 首行缩进
\usepackage{xeCJK} % 中文字体
\begin{document}
\newenvironment{cnabstract}
{
\begin{center}
\heiti
\zihao{-2}
摘要
\end{center}
% 正文部分设置
\setlength{\baselineskip}{20pt} % 设置行间距为20磅
\setlength{\parindent}{2em} % 2em 代表首行缩进两个字符
\songti % 宋体
\zihao{-4} % 小四
}
{}
\begin{cnabstract}
这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要这里是摘要。
摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段摘要第二段。
\end{cnabstract}
\end{document}
参考资料
官方文档:https://www.overleaf.com/learn/latex/Environments
【LaTeX入门】03、设置字体相关命令: https://blog.csdn.net/xiazdong/article/details/8892070