贴一个kaobook的仓库地址,以及国内大佬魔改的支持中文的kaobook模板
不信这玩意很好看?上图!味大,无需多盐!
这是我用Google Gemini生成的一些特殊操作的文档,翻起来方便。
如果你要看原文档,作者的github仓库里有一份,或者这个也是:
主要功能及特点
1. 页面布局 (Page Layout)
- 1.5栏布局: kaobook 采用 1.5 栏布局,正文宽度缩减,为页边空白提供空间。
wide
和margin
布局:\pagelayout{wide}
内容占据整个页面宽度;\pagelayout{margin}
启用页边空白。- 自定义页边空白: 通过重定义
\marginlayout
命令微调页边空白和正文的宽度以及它们之间的间距。 widepar
环境: 使用\begin{widepar} ... \end{widepar}
使段落占据整个页面宽度。
2. 章节标题 (Chapter Headings)
plain
,kao
,bar
,lines
样式: 使用\setchapterstyle{style_name}
选择样式。plain
:标准 LaTeX 样式。kao
:章节名称、横线和页边空白处的章节编号。bar
:页面顶部图片,标题位于方框中,配合\setchapterimage[height]{image_path}
使用。lines
:标题由两条水平线包围,章节编号位于标题上方。
setchapterimage[height]{image_path}
: 设置章节标题图片,并自动将标题样式设置为bar
。
3. 页眉页脚 (Headers & Footers)
scrheadings
和plain.scrheadings
样式:\pagestyle{style_name}
切换样式。scrheadings
:常规页面,页眉显示章节和节的名称 (两侧模式下交替显示)。plain.scrheadings
:标题页和前置部分,页眉页脚均为空。
4. 目录 (Table of Contents)
- 自定义目录项: 在
style/style.sty
中注释相应的行来控制目录项的显示。 margintoc[offset]
: 在页边空白处添加小型目录,offset
控制垂直偏移。\setcounter{margintocdepth}{\sectiontocdepth}
: 只在 margintoc 中显示 section 级别。\section[toc-title]{text-title}[margintoc-title]
: 分别设置正文、主目录和页边目录的标题。
5. 纸张尺寸 (Paper Size)
- 类选项:
\documentclass[papersize]{kaobook}
,例如a4paper
,b5paper
,smallpocketpaper
等。 参考layout.tex
中的表格了解支持的纸张尺寸。
6. 页边文本 (Margin Text)
sidenote[mark][offset]{text}
: 添加 带编号 的旁注。mark
自定义标记,offset
控制垂直偏移 (可以是长度或baselineskip
的倍数)。 例如:\sidenote{一个旁注}
,\sidenote[§][*-2]{另一个旁注}
。marginnote[offset]{text}
: 添加 不带编号 的页边注释。offset
控制垂直偏移。 例如:\marginnote{一条页边注释}
,\marginnote[*1]{另一条页边注释}
。
7. 页边图表 (Margin Figs/Tabs)
marginfigure[offset]
环境: 在页边空白处放置图表,offset
控制垂直偏移。 例如:\begin{marginfigure}[-1cm] ... \end{marginfigure}
margintable[offset]
环境: 在页边空白处放置表格,offset
控制垂直偏移。 例如:\begin{margintable}[*2] ... \end{margintable}
8. marginlisting[offset]
环境
- 在页边空白处放置代码片段,
offset
控制垂直偏移。 - 使用
\caption
添加标题,但标题和代码之间的间距需要手动调整。
9. 图表和表格 (Figures and Tables)
- 标准图表: 使用标准的
figure
和table
环境,标题会自动放置在页边空白。 - 超宽图表 (Wide Figures and Tables): 使用
figure*
和table*
环境,并使用h!
放置说明符。图表会占据整个页面的宽度,标题也会延伸到页边空白。
\begin{figure*}[h!]
\centering
\includegraphics[width=\textwidth]{my_wide_figure}
\caption{这是一个超宽图表。}
\labfig{fig:wide}
\end{figure*}
\begin{table*}[h!]
\centering
\caption{这是一个超宽表格。}
\begin{tabular}{ccc}
\toprule
A & B & C \\
\midrule
1 & 2 & 3 \\
\bottomrule
\end{tabular}
\labtab{tab:wide}
\end{table*}
longtable
: 用于创建跨页的表格。标题默认位于表格下方,并且宽度与正文相同。如果需要让标题也延伸到页边空白,可以使用\floatsetup
命令:
\floatsetup[longtable]{margins=centering,LTcapwidth=table} % 在 longtable 之前添加
\begin{longtable}{ccc}
...
\end{longtable}
\floatsetup[longtable]{margins=raggedright,LTcapwidth=\textwidth} % 在 longtable 之后添加
10. 引用 (References)
kaobiblio
包:\usepackage[style=style_name, backend=bibtex/biber, addspace=true/false, linkeverything=true/false]{styles/kaobiblio}
.addspace
控制是否在引用标记前添加空格,linkeverything
控制是否将作者姓名也设置为超链接。sidecite{keys}
: 在页边空白处添加引用。\renewcommand{\formatmargincitation}[1]{...}
: 自定义页边空白处引用的格式,可以使用\citeauthor*
、\citeyear
、\citetitle
等命令。
11. 术语表和索引 (Glossaries and Indices)
glossaries
包:\usepackage[toc]{glossaries}
创建术语表和缩略语列表 (\gls{entry}
,\acrfull{entry}
,\acrshort{entry}
) 。 需要运行makeglossaries
命令。imakeidx
包: 创建索引 (\index{entry}
)。nomencl
包: 创建术语表 (\nomenclature{entry}
,\printnomenclature
)。 需要运行makeindex
命令。
12. 超链接 (Hyperreferences)
kaobook 提供了 kaorefs
包,其中包含一些便捷的命令,用于创建和管理超链接:
lab...
命令: 用于标记各种元素,方便后续引用。例如:\labch{chapter-label}
:标记章节\labsec{section-label}
:标记节\labfig{figure-label}
:标记图表\labtab{table-label}
:标记表格
引用命令: 提供了四种引用样式:
ref...
:纯数字引用,例如\refch{chapter-label}
。vref...
:使用varioref
包的样式引用,例如\vrefch{chapter-label}
。nref...
:引用名称,例如\nrefch{chapter-label}
。fref...
:完整引用,例如\frefch{chapter-label}
。
示例:
\chapter{第一章}\labch{chap:one}
\section{第一节}\labsec{sec:one}
在\refch{chap:one}中,我们讨论了...\vrefch{chap:one}详细介绍了...
在\nrefsec{sec:one}中,我们将会... \frefsec{sec:one}包含了...
13. 盒子和自定义环境 (Boxes & Custom Environments)
kaobox[frametitle=title]
环境: 创建一个带标题的盒子。kaocounter
环境: 创建一个带编号的盒子。\usepackage[framed, background=color, ...]{kaotheorems}
: 控制定理环境的样式,framed
添加背景框,background
设置背景颜色。kaobox[frametitle=title]
: 创建一个带标题的盒子。
\begin{kaobox}[frametitle=提示]
这是一些重要的提示信息。
\end{kaobox}
kaocounter
: 创建一个带编号的盒子。
\begin{kaocounter}
这是第一个带编号的盒子。
\end{kaocounter}
\begin{kaocounter}
这是第二个带编号的盒子。
\end{kaocounter}
你可以通过修改 style/environments.sty
文件来创建和修改自定义环境,例如添加新的带框的环境、修改现有环境的样式等。
14. 定理环境 (Theorems)
definition
,theorem
,proposition
,lemma
,corollary
,proof
,example
,remark
,exercise
环境。
定理环境 (Theorems)
kaobook 提供了如下预定义的定理环境:
definition
:定义theorem
:定理proposition
:命题lemma
:引理corollary
:推论proof
:证明example
:示例remark
:备注exercise
:练习
这些环境的使用方法与标准 LaTeX 类似,例如:
\begin{definition}[开集]
设 $(X, d)$ 为度量空间。子集 $U \subset X$ 是开集,如果对于任意 $x \in U$,存在 $r > 0$ 使得 $B(x, r) \subset U$。
\end{definition}
\begin{theorem}[重要定理]
这是一个重要的定理。
\end{theorem}
\begin{proof}
这是定理的证明。
\end{proof}
kaotheorems 样式包
kaotheorems
包控制定理环境的样式。通过传递不同的选项,可以实现不同的效果:
framed
选项:为定理环境添加背景框。background=color
选项:设置背景颜色,例如background=yellow!10
。- 还可以单独设置每个环境的背景颜色,例如
definitionbackground=green!10
。
示例:
\usepackage[framed, background=yellow!10, definitionbackground=green!10]{kaotheorems}