標籤:
在 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,\s section,\s s section,\paragraph,\s paragraph等;
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 ;在設定 s section 格式,未採用置中,而是採用預設的居左,另外將標題的字型大小也降了一級( \large )。 label 參數將標題的標籤設定為 “第 xxx 章”格式。 sep 參數設定標籤與標題內容之間以一個字(1em)的寬度為間隔。以上設定的章標題效果如所示:
如果為上面設定章標題的命令添加一個 shape 參數 “display”,如下:
\titleformat{\chapter}[display]{\Huge\bfseries}{第\,\thechapter\,章}{1em}{}
這樣設定後的章標題效果如所示:
只要弄明白了 \titleformat 用法,基本上可以實現 xelatex 排版時將文檔的章區段標頭修改為符合中文閱讀習慣的格式。另外,可以在這裡瞭解titlesec的更詳細的用法。
使用 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\,章\q? #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\small\thesection\q? #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
LaTeX中titlesec宏包的使用