[整理]小技巧之——首行缩进

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知识个人汇总

原文地址:https://www.cnblogs.com/airbird/p/5193098.html