多片段、大段文本
本节中,我们讲讲如何在一份文档中混排多个乐谱片段。这或许是一个不太常用的功能,但是如果你的文档标题是《基础节奏练习》,这显然是有用的,因为这里面的不同的乐谱片段可能会有不同的乐理属性。
你还可以在乐谱片段之间添加文字说明。
tl;dr
- 使用章节分割线
====分割多个独立的章节。 - 章节头部可添加
S:开头的行表示标题。 - 章节头部可添加
Sp:开头的行表示章节的乐理属性。 - 将全局乐理属性行开头的
P:改为Pi:即可将其隐藏。 - 章节中若有
T:开头的文本行,将会被作为纯文本章节。文本章节不能包含曲谱、标题或乐理属性。
章节与章节分割线
就像先前用 --- 分割碎片一样,用 ====(等号组成的分割线)可以分割章节。这样分割的两个曲谱片段就会成为毫不相干的两个部分。例如,如果将之前《小星星》乐谱中的三个碎片用这种分割线来处理:
可以看到,这么一来,每个「碎片」都会从 1 重新开始编号,并且它们之间的间距比之前更大了。事实上,原来的三行乐谱已经被分成了三个独立的乐谱片段。而这样的片段称为章节。
不妨试一试在某行的最后一个音后面添加一个 ~ 后缀,你会发现它不再能与后面行中的音符建立连音线,因为它们属于不同章节。
同样地,为了美观,第一个章节前也可以添加章节分割线,但是最后一个章节之后不能。
音乐章节的标题与属性
每个乐谱章节之前都可以有一个方框框起的标题,只需要在章节开头通过 S:(Section: 的缩写,section 这个名称是历史遗留问题)开头行指定即可。为了代码美观,也可以在其后面添加一条碎片分割线 --- 将其与后面的曲谱行隔开。
在编辑器的预览中点击这个标题,会将光标定位到 S: 开头的行的行首。
每个章节还可以有自己的乐理属性,来覆盖全局的乐理属性。要指定章节的乐理属性,在开头添加 Sp:(SectionProps: 的缩写)开头的行即可。比如这份《基础音准与节奏练习》。
章节的乐理属性不一定需要有章节标题才能显示。如果去掉章节标题,属性仍然会单独显示出来。
在这个例子中,由于每个章节都指定了自己的乐理属性,最上面的全局乐理属性显得有些多余。将 P: 改为 Pi:(PropsImplicit: 的缩写)就可以将其隐藏。
全局乐理属性可以隐藏,但不可以去掉,否则会导致整个文档直接被认为无效。
编辑体验 - 多章节
编辑器还有一些专为多章节乐谱设计的特性。
章节标题跳转
对于有标题的章节,在预览中点击章节标题,即可在代码中定位到该标题。

在音效试听界面中选择章节
不同乐谱章节被认为是相互独立,并且可能没有关联的,因此在音效试听中,它们不会被串起来播放。通过进度区的选择框可以选择要试听的章节。

通过「 可视化点选」来点选小节,也会自动转到其所属的章节。
文本章节
除了乐谱外,章节的内容还可以是文本。文本行以 T:(Text: 的缩写)开头。下面的例子来自歌曲《小女孩的诅咒》。
与音乐章节类似,文本章节也可以使用 S: 指定标题。
文本到达页面右端就会自动换行,因此一个 T: 开头的文本行其实可以写很多东西。如果代码中一行的内容过长以至于难以编辑,可以使用软折行方法进行处理——当一行末尾是 \ 字符时,这个 \ 字符会被忽略,并且下一行会被当成这一行的延续。
一个章节不能既有文本又有乐谱。那样会导致解析器给出一个错误并忽略它。
文本对齐
上面的例子中,我们希望四行念白的词对齐,而 (白) 显示在它们左侧。
最简单的方法是为后三行添加前导空格,但是若直接添加,这些前导空格会被忽略。此时,可以在每行最前面加上一个 | 符号,这样 | 会被忽略,但是 | 之后前导空格将会显示。
使用空格来对齐仍然是不准确且不优雅的。还可以利用制表符 \t。
制表符的缺点在于,对于非等宽字体,字符宽度与制表位的宽度难以比较和控制。对于这种需要悬挂缩进的情况,Sparks NMN 提供了另一种解决方法——在行首添加 | 字符后,你可以在文本行中再插入一个 > 字符标定一处对齐点。一个文本章节中,所有包含对齐点的行会在对齐点处对齐。 新增于 1.15.4
接下来...
接下来我们玩点花的——在音符上标注各种奇奇怪怪的奏法记号,以及添加装饰音符。