/ 7FOJ / 讨论 / 分享 /

Markdown/LaTeX 攻略 · 第一部

正确使用 Markdown 和 \(\LaTeX\) ,可以让您更好的描述您所要描述的内容。但不正确地使用它们,你所要描述的内容甚至会看起来比不用它们更糟糕。

本攻略旨在教会您正确地使用 Markdown 和 \(\LaTeX\),其中包含一些硬性的规范,为在 7FOJ 上传题目/题解时尤其要注意的, 严重不符合规范的题目/题解会被酌情删除


\[\Huge\text{第一部}~-~\text{Markdown 的使用}\]

如何编辑 Markdown/\(\LaTeX\)

Vijos 自有的编辑功能并不完善,无法实现即时渲染编辑,而且编辑时的输入框还贼小。所以此处给大家推荐一款软件。

Typora 是一款轻量级的 Markdown 编辑器。使用它能够实现即时渲染编辑,并且它的文本渲染做的非常好。

下载地址:Typora.io

Typora 支持 \(\LaTeX\),但初始时默认不打开,需要在 文件->偏好设置->Markdown->Markdown扩展语法 中打开 内联公式 选项。

此外,Typora 还可以将 Markdown 文件导出成 Word 文档/HTML 等多种格式,非常方便。

块元素

一篇超文本(就是你要写的题面/题解)由一些块元素组成。详细信息如下表。

块元素名称 块元素作用 块元素语法
标题 内容是文章的标题, 标题不是用来突出显示某些文字的!包含整段整段的标题的题解会被删除。 在标题之前需要用 \(1\sim 6\) 个井字符号 # 标识,分别表示 \(1\sim 6\) 号标题。
段落 内容可以是一些文字 无特殊语法
代码块 内容是一段代码,内部的所有字符都不会被作为 Markdown 语句来解释 在代码块之前和之后分别用三个小撇(`)来标识
引用 引用他人的文本 在引用的文字之前用一个大于号(>)加一个空格来标识
表格 用一个表格的方式表示数据 表格的语法较为复杂,在后面会单独讲到
列表 用一个列表的方式表示数据 列表的语法较为复杂,在后面会单独讲到
分割线 分隔两段内容, 不要滥用分割线! 四个星号或减号(****----
\(\LaTeX\) 书写数学公式(具体语法详见本攻略第二部) $$公式的内容$$

每两个块元素之间要留一个空行,否则会被当做一个块元素处理。例如下面这样。

我是段落

> 我是引用

以上几种块元素各举一例:

标题

# 我是一级标题
## 我是二级标题

我是一级标题

我是二级标题


代码块

注意:如果您要放的是某种特定语言的代码,例如 C++,可以在开头的三个撇后面写一个 cpp,以获得相应的代码高亮。 包含未正确高亮的代码的题解可能会被提醒修改。

墙裂注意: 请不要用代码块来书写公式!

[三个撇]cpp
#define AK_IOI bfw
[三个撇]

\(~\)

#define AK_IOI bfw

段落

我是一个段落

我是第二个段落

我是一个段落

我是第二个段落


引用

> 石狮市石室诗士施氏嗜食狮,试试就逝世。

石狮市石室诗士施氏嗜食狮,试试就逝世。


列表

  • Treap
  • fhq Treap
  • Splay
  • RBT
    • Red and Blue Tree \(\sout{平~衡~树~梗~永~垂~不~朽(}\)

表格

a b
1 2

\(\LaTeX\)

$$f(x)=x^2$$

\[f(x)=x^2\]

文本修饰

使用 Markdown 也可以在块元素内部做一些基本的文本修饰,如下表所示。

名称 作用 语法 效果
粗体 突出显示某些内容, 请不要整段整段的用粗体显示! **我是粗体**__我是粗体__ 我是粗体
斜体 斜体显示某些内容 *我是斜体*_我是斜体_ 我是斜体
删除线 Vijos 的 Markdown 解析器 不支持删除线! 如您真的要使用删除线,请参考后面的 \(\LaTeX\) 教程。
行内嵌代码 一段内嵌单行代码,内部的所有字符都不会被作为 Markdown 语句来解释。 代码中的变量名或库函数名请使用行内嵌代码而不是 \(\LaTeX\) 表示! `我是代码` 我是代码
超链接 用户点击文字就会跳转到给定的网址 [文字](网址,例如 https://vijos.org/d/oistream/) 文字
图片 显示给定网址的图片 ![图片描述(可不填)](网址,例如 https://cdn.vijos.org/components/header/header-background@2x.png?5bdf5c54c2)
块内换行 使用两个空格加一个换行来实现块内换行 见下面 见下面
内嵌 \(\LaTeX\) 书写数学公式(具体语法详见本攻略第二部)。 数学性的函数、变量名请采用 \(\LaTeX\) 表示! $f(x)=x^2$ \(f(x)=x^2\)

可以在一行的结尾加两个空格然后换新的一行写东西来实现块内换行,例如下面这样:

两个空格->  
换行了!

效果:

两个空格->

换行了!

列表

列表可以用来表示一系列东西以及其中的层级关系。

列表分两类,有序列表和无序列表。

有序列表 的每一项会有一个标号,该标号从 \(1\) 开始。有序列表的语法如下。

1. 这是第1项
2. 这是第2项

注意,虽然你写了标号,但是实际显示的标号 并不 取决于你写的标号。无论你怎么写,实际的标号都是 \(1,2,3,\cdots\)。例如

1. 这是第1项
1. 这是第1项吗?

显示出来就是

  1. 这是第1项
  2. 这是第1项吗?

有序列表的使用非常广泛,有顺序关系的事物/语句可以使用有序列表描述,便于读者理清逻辑关系。


无序列表 是另一类列表,表中的元素没有标号。无序列表的语法如下。其中减号可以换成加号 + 或星号 *

- 这是一项
- 这是另一项
  • 这是一项
  • 这是另一项

无序列表的使用也非常广泛,有同类关系的事物/语句可以使用无序列表描述,便于读者理清逻辑关系。


列表之间还可以 嵌套 。例如

- a
- b
    1. A
    2. B
- c
  • a
  • b
    1. A
    2. B
  • c

这是一个无序列表嵌套有序列表的例子。次级列表相对于上一级向前缩进一格(即 Tab)。实际还可以有有序列表嵌套无序列表、多层嵌套等。

表格

表格的语法如下所示。

| 表头1 | 表头2 | 表头3 |
| ------------- | ------------- | ------------- |
| 1.1 | 2.1 | 3.1 |
| 1.2 | 2.2 | 3.2 |
| 1.3 | 2.3 | 3.3 |

效果如下所示。

表头1 表头2 表头3
1.1 2.1 3.1
1.2 2.2 3.2
1.3 2.3 3.3

注意!请不要使用表格来描述矩阵,请使用 \(\LaTeX\) 来表示矩阵。


在了解了这些基本语法之后,你就能写基本的题解与题目了!

但是,如果想要更完善的文本修饰或者更好看的数学公式,就需要使用更高端的功能——\(\LaTeX\)!

我们会在本攻略的第二部和第三部中分别讲解 \(\LaTeX\) 的数学公式书写以及文本修饰。

0 条评论

目前还没有评论...