Markdown和LaTeX排版规范指南
Markdown和LaTeX排版规范指南
Markdown和LaTeX是广泛使用的文本排版工具,特别是在学术写作、技术文档和在线教育等领域。本文旨在对文章内容排版方式进行倡导,提升普通用户的阅读体验,希望大家可以尽量按照本文所规定的方式来对文章进行格式化。
基本格式要求
必要注意事项
以下是对文档的基本要求,下列要求适用于 任何格式 的文本文档:
在每句话的末尾应当添加合适的标点符号;
在使用标点符号时,请务必区分 全角 符号和 半角 符号。若语句为汉语,应当使用全角标点符号,否则应当使用半角标点符号;
中文与西文字符或公式之间请以一个半角空格隔开, 但标点符号与西文字符或公式间不要加空格 ;
无论在何时,禁止使用拼音缩写作为标识符。
$\LaTeX$ 前后也需要空格,但公式不需要与标点符号空格。
以下是常见的错误示范:
因此,我们只需要输出两个数的乘积即可(违反 1.1.1)
To be or not to be, that is a question。(违反 1.1.2)
这就是一个典型的错误Hack数据,当$N=10^5$时,该代码会TLE。(违反 1.1.3)
这道题非常的简单,TJ 如下。(违反 1.1.4)
经过修正和格式化的示例如下:
因此,我们只需要输出两个数的乘积即可。
To be or not to be, that is a question.
这就是一个典型的错误 Hack 数据,当 $N=10^5$ 时,该代码会TLE。
这道题非常的简单,题解如下。
常导性建议
文章不应该出现大量的错别字。每位用户在撰写完文章后都有义务重读一遍文章保证文章的可读性。由于 AI 的兴起,使用 AI 人工智能助手来帮助用户审阅文章也是一个不错的选择。
对于题解/文章中的结论,请在必要时给出证明过程。
对于一些难的知识点,必要时可以给出一些外链来帮助读者阅读。
以下是一些错误的示范:
首先,我们可以申明一个变量来记录答案。(违反 1.1.2)
通过“瞪眼法”可得,答案应该为 $A \times B / \gcd(A, B)$。(违反 1.2.2)
正确的示范如下:
首先,我们可以声明一个变量来记录答案。
根据“XXXX”定理可得,答案应该是两个数的公约数,因为……
关于 Markdown 格式的一些建议
使用 Markdown 排版的注意事项
通过 Markdown 语法,我们可以很轻松的控制标题大小和文章的排版,但在排版中,应当注意以下事项:
标题是引导文章结构的,不是用来强调的;因此请不要用标题把字弄的很大,达到强调的目的;
适当使用文本加粗,但请不要使用大量使用。过量的文本加粗反而会适得其反,让读者难以分辨文章的重点;
在对文字进行加粗时,请不要对标点符号进行加粗。若被加粗的句子是一个完整的句子,则忽略此条目。
以下是常见的错误示范(为更好展示 Markdown 语法,这里使用行内代码的方式来展现):
# 这是一道非常水的题!!!
(违反 2.1.1)**Lorem ipsum dolor sit amet, consectetur 此处省略两百字 officia deserunt mollit anim id est laborum.**
(违反 2.1.2)因此对于所有的 $N$,我们应当提前**判断 $N$ 的奇偶性。**
(违反 2.1.3)
经过修正和格式化的示例如下:
这是一道非常水的题!
Lorem ipsum dolor sit amet, consectetur 此处省略两百字 officia deserunt mollit anim id est laborum.
因此对于所有的 $N$,我们应当提前**判断 $N$ 的奇偶性**。
使用 Markdown 的一些好习惯
在使用有序列表或无需列表的时候,如果有需要,可以适当对添加列表标题并对标题名称进行加粗。如下格式:
Dijkstra 代码的算法过程如下:
1. ...
2. ...
3. ...
可以将其改成:
Dijkstra 代码的算法过程如下:
1. **第一步**:...
2. **第二步**:...
3. **第三步**:...
PS:请不要把冒号符号加粗,这会影响渲染。
代码块与代码可读性的建议
在提供 AC 代码的时候,请务必使用 Markdown 中的代码块公式语法将代码包裹起来。
请标记代码语言
与此同时,在使用代码框时,请标上代码的语言,以正确地渲染代码。
未标记语言可能导致渲染错误:
```
#include
using namespace std;
```
正确的渲染效果应当如下:
using namespace std;
代码变量和注释的规范
为保证代码的可读性,请不要使用拼音缩写或无意义的缩写作为变量的名称。如使用,请务必在旁边对变量的作用作出合适的注解。
以下是一个错误的示范:
int awa(int a, int b){
int c = 0;
// Implementation to be determined.
return c;
}
正确的示范:
// 该算法用于计算两个数的最小公倍数。
int LCM(int a, int b){
int ans = 0;
// Implementation to be determined.
return ans;
}
关于 LaTeX 的使用建议
以下是本文的重点,也是 高发病区 。
什么东西应当被放在公式中?
并不是一切东西都该放在公式中的,滥用公式可能会导致排版混乱。公式也不应该喧宾夺主。
下面是一个错误的样例:
关于 $SPFA$,它死了。我们应当使用 $Dijkstra$ 算法。
正确的写法如下两个参考:
关于 SPFA,它死了。我们应当使用 Dijkstra 算法。
关于 $\mathtt{SPFA}$,它死了。我们应当使用 $\mathtt{Dijkstra}$ 算法。
所以什么东西不该放在公式中呢?
中文不应该出现在 $\LaTeX$ 公式中;
算法名、人名等非公式内容一般不出现在公式中。若要使用,请选择合适的字体,不要造成排版混乱即可。一般可以选用
\mathtt{Text}
作为首选。行内的程序代码(包括程序函数名称,变量类型,完整语句等)应该用行内代码框表示,而不放在公式中。
正确使用字体
请务必使用 Roman 字体表示函数和运算。$\LaTeX$ 已经预先内置了非常多常用的函数和运算,我们可以直接使用。
下面是一个错误的例子:
lcm(x,y)=\frac{x \times y}{gcd(x,y)}
$lcm(x,y)=\frac{x \times y}{gcd(x,y)}$
正确的写法应该是这样的:
\operatorname{lcm}(x,y)=\frac{x \times y}{\gcd(x,y)}
$\operatorname{lcm}(x,y)=\frac{x \times y}{\gcd(x,y)}$
简单而言:
对于 $LaTeX$ 已经内置的函数,可以通过使用反斜杠(
\
)来将函数格式化。例如gcd
,请写成\gcd
。对于 $LaTeX$ 没有的函数,请将函数名称用
\operatorname{}
包裹。
公式不是写代码的地方
$\LaTeX$ 是一个表示严谨公式的地方。因此,请不要 在非代码区域使用任何程序设计语言的表示方式 。
下面是一些错误的示范:
a=x\%p
x++
a==b
a <= b
a<<1
5e7
$a=x\%p \\ x++ \\ a==b \\ a <= b \\ a<<1 \\ 5e7$
正确的表示方法如下:
a=x \bmod p
x \gets x+1
a=b
a \leq b
a \times 2
5 \times 10^7
$a=x \bmod p \\ x \gets x+1 \\ a=b \\ a \leq b \\ a \times 2 \\ 5 \times 10^7 \\$
此外,对于数列或数组而言,请不要使用这样的方式来表示:
dp[i] = dp[i-1] + \max(dp[i-2], dp[i-3] + dp[i-4])
$dp[i] = dp[i-1] + max(dp[i-2], dp[i-3] + dp[i-4])$
更严谨的表示方法如下:
dp_i = dp_{i-1} + \max(dp_{i-2}, dp_{i-3} + dp_{i-4})
dp(i) = dp(i-1) + \max(dp(i-2), dp(i-3) + dp(i-4))
$dp_i = dp_{i-1} + \max(dp_{i-2}, dp_{i-3} + dp_{i-4}) \\ dp(i) = dp(i-1) + \max(dp(i-2), dp(i-3) + dp(i-4))$
其他排版建议
特殊符号 :不要使用输入法的插入特殊符号功能来插入特殊符号,$\LaTeX$ 提供了许多常见的特殊符号,包括但不限于希腊字母和数学特定的一些符号。
行内公式 :对于像 $\sum\ \prod$ 等巨运算符,放在行内可能会略显紧凑(例如:$\sum_1^n a_i$)。在合适的情况下,请尽量不要在行内使用这些巨型运算符。
分数的使用 :在某些情况下,使用
\frac
来表示分数显得太小(例如:$\frac{1}{2}$),如条件允许,尽量使用\dfrac
来表示分数来维持文本的可读性(例如:$\dfrac{1}{2}$)。