**

1. 复杂距离

**
a.水平和竖直距离
b.填充距离与弹性距离
c.行距
d.制表符
e.悬挂缩进
f.整段缩进

2. 自定义章节样式

3.自定义目录样式

% 导言区
\documentclass[a4paper]{ctexart}\usepackage{ctex}
\usepackage{xeCJK} %导入这个宏包,就可以支持中文
\usepackage{amsmath}
\usepackage{changepage} %提供了一个adjustwidth环境
\usepackage{titlesec} %自定义章节样式
\usepackage{titletoc} %自定义目录样式%5.3复杂距离
%5.3.1水平和竖直距离
%水平距离的命令有两种:一种禁止在此处断行,如图5.1所示;另一种允许换行, 如表5.2所示。\begin{document}%表5.1禁止换行的水平距离你好$\thinspace$你好,你好\,你好  \\ %\thinspace或\,长度为0.1667em你好$\negthinspace$你好,你好$\!$你好\\ %\negthinspace或\!,长度为-0.1667em你好$\enspace$你好           \\ %\enspace,长度为0.5em你好$\nobreakspace$你好,你好~你好   \\ %\nobreakspace,长度为空格%表5.2允许换行的水平距离你好$\quad$你好                \\ %\quad,长度为1em你好$\qquad$你好             \\ %\qquad,长度为2em你好$\enskip$你好            \\ %\enskip,长度为0.5em你好\ 你好                 \\ % \ (空格),长度为空格%使用\hspace{length}命令自定义空格长度,其中length的取值如-1em、2ex、5pt plus 3pt minus 1pt,以及0.5\linewidth等。%如果想要这个命令在断行处也正常输出空格,使用带星号命令\hspace*。%类似地,使用\vspace{length}和\vspace*{length},作为竖直方向上空白距离的输出。%要定义新的长度宏,使用\newlength命令;%要重设现有长度宏的值,可以使用\setlength命令;%要调整长度宏的值,则使用\addtolength命令。\newlength{\mylatexlength}\setlength{\mylatexlength}{10pt}\addtolength{\mylatexlength}{-5pt}%此外,LATEX还定义了三个竖直长度\smallskip 、\medskip和\bigskip\parbox[t]{3em}{Tex\par Tex}\parbox[t]{3em}{Tex\par\smallskip Tex}\parbox[t]{3em}{Tex\par\medskip Tex}\parbox[t]{3em}{Tex\par\bigskip Tex}%5.3.2填充距离与弹性距离%命令\fill用于填充距离,要作为\hspace或\vspace的参数。%另外还有单独使用的命令\hfill与\vfill,它们的作用相同。%弹性距离指按一定比例计算得到的多个空白,命令是\stretch.左\hspace{\fill}右\\左\hspace{\stretch{1}}中\hspace{\stretch{2}}右\\%你还可以使用类似\hfill的\hrulefill和\dotfill命令.L\hfill R\\L\hrulefill Mid\dotfill R%5.3.3行距%LATEX的行距由基线计算,可以使用命令\linespread{num}默认的基线距离\baselineskip是1.2倍的文字高,所以默认行距是1.2倍。%如果更改linespread为1.3,那么行距变为1.2*1.3=1.56倍————这也是ctex文档类的做法。%此外还有\lineskiplimit和\lineskip命令。%有时候在两行之间,可能包含较高的内容(比如分式1/2),这使得前一行底部与后一行顶部的距离小于limit值,%则此时行距会由\linespread控制改为由\lineskip控制。%本书采用如下设置:\setlength{\lineskiplimit}{3pt}\setlength{\lineskip}{3pt}%5.3.4制表位%制表位使用tabbing环境,需要注意,这是一个极其容易造成坏箱的环境。这里有几个要点:% \=:在此处插入制表位。% \>:跳入下一个制表位。% \\:制表环境内必须手动换行和缩进。% \kill:若行末用\kill代替\\,那么该行并不会输出到文档中。% 一个丑陋的例子如下:\begin{tabbing}\hspace{4em}\=\hspace{8em}\=\kill制表位\>就是这样\>使用的\\随时\>可以添加\>新的:\=就这样\\也可以\=随时重设\=制表位\\这是\>新的\>一行\end{tabbing}%5.3.5悬挂缩进%这种缩进在实际排版中并不常用,而在需要列表的场合中才使用,但可以借助列表宏包enumitem进行定义。%这里介绍的是正文中悬挂缩进的使用。%如果需要对单独一段进行悬挂缩进,如下所示:%\hangafter 2%\hangindent 6em%这两行代码放在某一段的上方,其作用是控制紧随其后的段落从第二行开始悬挂缩进,并且设置悬挂缩进的长度是6em.%如果连续的多段需要悬挂缩进,可以通过改造编号列表环境或者verse环境来实现。(verse环境:事实上这是一个排版诗歌的环境)%或者如下这样尝试:正文...{\leftskip=3em\parindent=-1em\indent这是第一段。注意整体需要放在第一组花括号内,且花括号前应当有空白行。第一段前需要加indent命令,最后一段的末尾需额外空一行,否则可能出现异常。这是第二段。\ldots这是最后一段。别忘了空行。}%5.3.6整段缩进
%宏包changepage提供了一个adjustwidth环境,它能够控制段落两侧到文本区(而不是页边)的距离。
\begin{adjustwidth}{1cm}{3cm}%本段首行缩进需要额外手工输入。本环境距文本左侧1cm,距右侧3cm.
\end{adjustwidth}%也可以尝试赋值\leftskip等命令,这对奇偶页的处理更有效。%5.4自定义章节样式
%本节主要涉及titlesec宏包的使用。章节样式调整使用\titlelabel、\titleformat*命令。
%前者需要配合计数器使用,后者可简单地设置章节标题的字体样式。
\titlelabel{\thetitle.\quad}
\titleformat*{\section}{\itshape}
%章节样式由标签和标题文字两部分构成。
%标签一般表明了大纲级别以及编号,比如“第一章”“Section3.1”等。
%标题文字比如“自定义章节样式”这几个字。
%在report与book类的subsection及以下级别,article类的paragraph及以下级别是默认没有编号的,
%因此其对应的级别也没有标签,除非人工进行设置。%对于需要详细处理标签、标题文字两部分的情况,titlesec宏包还提供了一个\titleformat命令。
%调用方式如下:
%\titleformat{command}[shape]{format}{label}{sep}{before-code}[after-code]
%上面参数对应的含义如下所示。%command:大纲级别命令,如\chapter等。%shape:章节的预定义样式,分为9种。%hang.默认值,标题在右侧,紧跟在标签后。%block.标题和标签封装排版,不允许额外的格式控制。%display.标题另起一段,位于标签的下方。%runin.标题与标签同行,且正文从标题右侧开始。%leftmargin.标题与标签分段,位于左页边。%rightmargin.类似leftmargin,位于右页边。%drop.文字包围标题。%wrap.类似drop,文本会自动调整以适应最长的一行。%frame.类似display,但有框线。%format:用于设置标签和标题文字的字体样式,这里可以包含竖直空距,即标题文字到正文的距离。%label:用于设置标签的样式,比如“第\chinese\thechapter章”大概是ctexbook类的默认样式。%sep:标签和标题文字的水平间距,必须是LATEX的长度表达。当shape取display时,表示竖直空距;取frame时,表示标题到文本框的距离。%before:标题前的内容。%after:标题后的内容。对于hang,block,display,此内容取竖向;对于runin、leftmargin,此内容取横向;否则此内容被忽略。%宏包还给出了\titlespacing与\titlespacing*两个命令,其使用方式如下:%\titlespacing*{command}{left}{before-sep}{after-sep}[right-sep]%\titlespacing{command}{left}{*m}{*n}[right-sep]%各参数的含义如下所示:%command:大纲级别命令,如\chapter.%label:缩进值。在left/right margin下表示标题宽;在wrap中表示最大宽;在runin中表示标题前缩进的空距。%before-sep:标题前的垂直空距。%after-sep:标题与正文间的空距。在hang、block、display中是垂直空距;在runin、wrap、drop、left\right margin中是水平空距。%right-sep:可选,仅对hang、block、display适用。%*m/*n:在titlespacing命令中的m、n分别表示before与after-sep的变动范围倍数,基数是默认值。%宏包中还有一个\titleclass命令,用来定义新的章节命令(\subchapter)或者重申明已有的章节命令。%使\part命令不单独占据一页\titleclass{\part}{top}%新定义一个\subchapter命令\titleclass{\subchapter}{straight}[\chapter]\newcounter{subchapter}\renewcommand{\thesubchapter}{\Alph{subchapter}}%其中,第二参数表示章节类型,可以是page(独占一页)、top(另开新页),或者straight(普通)。%宏包还给出了\titlelinne命令,用来绘制填充同时嵌入其他对象的行。%对象可以嵌入到左、中、右三个位置。如果你只是想填充一行而不嵌入对象,使用\titlerule及其带星号的命令形式。%嵌入对象的线%\titleline[c]{CHAPTER 1}%单纯填充一行%\titlerule[height]%\titlerule*[width]{text} %最后,我们给出一个复杂的样式定义示例。这个例子稍微有些复杂,只用到了\titleformat相关章节的命令。它用\startcontents与\printcontents命令,在每章开始都插入该章的子目录。%限于本书篇幅,请读者自行编译。\newcommand{\chaformat}[1]{%\parbox[b]{.5\textwidth}{\hfill\bfseries #1}%\quad\rule[-12pt]{2pt}{70pt}\quad{\fontsize{60}{60}\selectfont\thechapter}}%chapter样式定义中的\chaformat以章名作为隐式参数\titleformat{\chapter}[block]{\hfill\LARGE\sffamily}{}{0pt}{\chaformat}[vspace{2.5pc}\normalsize\startcontents\printcontents{}{1}{\setcounter{tocdepth}{2}}]\titleformat*{\section}{\centering\Large\bfseries}\titleformat{\subsubsection}[hang]{\bfseries\large}{\rule{1.5ex}{1.5ex}}{0.5em}{}%本例没有定义subsection样式。如果你想给subsection级别标号(即赋予它标签),使用\setcounter{secnumdepth}{3}.(report/book类part级别深度为0,递增;article类part级别深度为-1,无chapter级别。故它们的section及以下级别深度一致。)
%临时更改\secnumdepth可以生成不编号的章节,但章节名仍会被用在目录和\markboth中,有时这比带星号的章节命令更巧妙一些。%5.5自定义目录样式
%本节主要涉及titletoc宏包,它与titlesec宏包的文档写在同一个pdf文件中。%首先是目录的标题,其可以通过recommand更改,分别是\contentsname、\listfigurename和\listtablename。
%再来看命令\dottecontents和\titlecontents:
%\dottecontents{section}[left]{above-code}{label-width}{leader-width}
%\titlecontents{section}[left]{above-code}{numbered-entry-format}{numberless-entry-format}{filler-page-format}[below-code]%各参数的含义如下所示:
%section:目录对象,可以填chapter、section,或者figure、table。
%left:目录对象左侧到左页边区的距离,一般必选。
%above-code:格式调整命令,可以包含垂直对象,也可以用\contentslabel,即指定本级别目录标签箱子的宽度。
%label-width:标签宽。
%leader-width:填充符号宽,默认的填充符号是圆点。
%numbered-entry-format:如果有标签,表示在目录文本前输入的格式。
%numberless-entry-format:没有标签时输入的格式。
%filler-page-format:填充格式,一般借助titlesec中的\titlerule*[width]{text}命令。
%below-code:在entry之后输入的格式,比如垂直空距。%下例中,section级别使用了填充命令\titlerule*。请读者自行编译效果。
\titlecontents{chapter}[1.5em]{}{\contentslabel{1.5em}}{\hspace*{-2em}}{\hfill\contentspage}
\titlecontents{section}[3.3em]{}{\contentslabel{1.8em}}{\hspace*{-2.3em}}{\titlerule*[8pt]{$\cdot$}\contentspage}
\titlecontents*{subsection}[2.5em]{\small}{\thecontentslabel{}}{}{,\thecontentspage}[;\qquad][.]
\end{document}

Latex之复杂距离、自定义章节样式、自定义目录样式相关推荐

  1. Vue 实现拖拽模块(三)自定义拖拽组件的样式

    上文介绍了 自定义拖拽组件位置 的简单实现,本文将继续给大家分享如何自定义拖拽组件位置的简单实现,文中通过示例代码介绍,感兴趣的小伙伴们可以了解一下 本文主要介绍了 Vue 自定义拖拽组件的样式,具体 ...

  2. Python可视化matplotlib自定义:运行时参数修改、自定义样式、默认样式+plt.style.use()

    Python可视化matplotlib自定义:运行时参数修改.自定义样式.默认样式+plt.style.use() 目录 Python可视化matplotlib自定义:运行时参数修改.自定义样式.默认 ...

  3. 地图样式自定义_干货在线 | ArcGIS中定义图框样式

    ArcGIS系统中的样式可能不能满足实际生产需要,为了实现快速制图,可自定义一些样式,以便重复利用. 安装字符 因为样式中定义了自定义的符号,这些符号都打包到字体中,所以在使用样式之前,必须安装字体文 ...

  4. Css实现checkbox及radio样式自定义

    前言 checkbox和radio样式自定义在网页中是很常见的, 比如在进行表单输入时性别的选择,用户注册时选择已阅读用户协议.随着用户对产品体验要求越来越高,我们都会对checkbox和radio重 ...

  5. WPF Calendar 日历控件 样式自定义

    原文:WPF Calendar 日历控件 样式自定义 粗略的在代码上做了些注释 blend 生成出来的模版 有的时候 会生成 跟 vs ui界面不兼容的代码 会导致可视化设计界面 报错崩溃掉 但是确不 ...

  6. Android踩坑日记:自定义水平和圆形ProgressBar样式

    自定义水平和圆形ProgressBar样式 1.自定义水平ProgressBar样式 ProgressBar分为两种,我们能明确看到进度,不确定的就是不清楚.不确定一个操作需要多长时间来完成,这个时候 ...

  7. 怎么修改谷歌浏览器文件提交按钮样式_使用css自定义input file浏览按钮样式

    前言 文件上传用途非常广泛,浏览器自带文件控件不太美观,很多时候不能满足需求,需要自定义input [type=file]的样式. 不同浏览器的file控件表现形式不一样 火狐 谷歌 IE 不同浏览器 ...

  8. 伪类::selection自定义文本选中时的样式(CSS3样式),CSS3的word-break单次换行

    1.::selection CSS3伪类自定义文本选中时的样式 有的人在浏览网页时,喜欢一边选中文本一边阅读.在windows环境下,正常的文本选中应该是深蓝色背景白色文本的样式.那么想要修改文本选中 ...

  9. elementUI解决el-checkbox自定义样式、@change样式的失效 等bug - 代码示例

    elementUI解决el-checkbox样式(自定义样式问题) 1. 需求(如图所示): 2. 代码示例说明:(截图示下) 测试正常. /* 热门职位 + 区域 组件替换样式 */ .hot-jo ...

  10. 数据科学 IPython 笔记本 8.14 自定义 Matplotlib:配置和样式表

    8.14 自定义 Matplotlib:配置和样式表 原文:Customizing Matplotlib: Configurations and Stylesheets 译者:飞龙 协议:CC BY- ...

最新文章

  1. PCL基础2:点云赋值
  2. ES _all、_source的使用——_all字段连接所有字段的值构成一个用空格(space)分隔的大string而被analyzed和index,document主体保存在_source中...
  3. Spark官方文档——本地编写并运行scala程序
  4. 阿里开源那个牛哄哄问题排查工具竟然不会用?最佳实践来了!
  5. SpringBoot启动banner更改
  6. 使用AOP动态调用WebService
  7. 第三次学JAVA再学不好就吃翔(part97)--抛出异常
  8. pyqt5 不报错退出_Python学习之旅:使用virtualenv创建Python环境及PyQT5环境配置
  9. 腾讯回应“QQ 冻结”;高德上线“家人地图”惹争议;Linux 内核讨论引入 Rust 代码| 极客头条...
  10. [转载] 的士速递4
  11. vue+node全栈移动商城【8】-vant新建注册页面
  12. 机器学习教程之语义分割入门教程
  13. Ubuntu安装和常用软件
  14. 互联网行业,常见含金量高的证书,看看你有几个?
  15. 矩形已知三个点的坐标,求第四个点的坐标
  16. win10cmd计算机管理界面,win10系统如何CMD中进行电脑关机/重启
  17. 旷视科技前端实习生一二面总结
  18. 字母全排列——递归方法
  19. wordpress mysql 密码重置_WordPress登录密码找回办法之修改数据库篇 | Wopus
  20. 根据光时域反射仪原理飞凌提供专业性的应用方案

热门文章

  1. iOS开发值苹果手机各种尺寸详细表以及iPhoneX、iPhoneXS、iPhoneXR、iPhoneXSMax屏幕适配
  2. from表单的作用、组成和用法
  3. 2016年北京邮电大学计算机考研机试试题及答案
  4. 手把手教你搭建一台永久运行的个人服务器
  5. SDRAM、DDR2、DDR3内存频率:核心频率,工作频率,等效频率
  6. 树莓派+超声波模块测距
  7. ADB投屏_手机无需安装客户端的【安卓投屏】
  8. excel两个表格数据对比_表格技巧—Excel表格两列数据合并
  9. 抖音热门音乐整理合集歌曲打包分享
  10. C++实现 利用前序序列和中序序列构建二叉树