贡献者: addis; kahoyip; Giacomo; JierPeter; 零穹; _Eden_; Bohao Jiang; Siegfried
本文需要与 LaTeX 源码对照阅读,请使用在线编辑器打开 Sample.tex
。
文件开头可以用注释声明一些元数据:
keys 关键词1|关键词2|...
。
license 协议id
(协议类型详见 “小时百科创作协议”)。协议 id
有:Usr
(用户版权,无偿创作), Xiao
(小时科技版权,有偿创作),CCBY3
,CCBYSA3
,CCBY4
,CCBYSA4
,Copy
(转载,只读), Adap
(转载,可修改), GPL3
, MIT
,Pub
(公有领域)。
type 类型id
,其中 类型id
支持:Wiki
(类似于维基百科的条目,中立、全面、一般性的介绍),Tutor
(类似于教材的一节),Art
(学术论文或杂谈等),Map
(导航文章,介绍百科中的一章、一部分等,具有大量链接到其中的文章),Note
(类似于讲义、总结,把知识要点简要列出)。
% keys
,% license
,% type
三行注释必须紧接标题的注释,中间不能有空行,顺序不限。
接下来可以用 issue
环境列出当前所有存在的问题。支持的所有类型已在上方列出。
我们非常重视预备知识,几乎任何文章都需要预备知识。如果百科暂时没有所需文章,那么可以只列出标题不添加链接,并提供一些参考文献。一个文章可以有多个预备知识列表,默认读者看某个内容时,已经掌握了其上方所有列出的预备知识。在知识树中,每个节点代表一个预备列表到下一个之间的内容。预备知识的命令是 \pentry{}{}
,可以通过菜单上的 “插入预备知识” 按钮自动插入。\pentry{}{}
的第二个参数是该节点的 label,格式为 nod_节点id
。注意任何文章都有一个不出现在代码中的默认节点,label 为 nod_文章id
。同一篇文章的每个节点默认依赖上一个节点,默认节点依赖最后一个 \pentry{}{}
定义的节点。\pentry{}{}
中第一个参数中可以用 \nref{}
引用其他文章的节点,可以通过 “引用其他文章内容” 按钮中的 “点” 插入,若不填节点编号则引用整篇文章。
这是正文。
正文的任何地方可以用 \addTODO{}
命令插入未完成提示。
正文必须使用中文的括号,逗号,引号,冒号,分号,问号,感叹号,以及空心句号1,禁止使用英文标点。但为了打字方便,行间公式最后仍允许英文逗号和句号(例如 ~,
和 ~.
),且逗号后面需要有足够的空白(\quad
或者 \qquad
),例如
\end{equation}
之前加一个 ~
防止报错。严禁批量对所有公式加 ~
,小心被骂。公式中标点的用法参考本文。
像 “牛顿—莱布尼兹公式” 中的横线必须用中文单破折号。所有的标点符号前面不能有空格,后面尽量有空格。正文粗体如粗体。正文中禁止使用 \\
换行,以及 \noindent
,\phantom
等命令强制修改格式。
如果把 \footnote
加在一个名词或者短语后面,意思是对它们做注释。如果放在一个句号后面,就是对整句话做注释。
行内公式用 $...$
或者 \(...\)
,两边需要有空格,例如 $a^2+b^2=c^2$,后面有标点符号的除外。行间公式如
LaTeX 中各种符号的命令见官方对照表。
行间公式的 label(标签)必须要按照 文章标签_eq编号
的格式,只有需要引用的公式才加标签,标签编号无需和编译后的编号相同,保证标签不重复即可。图、表的标签分别把 eq
改成 fig
和 tab
即可,例题用 ex
,习题用 exe
。但凡是有 \caption
命令的,\label
需要紧接其后。事实上标签不建议手动添加,可以用菜单栏上的按钮在引用时同时自动插入 \label
和 \autoref
,详见编辑器使用说明。
行间公式如果不需要编号,可以用 $$...$$
或者 \[...\]
。
单个参数的命令若只有一个字符,那么不需要加花括号,例如 $\mathrm a$ 等效于 $\mathrm{a}$。如果参数是数字甚至也不需要空格,例如 $\frac12$。
公式中的空格从小到大如 $a\, b\; c\quad d\qquad e$。公式中三点省略号用 $\dots$,如果要强制在下方,用 $\ldots$。实部和虚部如 $ \operatorname{Re} [z], \operatorname{Im} [z]$。双重极限如
\lim
和 \sum
如果要在正上方或正下方写东西,需要加 \limits
,如 $\lim\limits_{x\to 0}$。但是 \limits
只能给算符使用,如果要对任意符号使用可以用 \underset
或者 \overset
,例如 $\underset{i \ge 0}{\bigcup}$。
上下方的花括号例如
\overbracket
和 \underbracket
。
如果要强制分式正常大小显示,用 \dfrac
命令,如果 \frac
后面只有两个字符的代码,可以写成如 \frac12
,\frac ab
,\frac1a
等。斜分数线后面若多于一个变量需要加括号,如 $ab/(cd)$。
行内分式如 $a/b$,不允许行内用立体分式。几何矢量如 $ \boldsymbol{\mathbf{a}} $,不要使用带箭头的矢量如 $\vec a$。
行间公式换行及对齐用 aligned 环境(可以选中一段公式代码然后按菜单的 “对齐” 按钮),注意该环境可嵌套。
用 \begin{enumerate}[resume]
来继续上一个 enumerate 的编号。
可变化尺寸的斜分数线如下
cases
环境,如
cases
环境里面的符号都是小尺寸的(与行内公式相同),且每行只能用一次 &
。若需要全尺寸公式可以用下文定义的 \leftgroup
命令。
反斜杠有两种形式:$\backslash$ 和 $\setminus$。前者在一般需要斜杠时用,而集合减法应该用后者。使用实例:$A\backslash B$,$A\setminus B$。
希腊字母如下
双线字母如下
MathJax 本身不支持 physics 宏包(更新:后来支持了),我们进行了一定的改进2。Physics 宏包的文档见这里,目前仅支持 Physics 宏包的以下命令。
绝对值如 $ \left\lvert y \right\rvert $(自动尺寸,如果不需要自动尺寸用 $ \left\lvert y \right\rvert $ 下同),范数如 $ \| x \| $,微分符号如 $ \,\mathrm{d}{x} $,可变尺寸的小中大括号可以用 \qty
,如
\vdot
不可省略,不要用 \cdot
),矢量叉乘如 $ \boldsymbol{\mathbf{A}} \boldsymbol\times \boldsymbol{\mathbf{B}} $。
常用三角函数和对数函数后面的小括号会自动改变尺寸(中括号不可以),若要给他们加幂,用中括号
导数和偏导可以用
*
,如 $ \partial^{2} f/\partial {x}^{2} $。
定积分求值如 $ \left. x^2 \right\rvert _0^1$(自动尺寸)。
对易算符如 $ \left[ \hat{A} , \hat{B} \right] $ 或 $ [{ \hat{A} },{ \hat{B} }] $,前者自动尺寸,后者强制小尺寸。泊松括号同理:$ \left\{\frac12, B\right\} $,$ \{\frac12, B\} $。
梯度散度旋度拉普拉斯如 $ \boldsymbol\nabla V$,$ \boldsymbol{\nabla}\boldsymbol{\cdot} \boldsymbol{\mathbf{A}} $,$ \boldsymbol{\nabla}\boldsymbol{\times} \boldsymbol{\mathbf{A}} $,$ \boldsymbol{\nabla}^2 V$。
狄拉克符号(加 *
号强制小尺寸)如 $ \left\langle a \right\rvert , \left\lvert b \right\rangle , \left\langle{a}\middle| a \right\rangle , \left\langle a \middle| b \right\rangle , \left\langle a \middle| Q \middle| b \right\rangle $。平均值(加 *
号强制小尺寸)如 $ \langle Q \rangle , \left\langle \psi \middle| Q \middle| \psi \right\rangle $。同理也有 $ |{a}\rangle\langle{b}| $,$ \left| a \right\rangle \left\langle b \right| $,$ \left| a \right\rangle \left\langle a \right| $。
amsCD 包只支持方形的交换图;示例
amsCD 包使用 CD
环境,其中使用 \\
换行,支持 7 种箭头:
3 种水平箭头,水平向右 @>>>
、水平向左 @<<<
和水平等于 @=
;
3 种竖直箭头,竖直向下 @VVV
、竖直向上 @AAA
和竖直等于 @=
;
以及水平竖直皆可的无箭头 @.
。
上下左右箭头支持标签 A @>{上标签}>{下标签}> B
最右边的右标签可能会和公式最后的标点重叠,需要特别注意。
小时百科和云笔记的模板的自定义的命令如下,如果不使用,要保证编译后效果相同。如果想新添加定义,请联系管理员。
引用公式和图表都统一使用 \autoref{标签}
命令,\autoref
和 \label
都无需手动插入,可以用在线编辑器菜单栏中的 “内部引用” 和 “外部引用” 按钮(实心和空心的双引号图标)。注意 \autoref{}
前面不加空格后面要加空格(后面是标点符号除外),例如式 2 。如果要引用其他文章中的公式,可以引用 “其他文章” 的式 1 也可以用 “式 1 ”,为了区分内部和外部引用 \upref
不能忽略。在 pdf 上,\upref{}
会显示为页码。
科学计数法如 $1.2 \times 10^{3} $ 或 $1.2 \times 10^{34} $,单位矢量如 $ \hat{\boldsymbol{\mathbf{a}}} $,自然对数底如 $ \mathrm{e} $,复数如 $u+ \mathrm{i} v$ 虚数单位不能用斜体 $i$,复共轭如 $z ^* $。
定义 \opn{}
和 \operatorname{}
等效。自定义的 operator 或者函数名(如 \sinc
相当于 \operatorname{sinc}
或者 \opn{sinc}
)有:\Arctan
, \sinc
,\erf
,\erfi
,\Im
,\Re
。
写量纲用 \Si{}
命令,如 $100 \,\mathrm{m/s^2} $,这个命令只能出现在公式环境内。这相当于 \mathrm{}
。
矩阵 $ \boldsymbol{\mathbf{A}} $,转置 $ \boldsymbol{\mathbf{A}} ^{\mathrm{T}} $,厄米共轭用 $ \boldsymbol{\mathbf{A}} ^\dagger $。常见的几种矩阵括号如
\mat
。
单独一个粗体的 $\nabla$ 用 $ \boldsymbol{\nabla} $。
自定义的 \leftgroup{}
命令,相当于 \left\{\begin{aligned}... \end{aligned}\right.
{
加上 aligned
环境
表格中若用 \dfrac
,需要在行首加上 \dfracH
命令。
量子力学算符如 $ \hat{a} $(一般可以不加,只有必要的时候加),矢量量子算符如 $ \hat{\boldsymbol{\mathbf{p}}} $(效果同 \uvec
)。
位图必须使用 png 格式,矢量图(推荐)必须以 pdf 和 svg 格式3放在 figures 文件夹中。文件名是文章 label 加下划线以及图片序号,如 da8815a7f79f2f52.pdf
。即使只有一张图片也要加上 _1
。生成 svg 时,字体一律用 outline,更多选项中保留 7 位小数,如果矢量图中包含位图,要把 Image Location 选成 embed。pdf 图片用于 latex 的 figure 环境,svg 图片用于 html 网页。图片宽度一律用 cm 为单位。注意当前图片最大尺寸只能是 14.25cm,对应 33 个汉字。这个比例在 pdf 和 html 中都必须保持一致,否则图中的文字大小可能会不协调。由于 pdf 每行字数只有 33 个,所以 html 中的图片不可能把页面占满。
引用图片如图 1 。在 figure
环境中,必须用 \caption{}
指定标题,\label{}
只能放在 caption 的后面,否则编号会出错。由于在 pdf 中图片是浮动的,避免使用 “上图”,“下图” 等词。
再来看一个表格,如表 1 。注意 \label
同样要放在 \caption
后面。
$x$ | ${10^{ - 1}}$ | ${10^{ - 2}}$ | ${10^{ - 3}}$ | ${10^{ - 4}}$ | ${10^{ - 5}}$ | ${10^{ - 6}}$ |
$(1 + x)^{1/x}$ | 2.59374 | 2.70481 | 2.71692 | 2.71815 | 2.71827 | 2.71828 |
定义如定义 1 。
引理如引理 1 。
定理如定理 1 。
推论如推论 1
例子如例 1 。
习题如习题 1 。
在行内显示代码用 \verb
命令。注意这个命令比较特殊,可以用任何两个相同的符号作为定界符(星号 *
除外),如 \verb?some|code?
会显示为 some|code
。注意定界符必须是代码中没有的字符。
自动高亮的代码块使用 lstlisting
环境(禁止用 \lstinputlisting
从文件输入)
s = 'abc'; % 一些评论
A =
1 1 -1 1 3
2 2 -2 1 7
1 1 0 2 3
2 2 -1 5 4
% 测试自定义关键字(必须是高亮)
matlabCTestKeyWord;
如果 lstlisting 标明了文件名(下划线需要用 \_
转义),代码文件夹中就会自动生成该文件。较长的代码文件必须含文件名,文件名需要反映代码的内容而不是与文章 label 同名。
% 验证二项式定理(非整数幂)
u = -3.5;
x = 0.6; % |x|<1 使级数收敛
N = 100; % 求和项数
Coeff = 1; % x^ii 项前面的系数
result = 1; % 求和结果
for ii = 1:N
Coeff = Coeff*(u-ii+1) / ii;
result = result + Coeff * x^(ii);
end
disp('直接计算结果为');
format long; % 显示全部小数位
disp((1+x)^u);
disp('求和结果为');
disp(result);
format short; % 恢复默认显示
% 测试自定义关键字(必须是高亮)
matlabTestKeyWord;
% 测试函数颜色(必须是黑色)
tan; cot; asin; acos; atan; arg; real; imag; sum;
mean; diff; floor; ceil; mod; sinh; cosh; round;
tanh; zeros; ones; rand; randn; eye; magic;
C++ 代码例如
template <class T, class T1, class T2,
MY_IF(is_scalar<T>() && is_scalar<T1>() && is_scalar<T2>())>
void Plus(T &v, const T1 &v1, const T2 &v2)
{ v = v1 + v2; }
Python 代码例如
def: fun1
return 'hello'
Mathematica 代码如
(* 定义库仑函数 *)
CoulombF[l_, η_, ρ_] := 2^l E^(-π η/2) \
Abs[Gamma[l + 1 + I η]]/(2 l + 1)! ρ^(l + 1) E^(-I ρ) \
Hypergeometric1F1[l + 1 - I η, 2 l + 2, 2 I ρ]
Julia 代码如
2^l *exp(-π η/2) (2 l + 1)! ρ^(l + 1) E^(-I ρ)
Makefile 代码如
goal:
g++ -O3 main.cpp -o main.x
LaTeX 代码如
\begin{equation}
a^2 + b^2 = c^2
\end{equation}
Bash 代码如
echo good > 123.txt
JavaScript 代码如
var a = 3
其他不支持高亮的代码都可以暂时用 none
语言,并注释实际的语言
abcde = 2^l E^(-π η/2)
正文中的 unicode 支持如 mäthμ≥≤,代码中的 unicode 支持如 mathμ≤
,mäthμ≥≤
,以及
mäthμ≥≤
目前整个百科公用一个参考文献列表的文章。文章中引用文献格式如 [1],引用缺失如 “地球是圆的\needCite”。但是由于 PhysWikiScan 还未实现该命令,目前还是应该使用脚注。
网址的超链接如小时百科。注意 \href
命令中的网址如果存在百分号,需要在前面加反斜杠,否则会被当做注释。另一种方法是,将其解码(url 中的百分号后面两个一定是 hex,表示 utf-8 的一个字节)。这里列举一个在线解码网站。
付费内容仅限百科,测试见 test.tex。用 \pay
和 \paid
包围付费内容即可,若首行需要分段则要在 \pay
后面空一行。编辑器预览显示会员版本,发布到 online
目录后显示非会员的版本。
1. ^ 《GB_T15834_2011 中华人民共和国国家标准标点符号用法》标准中允许科技文献中使用实心句号,但 GB_T15834_2011 版的新标准规定都用空心。
2. ^ 后台程序在把 tex 文件翻译成 html 页面时,把 physics 宏包或者我们自定义的命令翻译成了 MathJax 兼容的代码。如果对 html 的公式点击右键获取公式代码,得到的仍然是兼容 MathJax 的代码。
3. ^ pdf 格式用于 pdf 版的百科,svg 用于网页显示
[1] ^ 小时百科志愿者. 小时百科. https://wuli.wiki.
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利