TheUnknownThing的技术分享站

Stay Hungry, Stay Foolish

(推荐)超级好看的LaTeX模板-kaobook

默认分类 0 评 38 阅读

贴一个kaobook的仓库地址,以及国内大佬魔改的支持中文的kaobook模板

不信这玩意很好看?上图!味大,无需多盐!
绝绝子

这是我用Google Gemini生成的一些特殊操作的文档,翻起来方便。
如果你要看原文档,作者的github仓库里有一份,或者这个也是:

文档链接

主要功能及特点

1. 页面布局 (Page Layout)

  • 1.5栏布局: kaobook 采用 1.5 栏布局,正文宽度缩减,为页边空白提供空间。
  • widemargin 布局: \pagelayout{wide} 内容占据整个页面宽度;\pagelayout{margin} 启用页边空白。
  • 自定义页边空白: 通过重定义 \marginlayout 命令微调页边空白和正文的宽度以及它们之间的间距。
  • widepar 环境: 使用 \begin{widepar} ... \end{widepar} 使段落占据整个页面宽度。

2. 章节标题 (Chapter Headings)

  • plainkaobarlines 样式: 使用 \setchapterstyle{style_name} 选择样式。

    • plain:标准 LaTeX 样式。
    • kao:章节名称、横线和页边空白处的章节编号。
    • bar:页面顶部图片,标题位于方框中,配合 \setchapterimage[height]{image_path} 使用。
    • lines:标题由两条水平线包围,章节编号位于标题上方。
  • setchapterimage[height]{image_path}: 设置章节标题图片,并自动将标题样式设置为 bar

3. 页眉页脚 (Headers & Footers)

  • scrheadingsplain.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},例如 a4paperb5papersmallpocketpaper 等。 参考 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)

  • 标准图表: 使用标准的 figuretable 环境,标题会自动放置在页边空白。
  • 超宽图表 (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)

  • definitiontheorempropositionlemmacorollaryproofexampleremarkexercise 环境。

定理环境 (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}
Caddy配置Typecho—Revisited
快来做第一个评论的人吧~

:D 获取中...