文章目录

  • 什么是Environment
  • 自定义Environment(\newenvironment命令)
  • 自定义Environment传递参数
    • 定义单个参数
    • 定义多个参数
  • 重写现有Environment
  • 实战:定义摘要
  • 参考资料

什么是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

一文搞懂Overleaf(Latex)中的Environment和\newenvironment命令相关推荐

  1. 一文搞懂负载均衡中的一致性哈希算法

    一致性哈希算法在很多领域有应用,例如分布式缓存领域的 MemCache,Redis,负载均衡领域的 Nginx,各类 RPC 框架.不同领域场景不同,需要顾及的因素也有所差异,本文主要讨论在负载均衡中 ...

  2. 一文搞懂│王者游戏中荣耀水晶难抽?探索游戏中的抽奖算法

    目录 一.初始化奖品 二.谢谢参与 三.过滤抽奖.如充值条件 四.重组概率 五.进行抽奖 六.过滤回调 七.最终抽奖结果 八.抽奖封装成类 一.初始化奖品 奖品详情应该从数据库中读出来 奖品详情应该加 ...

  3. 二分类最优阈值确定_一文搞懂分类算法中常用的评估指标

    导读 通常我们在解决某个问题的时候,会设计多种分类算法在训练的时候我们还会调节各种超参以及使用各种trick以获取最优的分类模型,那这时候我们应该如何来衡量这个最优呢? 分类算法的评估指标有很多种,选 ...

  4. 一文搞懂异常检测中离群、异常、新类、开集、分布外检测异同

    点击上方"迈微AI研习社",选择"星标★"公众号 重磅干货,第一时间送达 选自丨机器之心 MMLab@NTU 你是否也曾迷惑于「离群检测,异常检测,新类检测,开 ...

  5. 一文搞懂中建、中交、中能建、中铁、中铁建等企业

    一.中国建筑(CSCEC) 中国建筑股份有限公司(2016<财富>世界500强第27位) 中国建筑工程总公司: ► 是中国最大建筑房地产综合企业和中国最大国际承包商: ► 是中央直接管理的 ...

  6. 一文搞懂Pandas Dataframe中的apply方法

    告诉你如何在Pandas数据框架中使用apply()的方法. 扫码关注<Python学研大本营>,加入读者群,分享更多精彩 热点 在这篇文章中,我们将探索如何在DataFrame中使用ap ...

  7. 一文搞懂高速电路中的电源设计

    一块单板常常涉及多种电源,常见的如5V,3.3V,2.5V,1.8V,1.5V,1.2V,1.0V,0.9V,0.75V等,如此多种类的电源不可能都直接通过背板从电源获得,一般,单板仅有一种或两种输入 ...

  8. 一文搞懂Qt中的颜色渐变(QGradient Class)

    一文搞懂Qt中的颜色渐变(QGradient Class) 1, 快速开始! Qt中与颜色渐变有关的类是QGradient 其中它又有三个子类:QLinearGradient.QRadialGradi ...

  9. python中gbk字符原因报错_不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码...

    原标题:不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码 程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广, ...

  10. 一文搞懂Java8中表示当前的时间类Date、Instant、LocalDateTime、ZonedDateTime

    1. 概述 Java8中的时间类主要有:Date.Instant.LocalDateTime(LocalDate.LocalTime).ZonedDateTime,除去Date,java.time包下 ...

最新文章

  1. 算术运算中隐式类型转换
  2. BZOJ-3211-花神游历各国(线段树)
  3. xss原理、攻击方式与防御
  4. openresty获取Nginx uri中的单一变量
  5. 11 Python - dict
  6. C语言高级编程:C语言数据类型大小和取值范围
  7. 台达ms300变频器使用手册中文_台达变频器:满足未来驱动需求
  8. Javascript详解
  9. Git的学习笔记(一)
  10. 2006年,谁是我们的博客之星?
  11. matlab入门学习(良心版本,适合小白)
  12. 数据中台到底是什么?
  13. oracle分区缺点,ORACLE的五种表的优缺点概述
  14. java Virtual Machine Launcher
  15. 3GPP中的各种缩写
  16. ONLYOFFICE权限开发之二
  17. python的输入函数是什么意思_在Python中,用于获取用户输入的函数是
  18. 四川省知识产权贯标申报好处条件、材料
  19. Codeforces Round #570 (Div. 3)B. Equalize Prices
  20. Python 获取动漫番剧 -XXOO

热门文章

  1. EXCEL打开文件密码如何找回
  2. Ubuntu下deb包的安装方法
  3. 大学计算机组织部面试问题及答案,组织部面试问题及答案(30页)-原创力文档...
  4. 百善孝为先,万恶淫为首
  5. 代码评审这点事,元芳你怎么看
  6. 引气管理计算机失效,TAT信号无效导致ND上TAS-显示消失B737系列机务在线 - 认真、负责、细致 我们秉承的理念...
  7. python计算2019年新个税
  8. OpenGL与显卡驱动
  9. JavaScript形而上的For循环中的Break
  10. vue在filters中使用sort()无限循环踩坑实践