Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion wiki/faq/autoref-name.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ tag:
https://github.com/BITNP/BIThesis/issues/38#issuecomment-631185830
-->

::: tip 也可换用 cleveref
如果`\autoref`不能满足需求,可换用[[pkg:cleveref]]的`\cref`,详见[如何使用 cleveref](./cleveref.md)。
:::

[[pkg:hyperref]]提供的`\autoref`可以在交叉引用时自动带上 figure, table, chapter 等名称。

- `\autoref`是给空格分词的语言准备的,按现在[[pkg:bithesis]]的实现,`\autoref{fig:sth}啊` ⇒ `图 1-1啊`,数字前有空格,数字后没空格。改为`\autoref{fig:sth} 啊`(⇒ `图 1-1 啊`)或再像下面那样定义`\figureautorefname`即可。
Expand All @@ -20,7 +24,6 @@ tag:

```latex
\usepackage{hyperref}
% https://bithesis.bitnp.net/faq/autoref-name.html
\def\chapterautorefname~#1\null{第~#1~章\null}
\def\sectionautorefname~#1\null{第~#1~节\null}
\def\subsectionautorefname~#1\null{第~#1~节\null}
Expand Down
79 changes: 79 additions & 0 deletions wiki/faq/cleveref.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
---
tag:
- package
- text
- bithesis
---

# 如何使用 cleveref 交叉引用?

<!-- https://github.com/BITNP/BIThesis/issues/593 -->

1. 在导言区**导入[[pkg:cleveref]]**

```latex
\usepackage{cleveref}
```

一般要在其之前导入[[pkg:cleveref]];不过对于[[pkg:bithesis]],模板已在最开始`\documentclass`处自动导入,无需重复。

2. **用`\label{…}`标记**要引用的内容

<!-- 复制 lshort-zh-cn -->

- 章节标题:在章节标题命令`\section`等之后紧接着使用。
- 图表标题:在图表标题命令`\caption`之后紧接着使用。
- 行间公式:单行公式在公式内任意位置使用;多行公式在每一行公式的任意位置使用。
- 有序列表:在`enumerate`环境的每个`\item`命令之后、下一个`\item`命令之前任意位置使用。
- 定理环境:在定理环境内部任意位置使用。

```latex
\section{章节标题} \label{sec:intro}

\begin{figure}[h]
……
\caption{图表标题} \label{fig:example}
\end{figure}
```

3. **用`\cref{…}`引用**

```latex
由\cref{sec:intro}的\cref{fig:param}、\cref{fig:result} 可验证\cref{eq:total}。
```

以上代码的结果类似`由第 1.2 节的图 3-4、图 3-5 可验证式(6-7)。`,其中编号会根据前后顺序、模板类型(本科或硕博)自动设置。

::: tip 🔍 数字与汉字间的空白
[[pkg:ctex]]会自动在数字与汉字间加些许空白,但`图 3-5 可验证`的`5 可`位于宏的边界处,不会自动加。如果您介意这一点,建议手动空一格。
:::

## 在同一处引用多项

```latex
\cref{eq:1,eq:2} % 式(1)和(2)
\cref{eq:1,eq:3,eq:4} % 式(1)、(3)和(4)

% 多个引用恰好连续时,会自动缩写
\cref{eq:1,eq:2,eq:3} % 式(1)至(3)
```

## 更改引用格式 {#customize}

可以参考[[texdoc:cleveref]]更改引用格式,下列几例。

在英文模式下更换用词:

```latex
\usepackage{cleveref}
\crefname{equation}{formula}{formulae}
```

完全重置格式,将 equation 全宽括号换成 ASCII 括号:

```latex
\usepackage{cleveref}
\crefformat{equation}{式~#2(#1)#3}
\crefrangeformat{equation}{式~#3(#1)#4 至~#5(#2)#6}
\crefmultiformat{equation}{式~#2(#1)#3}{和~#2(#1)#3}{、#2(#1)#3}{和~#2(#1)#3}
```