zoukankan      html  css  js  c++  java
  • [整理]小技巧之——首行缩进

    0. 简介

      在LaTex编辑时,有时会遇到这样一个有关于首行缩进的问题。在汉语环境的编辑下,习惯上每段会进行一个两个字的缩进。但是在默认编辑模式下,一个章节下的首段是没有首行缩进的,本文的目的主要是解决中文情况下首段缩进的情况。

    1. 默认情况

      简介中说到了默认情况下每一个section或者subsection下的首段都没有缩进的,正常情况下的tex代码如下,其生成pdf效果见图1。

    %----------------------------------------------------------------------------------------
    %    文档整体设定
    %----------------------------------------------------------------------------------------
    
    % 设定文档类型
    documentclass[a4paper, 11pt, oneside]{report}
    
    % 使用CTEX中文包
    usepackage{ctex}
    
    % 统一修改正文和数学字体为Adobe Utopia
    usepackage{fourier}
    
    % 产生随机文本
    usepackage{lipsum}
    
    % 语言处理和自动断词
    usepackage[english]{babel}
    
    % 开始文档
    egin{document}
        
    section{Section 1}
    lipsum[5]    % 随机生成一段文字
    燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:现在又到了哪里呢?    \
    我不知道他们给了我多少日子;但我的手确乎是渐渐空虚了。在默默里算着,八千多日子已经从我手中溜去;像针尖上一滴水滴在大海里,我的日子滴在时间的流里,没有声音,也没有影子。我不禁头涔涔而泪潸潸了。\
        
    end{document}

    图1, 默认情况下的缩进情况

    2. 添加缩进

      为了给段落添加缩进,我们在此使用到了indentfirst宏包,并用其配置缩进情况。其需要在导言区或者说是头部加上

    % 添加首行缩进,两个字符
    usepackage{indentfirst}
    setlength{parindent}{2em}

    在加入代码引入宏包后,我们再来看一看效果。

    图2, 添加了缩进代码后的效果

    3. 跟进补充

      是否觉得上面之后就达到了我们所预想的效果?不不不,有时候就是这么的奇妙,我们来看下一段代码以及它所生成的结果,我们在文中使用了ctex宏包。

    %----------------------------------------------------------------------------------------
    %    文档整体设定
    %----------------------------------------------------------------------------------------
    
    % 设定文档类型
    documentclass[a4paper, 11pt, oneside]{report}
    
    % 使用CTEX中文包
    usepackage{ctex}
    
    % 统一修改正文和数学字体为Adobe Utopia
    usepackage{fourier}
    
    % 产生随机文本
    usepackage{lipsum}
    
    % 语言处理和自动断词
    usepackage[english]{babel}
    
    % 添加首行缩进,两个字符
    usepackage{indentfirst}
    setlength{parindent}{2em}
    
    % 开始文档
    egin{document}
        
    section{Section 1}
    lipsum[5]    % 随机生成一段文字
    燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:现在又到了哪里呢?    \
    我不知道他们给了我多少日子;但我的手确乎是渐渐空虚了。在默默里算着,八千多日子已经从我手中溜去;像针尖上一滴水滴在大海里,我的日子滴在时间的流里,没有声音,也没有影子。我不禁头涔涔而泪潸潸了。\
        
    end{document}

      其效果图见下图3。

    图3, 效果图

      从图3中我们可以看出,红圈标注出的地方仍然没有缩进,那么在这里我们就需要用到 oindent(不缩进)和indent(缩进),如果使用了CJK宏包,还可以用CJKindent命令。为了一致性以及方便理解,我们在每一段的首部都加上缩进标志后,其代码如下,效果如图4。

    %----------------------------------------------------------------------------------------
    %    文档整体设定
    %----------------------------------------------------------------------------------------
    
    % 设定文档类型
    documentclass[a4paper, 11pt, oneside]{report}
    
    % 使用CTEX中文包
    usepackage{ctex}
    
    % 统一修改正文和数学字体为Adobe Utopia
    usepackage{fourier}
    
    % 产生随机文本
    usepackage{lipsum}
    
    % 语言处理和自动断词
    usepackage[english]{babel}
    
    % 添加首行缩进,两个字符
    usepackage{indentfirst}
    setlength{parindent}{2em}
    
    % 开始文档
    egin{document}
        
    section{Section 1}
    indent    lipsum[5]    % 随机生成一段文字
    indent    燕子去了,有再来的时候;杨柳枯了,有再青的时候;桃花谢了,有再开的时候。但是,聪明的,你告诉我,我们的日子为什么一去不复返呢?——是有人偷了他们罢:那是谁?又藏在何处呢?是他们自己逃走了罢:现在又到了哪里呢?    \
    indent    我不知道他们给了我多少日子;但我的手确乎是渐渐空虚了。在默默里算着,八千多日子已经从我手中溜去;像针尖上一滴水滴在大海里,我的日子滴在时间的流里,没有声音,也没有影子。我不禁头涔涔而泪潸潸了。\
        
    end{document}

      其效果如下图4。

      至此,大功告成!

    4. 总结

      首行缩进功能实现需要宏包usepackage{indentfirst}及配置setlength{parindent}{2em}

      还需要命令 oindent(不缩进)和indent(缩进)。

    5. 参考

    [1] LaTeX技巧16:LaTeX首行缩进浅谈

    6. 更多请看

      更多本人整理的有关于LaTex的知识还请参见LaTex知识个人汇总

  • 相关阅读:
    利用模板方法模式导出Excel文件
    利用模板方法模式实现导出CSV文件功能
    抽象类多实现,省略this关键字调用实现类方法
    Spring工具类
    DateUtils工具类
    Java获取时间戳
    springMVC接受类型为Map,ajax请求参数类型为字符串将导致的请求400错误
    Set转逗号分隔字符串
    html标签中自定义属性
    编译安装MySQL
  • 原文地址:https://www.cnblogs.com/airbird/p/5193098.html
Copyright © 2011-2022 走看看