贡献者: addis; Giacomo; kahoyip; 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{}{}
的第一个花括号中把它们列出来,并使用 \nref{}
引用它们的 ID。
nod_af87
,可以在别的文章的 \pentry{\nref{...}}{}
中引用。
\pentry{知识点1\nref{节点id1},知识点2\nref{节点id2}}{节点id}
。所有的 节点id
都以 nod_
开头。
节点id
。
nod_文章id
其中 文章id
是该文章的文件名。
\nref{}
命令可以通过 “外部引用” 按钮中的 “节点” 按钮来插入。在提示 “输入序号” 时,如果不输入,则引用一篇文章的默认节点(即依赖于整篇文章)。注意该命令暂时只能在 \pentry
内部使用。
\nref{}
,并注释具体需要什么(在注释中使用 \addTODO{描述}
),也可以先通过 \cite{}
引用参考文献。
可以通过内部或外部引用按钮引用,如子节 4 。引用其他文章的子节如子节 1 ,注意后面会自动添加一个图标表示是其他文章的链接。
任何 \autoref{标签}
(无论本文还是其他文章)都支持对应的 \aref{链接文字}{标签}
,如这个子节,和那个子节。
\label{标签}
)的引用,无论标签类型是什么(文章,公式,图片等),应该都支持三个命令:
在 pdf 中,需要考虑打印会使链接失效,所以变为以下效果:
\upref{标签}
变为一个脚注如 “见 103 页《向量空间》定义 2。”
\aref{任意文字}{标签}
相当于给 任意文字
加下划线然后使用 \upref{标签}
\autoref{标签}
显示效果如 式 1
(本文)或 式 1
$^{\color{green}\small[103]}$(其他文章)
其他命令合并到这三个之中:\enref
并入 \aref
,\nref
并入 \upref
。
一个细节问题:\autoref
这个命令有点长而且经常使用,是否要改成 \tref
。同理 \upref
也可以改成 \uref
目前子子节标题无法引用。
正文必须使用中文的括号,逗号,引号,冒号,分号,问号,感叹号,以及空心句号1,禁止使用英文标点。但为了打字方便,行间公式最后仍允许英文逗号和句号(例如 ~,
和 ~.
),且逗号后面需要有足够的空白(\quad
或者 \qquad
),例如
\end{equation}
(或者结束的 $$
或 \]
)之前加一个 ~
防止报错。禁止批量对所有公式加 ~
。公式中标点的用法参考本文。
像 “牛顿—莱布尼兹公式” 中的横线必须用中文单破折号。所有的标点符号前面不能有空格,后面尽量有空格。正文粗体如粗体。正文中禁止使用 \\
换行,以及 \noindent
,\phantom
等命令强制修改格式。
如果把 \footnote
加在一个名词或者短语后面,意思是对它们做注释。如果放在一个句号后面,就是对整句话做注释。
正文的任何地方可以用 \addTODO{}
命令插入未完成提示。
\addTODO
命令
引用公式和图表都统一使用 \autoref{标签}
命令,\autoref
和 \label{标签}
都无需手动插入,可以用菜单栏中的 “内部引用” 和 “外部引用” 按钮(实心和空心的双引号图标)。注意 \autoref{}
前面不加空格后面要加空格(后面是标点符号除外),例如式 2 。如果要引用其他文章中的公式,可以引用 “其他文章” 的式 1 也可以用 “式 1 ”,为了区分内部和外部引用,\upref
不能忽略。在 pdf 上,\upref{}
会显示为页码。
一个升级版的 \upref{文章id}
命令是 \enref{文字}{文章id}
,可以把 文字
直接链接到文章。例如一篇测试。新内容建议使用后者。
行间公式的 label(标签)必须要按照 eq_公式id
的格式,只有需要引用的公式才加标签。图、表的标签分别以 fig_
和 tab_
开头,例题用 ex_
,习题用 exe_
,子节用 sub_
。凡是有 \caption
命令的环境(图、表),\label
需要紧接其后。事实上标签不建议手动添加,可以用菜单栏上的 “内部引用” 和 “外部引用” 按钮在引用时同时自动插入 \label
和 \autoref
,详见编辑器使用说明。
行内公式用 $...$
或者 \(...\)
,两边需要有空格,例如 $a^2+b^2=c^2$,后面有标点符号的除外。行间公式如
百科中常用公式的示例(包括支持的宏包和自定义的命令)见小时百科常用 LaTeX 公式。
LaTeX 中各种符号的命令见官方符号对照表(pdf)。
行间公式如果确定以后都不需要被引用,可以用无编号的公式环境 $$...$$
或者 \[...\]
。
位图必须使用 png 格式,矢量图(推荐)必须以 pdf 和 svg 格式2放在 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 func1():
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_1995 中华人民共和国国家标准标点符号用法》标准中允许科技文献中使用实心句号,但 GB_T15834_2011 版的新标准规定都用空心。
2. ^ pdf 格式用于 pdf 版的百科,svg 用于网页显示
[1] ^ David Griffiths, Introduction to Electrodynamics, 4ed