-
Notifications
You must be signed in to change notification settings - Fork 1
/
index-cnart.qmd
428 lines (304 loc) · 13.7 KB
/
index-cnart.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
---
title: "SunQuarTeX-cnart 测试文档"
subtitle: "这是副标题"
author:
- "sun123zxy"
- "佚名"
date: "2022/12/07"
date-modified: "2024/08/23"
abstract: "使用 Quarto Markdown 语法,支持输出至 HTML、PDF/LaTeX、MS Word 等多种格式的中文学术写作工具,覆盖交叉引用、插图绘制、定理系统等多种功能."
bibliography: index.bib
lang: zh
number-sections: true
format:
html:
other-links:
- text: NASA Open Data
href: https://data.nasa.gov/ # need specify resource metadata for attatched files
pdf:
toc: true
docx: default
---
## 前言
具体使用方法参见 [sun123zxy/sunquartex](https://github.com/sun123zxy/sunquartex).
## 文章结构测试
这一节测试文章结构.
### 文章分节
非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
#### 文章分分节 {#sec-test}
Quarto 支持交叉引用.比如这一节的标题就已经被打上了标签.
##### 分分分节
本节中我们测试交叉引用 [@sec-test].
###### 分分分分节
这是最小的一级了.
## 图片、表格、列表测试
这是 Quarto 的图标.
![这是一张插图](index-quarto.png){#fig-quarto}
交叉引用 [@fig-quarto] 当然也是可以的.
这是一个紧凑列表.
- 自反性.
- 反对称性一个和非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
- 传递性.
这是一个宽松列表.
- 自反性.
- 反对称性一个和非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
还多加了一段.
- 传递性.
这是一个定义列表.
自反性
: $a \sim a$
反对称性
: $a \leq b \land b \leq a \implies a=b$
传递性
: $a \leq b \land b \leq c \implies a \leq c$
当然也可以使用 Markdown 表格.例如 [@tbl-cartesian-unsolved].
多表格并列.加上 [@tbl-power-unsolved],它们共同组成了 [@tbl-panel-unsolved].
:::{#tbl-panel-unsolved layout-ncol=2}
|||||
|:-:|:-:|:-:|:-:|
| $L_i \times C_j$ | $2$ | $\mathbb N$ | $\mathbb R$ |
| $2$ | $4$ | $\mathbb N$ | $\mathbb R$ |
| $\mathbb N$ | $\mathbb N$ | $\mathbb N$ | ? |
| $\mathbb R$ | $\mathbb R$ | ? | $\mathbb R$ |
:笛卡尔积 {#tbl-cartesian-unsolved}
|||||
|:-:|:-:|:-:|:-:|
|$L_i^{C_j}$ | $2$ | $\mathbb N$ | $\mathbb R$ |
|$2$ | $4$ | $\mathbb R$ | $2^{\mathbb R}$ |
|$\mathbb N$ | $\mathbb N$ | ? | ? |
|$\mathbb R$ | $\mathbb R$ | ? | ? |
:集合幂 {#tbl-power-unsolved}
相关集合的势(不完整版)
:::
## 数学公式、定理系统测试
这一节我们测试数学相关内容.直接在源文件中写 raw LaTeX 就可声明公式所需的宏定义.由于 `\DeclareMathOperator` 只能在 LaTeX 的导言区使用,这里我们用 `\newcommand` + `\operatorname` 的方式替代.
\newcommand{\ran}{\operatorname{ran}}
下面的公式使用了上面定义的 macro.
$$
\ran A := \{ y \mid (x,y) \in A \}
$$
两个集合 $A, B$ 的笛卡尔积定义为
$$
A \times B = \{\langle x,y \rangle \mid x \in A \land y \in B \}
$$
显然,笛卡尔积不满足交换律和结合律. 在势的视角下,它的表现如何呢?
:::{#thm-cartesian-preserve}
## 笛卡尔积的保势性
这是一个有 caption 的定理.
$$
A \preccurlyeq C \land B \preccurlyeq D \implies A \times B \preccurlyeq C \times D
$$
:::
:::{.proof}
建立单射
$$
\begin{aligned}
\varphi: A \times B &\to C \times D \\
\langle x,y \rangle &\mapsto \langle f(x), g(y) \rangle
\end{aligned}
$$
即可,其中 $f$ 和 $g$ 是由 $A \preccurlyeq C$ 和 $B \preccurlyeq D$ 确定的单射.
:::
:::{#cor-random}
等势意义下可用等势的集合替换参与笛卡尔积运算的集合,即
$$
A \approx C \land B \approx D \implies A \times B \approx C \times D
$$
这是一个没有 caption 的定理.
:::
:::{#exm-rtimesn}
证明
$$
\mathbb R \times \mathbb N \approx \mathbb N \times \mathbb R \approx \mathbb R
$$
:::
:::{.proof}
利用 [@thm-cartesian-preserve] 对 $\mathbb R \times 2$ 和 $\mathbb R \times \mathbb R$ 夹逼,立刻得到
$$
\mathbb R \approx \mathbb R \times 2 \preccurlyeq \mathbb R \times \mathbb N \preccurlyeq \mathbb R \times \mathbb R \approx \mathbb R
\implies \mathbb R \times \mathbb N \approx \mathbb N \times \mathbb R \approx \mathbb R
$$
:::
:::{.solution}
这是一个解.
:::
:::{.remark}
这是一个注记.
:::
## 数据可视化(Table, Figure & Diagram)
Quarto 的另一大卖点.
```{python}
#| label: fig-polar
#| fig-cap: "A line plot on a polar axis"
import numpy as np
import matplotlib.pyplot as plt
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
fig, ax = plt.subplots(
subplot_kw = {'projection': 'polar'}
)
fig.patch.set_alpha(0)
ax.patch.set_alpha(0)
ax.plot(theta, r)
ax.set_rticks([0.5, 1, 1.5, 2])
ax.grid(True)
plt.show()
```
交叉引用 [@fig-polar] 当然也是可以的.
这里再测试一些较复杂的并列效果.([@tbl-light-on], [@tbl-light-on-1], [@tbl-light-on-2], [@fig-light-on], [@fig-light-on-1], [@fig-light-on-2])
```{python}
import numpy as np
import math
from IPython.display import Markdown, display
from tabulate import tabulate
import matplotlib.pyplot as plt
R = np.array([0,100,200,300,400,500,600,700,800,900,1000,
1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,
1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,
1300,1400,1500,2000,4000,math.inf])
U = np.array([24.2E-3, 0.386,0.747,1.104,1.460,1.813,2.16,2.51,2.86,3.19,3.48,
3.70,3.75,3.77,3.78,3.80,3.81,3.83,3.84,3.85,3.86,
3.87,3.90,3.92,3.93,3.94,3.95,3.95,3.96,3.97,3.98,
3.99,4.08,4.16,4.39,4.66,4.85])
I = np.array([3.6,3.6,3.6,3.6,3.6,3.5,3.5,3.5,3.5,3.5,3.4,
3.3,3.4,3.4,3.4,3.4,3.3,3.3,3.3,3.3,3.3,
3.2,3.2,3.2,3.2,3.2,3.2,3.2,3.1,3.1,3.1,
3.0,2.9,2.7,2.2,1.130,47.7E-3])
P = U*I
```
```{python}
#| label: tbl-light-on
#| tbl-cap: 太阳能电池的负载特性
#| tbl-subcap:
#| - "(粗)"
#| - "(细)"
#| layout-ncol: 2
table = [[R[i], U[i], I[i], P[i]] for i in list(range(0, 11)) + [11,21,31,32,33,34,35,36]]
display(Markdown(tabulate(table, headers=["R (Ω)", "U (V)", "I (mA)", "P (mW)"])))
table = [[R[i], U[i], I[i], P[i]] for i in range(12, 31)]
display(Markdown(tabulate(table, headers=["R (Ω)", "U (V)", "I (mA)", "P (mW)"])))
```
```{python}
#| label: fig-light-on
#| fig-cap: 太阳能电池的负载特性
#| fig-subcap:
#| - 输出电流与电压关系曲线
#| - 输出功率与负载电阻关系曲线
#| layout-ncol: 2
fig, ax = plt.subplots()
fig.patch.set_alpha(0)
ax.patch.set_alpha(0)
ax.set_xlabel("U (V)")
ax.set_ylabel("I (mA)")
ax.plot(U, I, marker="o")
ax.grid(True)
ax.set_xlim(0)
ax.set_ylim(0)
plt.show()
fig, ax = plt.subplots()
fig.patch.set_alpha(0)
ax.patch.set_alpha(0)
ax.set_xlabel("R (Ω)")
ax.set_ylabel("P (mW)")
ax.plot(R, P, marker="o")
ax.grid(True)
ax.set_xlim((0, 2000))
ax.set_ylim(0)
plt.show()
```
## Diagrams
Quarto 原生支持使用 GraphViz 或 Mermaid 绘制有向图或流程图.我们还额外支持 TikZ / `tikzcd` 的渲染!
:::{#fig-tikzcd-han}
```{tikz}
\begin{tikzcd}
& {\mathbb C[x]} & \text{离散 Fourier 变换} & \mathbb C^{\mathbb C} \\
f(x) & \sum_{i=0}^{n-1} a_i x^i \arrow[rr, "\operatorname{DFT}"] \arrow[d, dotted] & & (f(\omega_k))_{k=0}^{n-1} \arrow[d] \\
(fg)(x) & \sum_{k=0}^{n-1} x^k \sum_{i+j = k} a_i b_j & & (f(\omega_n^k)g(\omega_n^k))_{k=0}^{n-1} \arrow[ll, "\operatorname{DFT^{-1}}"'] \\
g(x) & \sum_{j=0}^{n-1} b_j x^j \arrow[rr, "\operatorname{DFT}"] \arrow[u, dotted] & & (g(\omega_k))_{k=0}^{n-1} \arrow[u]
\end{tikzcd}
```
带中文的 tikzcd 测试图片
:::
:::{#fig-tikzcd-quiver}
```{tikz}
% https://q.uiver.app/#q=WzAsNSxbMiwwLCJBIl0sWzAsMCwiQiJdLFszLDAsIlxccmlnaHRzcXVpZ2Fycm93Il0sWzYsMCwiQSJdLFs0LDAsIkIiXSxbMCwxLCJnIiwxXSxbMCwxLCJmIiwwLHsiY3VydmUiOi01fV0sWzAsMSwiaCIsMix7ImN1cnZlIjo1fV0sWzMsNCwiaCIsMix7ImN1cnZlIjo1fV0sWzMsNCwiZiIsMCx7ImN1cnZlIjotNX1dLFs2LDUsIlxcYWxwaGEiLDIseyJzaG9ydGVuIjp7InNvdXJjZSI6MjAsInRhcmdldCI6MjB9fV0sWzUsNywiXFxiZXRhIiwyLHsic2hvcnRlbiI6eyJzb3VyY2UiOjIwLCJ0YXJnZXQiOjIwfX1dLFs5LDgsIlxcYmV0YSBcXGNpcmNfMSBcXGFscGhhIiwyLHsic2hvcnRlbiI6eyJzb3VyY2UiOjIwLCJ0YXJnZXQiOjIwfX1dXQ==
\begin{tikzcd}
B && A & \rightsquigarrow & B && A
\arrow[""{name=0, anchor=center, inner sep=0}, "g"{description}, from=1-3, to=1-1]
\arrow[""{name=1, anchor=center, inner sep=0}, "f", curve={height=-30pt}, from=1-3, to=1-1]
\arrow[""{name=2, anchor=center, inner sep=0}, "h"', curve={height=30pt}, from=1-3, to=1-1]
\arrow[""{name=3, anchor=center, inner sep=0}, "h"', curve={height=30pt}, from=1-7, to=1-5]
\arrow[""{name=4, anchor=center, inner sep=0}, "f", curve={height=-30pt}, from=1-7, to=1-5]
\arrow["\alpha"', shorten <=4pt, shorten >=4pt, Rightarrow, from=1, to=0]
\arrow["\beta"', shorten <=4pt, shorten >=4pt, Rightarrow, from=0, to=2]
\arrow["{\beta \circ_1 \alpha}"', shorten <=8pt, shorten >=8pt, Rightarrow, from=4, to=3]
\end{tikzcd}
```
quiver 风格的 tikzcd 测试图片
:::
:::{#fig-tikzcd-another}
```{tikz}
\begin{tikzcd}
{R[x]} \arrow[rr, "\varphi"] \arrow[d] & & R^C \\
{R[x] / \left( \prod_{c \in C} (x-c) \right)} \arrow[rru, "\bar \varphi", dashed] & &
\end{tikzcd}
```
小心多 SVG 可能产生的样式冲突
:::
## Layout
如 [Quarto - Article Layout](https://quarto.org/docs/authoring/article-layout.html) 所述,有时可让文章某些部分超出常规的宽度限制.此功能主要在 HTML 中使用,PDF 中部分生效,其它格式不生效.
:::{.column-page}
| $n$ 个球 | $r$ 个盒 | 空盒 | 递推或封闭形式 | 生成函数 | 备注 |
|:-:|:-:|:-:|:--:|:--:|:--:|
| 有标号 | 无标号 | 不允许 | $${n \brace r} = r {n-1 \brace r} + {n-1 \brace r-1}$$ | $$\mathrm{EGF}(x)=\frac {(e^x - 1)^r}{r!}$$ | 第二类 Stirling 数 |
:::
## 代码块和引用
下面是代码块.
```python
import numpy as np
import matplotlib.pyplot as plt
r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r
fig, ax = plt.subplots(
subplot_kw = {'projection': 'polar'}
)
ax.plot(theta, r)
ax.set_rticks([0.5, 1, 1.5, 2])
ax.grid(True)
plt.show()
```
下面是引用块和一个非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
> 这是一个引用块和一个非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
## HTML 专用测试
目前暂未处理 LaTeX/PDF 格式的 callout,MS Word 格式可兼容但效果不佳.本节后续内容将不会在 LaTeX/PDF 格式下被渲染.
:::::{.content-hidden when-format="pdf"}
### Callouts
Quarto 具有 5 种 callout 类型:`note`,`warning`,`important`,`tip`,和 `caution`.
:::{.callout-note}
普通的 note callout.
:::
:::{.callout-warning}
这是 warning callout 和一个和非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
:::
这是两个 callout 中间的一个段落.
:::{.callout-important}
这是 important callout.
:::
:::{.callout-tip}
## 有 caption 的 callout
这是有 caption 的 callout.
:::
:::{.callout-caution collapse="true"}
## 可折叠的 callout
开启 collapse 的可折叠 caution callout.
:::
:::{.callout-caution appearance="simple"}
simple 风格的 callout 和一个和非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
:::
:::{.callout-caution appearance="minimal"}
minimal 风格的 callout 和一个和非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的句子.
:::
:::::
## 引用、脚注测试
这是一个脚注^[参见 [Quarto - Citations & Footnotes](https://quarto.org/docs/authoring/footnotes-and-citations.html)].
人脸识别是以人面部特征作为识别个体身份的一种个体生物特征识别方法 [@define].……人脸识别的研究最早可追溯到上世纪 60 年代,Bledsoe and Chan 研究了编程计算机识别人脸的方法[@history].随后,萌芽期的人脸识别技术经历多轮蜕变,在发展中逐渐完善.然而,人脸识别的主要难点在于不同个体的人脸结构并无大异,而同一个体的人脸在不同表情、年龄、妆饰、光照等干扰因素下又往往差异显著[@technical],这要求人脸识别技术既要克服类内因素的干扰,同时又要加强类间差距的显著性,而早期人脸识别方法关注人脸几何特征,识别效果不尽人意.为此,以 Eigenfaces[@eigenfaces] 为代表的子空间学习识别方法和 Gabor[@gabor]、LBP[@lbp] 等局部特征分析的滤波器提取方法在各自领域都有所突破.2014 年,应用新兴的深度卷积神经网络技术,DeepFace[@deepface] 横空出世,以 97.35% 的 LFW 基准数据集识别准确率重塑了人脸识别领域的研究格局.随后,人脸识别技术迎来爆发式增长,并逐渐走进人们的日常生活之中.……个体层面,要加强公众的权利意识,塑造个人的“数字理性”[@guochunzhen].