加载中…
个人资料
LaTeX_Fun
LaTeX_Fun
  • 博客等级:
  • 博客积分:0
  • 博客访问:6,957,422
  • 关注人气:2,402
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

LaTeX技巧356:修改Latex默认section,subsection样式

(2010-09-27 22:51:31)
标签:

latex

节标题

格式修改

titlesec

宏包使用技巧

分类: 页面设置

QQ群:91940767/145316219/141877998/80300084/194770436
淘宝店:http://latexstudio.taobao.com
技巧续篇:http://latexstudio.net/
常见数学公式问题集下载

使用:

\makeatletter
\renewcommand\section{\@startsection{section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\normalfont\normalsize\CJKfamily{hei}}}
\makeatother

说明:
1、\makeatletter,是因为renewcommand中使用了带@的命令,此类命令只能用于package/class中,如果用于正文中,要用\makeatletter和\makeatother引起来;
2、\@startsection命令参数可见
  \@startsection {NAME}{LEVEL}{INDENT}{BEFORESKIP}{AFTERSKIP}{STYLE}
  NAME  表示所定义的节标题的名称(不要带反斜杠),比如section和subsection。
  LEVEL      是一个数字,可以定义节标题的命令层次。这个数决定了定义的节标题是否编号(若是小于等于   secnumdepth则被编号)也决定了标题是否会被编进目录(若是小于等于tocdepth则被编号)。
  INDENT     : 定义节标题到版心左边的距离。此度量若是负数则标题进入边空。
  BEFORESKIP: 是一个长度,其绝对值表示标题到上文之间的距离。若是此距离为负数,则标题后面的第一个段落不缩进。此度量最好是一个可以被伸长和缩短的长度。另外标题总是另起一段的。因而parskip已被加入到标题与上下文的距离。
  AFTERSKIP :是一个长度,其绝对值表示独立显示的标题到下文之间的垂直间距或者是段内显示的标题到下文之间的距离。此度量若是负的,则定义的标题是段内显示的。对于独立显示的标题,parskip也已被加进标题与下文的距离。 STYLE :决定标题的内容形式。可以是任意影响文本排版结构的命令如加入尺寸\huge \large \bfseries 对齐命令等

beforeskip/afterskip弹性距离默认为:
以section为例, beforeskip {-3.5ex plus -1ex minus -.2ex} 表示最大-4.5ex, 最小-3.7ex.

通常我们的不习惯修改内部命令。
我们经常

使用 titlesec 宏包设置标题格式

在 xelatex 中使用 \usepackage 指令使用 titlesec 宏包时,可以指定一些格式选项,如下: \usepackage[center]{titlesec} 其中 center 可使标题居中,还可设为 raggedleft (居左,默认), raggedright (居右)。 标题由标签与标题内容构成,其格式通常在 xelatex 文档导言区通过 titlesec 宏包提供的指令 \titleformat 进行设定。
\titleformat 指令用法如下:
\titleformat{command}[shape]{format}{label}{sep}{before}[after]

各参数含义如下:
command 是要重新定义的各种标题命令,比如 \part,\chapter,\section,\subsection,\subsubsection,\paragraph,\subparagraph等;
shape 是用来设定段落形状的,可选的参数有 hang 、 block 、 display 等,详见 titlesec 文档,位于: $TEXLIVE/$VERSION/texmf-dist/doc/latex/titlesec format
用于定义标题外观,比如使标题居中、字体加粗等;
label 用于定义定义标题的标签,就是标题内容前面的标号;
sep 定义标题的标签与标题内容之间的间隔距离。
before 用于在标题内容前再加些内容;
after 用于在标题内容后再加些内容。
这个指令看似很复杂,但在实际应用中,通常只使用它的几个参数而已。比如,要把文档中的章标题格式由默认的 “Chapter xxx 标题内容” 修改为 “第 xxx 章 标题内容” 格式,如此这般即可:
\titleformat{\chapter}{\centering\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
其 中, shape 、 before 、 after 参 数 都 被 省 略 掉 了。 format 参 数 将章标题设置为居中( \centering )显示、字号为 \Huge,字体被加粗显示 \bfseries ;在设置 subsection 格式,未采用居中,而是采用默认的居左,另外将标题的字号也降了一级( \large )。 label 参数将标题的标签设置为 “第 xxx 章”格式。 sep 参数设置标签与标题内容之间以一个字(1em)的宽度为间隔。以上设置的章标题效果如下图所示:
LaTeX技巧356:修改Latex默认section,subsection样式


如果为上面设置章标题的命令添加一个 shape 参数 “display”,如下:
\titleformat{\chapter}[display]{\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
这样设置后的章标题效果如下图所示。
LaTeX技巧356:修改Latex默认section,subsection样式
只要弄明白了 \titleformat 用法,基本上可以实现 xelatex 排版时将文档的章节标题修改为符合中文阅读习惯的格式。
使用 fancyhdr 设置页眉页脚
在 xelatex 文档导言区使用以下指令可载入宏包 fancyhdr,并将页眉页脚风格设置为 fancy:
\usepackage{fancyhdr}
\pagestyle{fancy}
fancyhdr 宏包将页面分为奇数页(Odd page)和偶数页(Even page),将页眉与页脚各分为三个区域,分别称为左区(Left field)、中区(Center field)和右区(Right field)。这三个区域之间没有分界线,左区中的内容会左对齐在页眉或页脚的左边界,放在右区的内容会对齐在页眉或页脚的右边界,中区内容在整个页眉或 页脚区域内居中放置。各区之中的内容不可过长,以避免各区之间发生重叠现象。另外,在默认情况下会显示页眉线,宽度为 0.4pt;页脚线宽都为 0pt,意即不显示。
设置页眉的命令为 \fancyhead,设置页脚的命令为 \fancyfoot,其用法如下:
\fancyhead[选项参数] {内容}
\fancyfoot[选项参数] {内容}
\fancyhead 的选项参数页眉或页脚的区域与奇(偶)数页标记的组合,其中页眉(脚)区域用 L (左),C (中),R( 右) 表示,奇数页与偶数页分别用字母 O,E 表示。
下面来做一个例子,对于 book 格式的 xelatex 文档,让偶数右区域显示章标题,其左区域显示页码,中间区域为空;让奇数页的页眉左区域显示节标题,其右区域显示页码,其中间区域为空;页脚为空。这个可以在文档导言区中采用以下指令实现:

\renewcommand{\chaptermark}[1]{\markboth{\small 第\,\thechapter\,章\quad #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\small\thesection\quad #1}{}}

 

\fancyhf{}
\fancyhead[ER]{\leftmark}
\fancyhead[OL]{\rightmark}
\fancyhead[EL,OR]{$\cdot$\ \thepage\ $\cdot$}
\renewcommand{\headrulewidth}{0.4pt}

\fancyhf{} 命令可将已设或页眉页脚的默认设置清空。
重新定义了 \chaptermark 与 \sectionmark,这两个重定义一定要记住放在 \pagestyle{fancy}之后,因为在 fancyhdr 宏包中对这两个命令重新进行了定义,在 \pagestyle{fancy} 之后重定义它们就可将 fancyhdr 中的相应命令覆盖掉。
还 需要解释的是 \leftmark 与 \rightmark,它们分别表示页眉左区域内容与右区域内容。在 book 格式文档中,\leftmark 默认为当前的章标题,\rightmakr 默认为当前的节标题;对于 article 格式文档而言,\leftmark 表示当前节标题,\rightmark 表示当前小节标题。

后半部分选自:http://blog.wgzhao.com/2008/04/01/Titlesec-the-use-of-macro-package-set-up-the-title-format.html

0

阅读 评论 收藏 禁止转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有