Skip to content

Line Continuation_行续

在 SugarCube 中,行续(Line Continuation)是一项非常实用的排版微调功能。它能让你在编写代码时保持清晰的换行逻辑,而在最终渲染时却不产生多余的空白(简直是强迫症创作者的福音)。

什么是行续?

当一个行以反斜杠 \ 开始或结束时,就触发了行续标记。SugarCube 在处理它时会进行以下三步走:

  1. 移除这个反斜杠 \
  2. 移除与该标记关联的换行符。
  3. 清理反斜杠与换行符之间所有的空白字符(包括空格和制表符)。

最终效果:原本断开的两行文本会像从没分开过一样,无缝拼接在一起。

兼容性小贴士: 请注意,行续功能与 <<nobr>> 宏、nobr 特殊标签或 Config.passages.nobr 设置是不兼容的。因为那些功能已经把换行符杀掉了,行续就找不到目标可以粘合了(哎呀,这就很尴尬了)。

为什么需要它?

行续主要用于精准控制空白字符的输出。

  • 当你需要为了代码可读性而换行,但不希望用户看到换行时(比如写长长的诗句或者逻辑判断)。
  • <<silently>> 宏不适用时(因为 <<silently>> 会吞掉所有输出,而行续只想吞掉那个换行符)。

语法实验室

为了让波看清楚,我们用 · 代表空格,用 ¬ 代表换行符。以下四种写法在 SugarCube 中的渲染效果是完全一致的:

SugarCube
/* 写法 1:反斜杠在行尾 */
风急天高猿啸哀,\¬
渚清沙白鸟飞回。

/* 写法 2:反斜杠与换行符之间有空格(也会被清理掉哦) */
风急天高猿啸哀,\····¬
渚清沙白鸟飞回。

/* 写法 3:反斜杠在行首 */
风急天高猿啸哀,¬
\ 渚清沙白鸟飞回。

/* 写法 4:行首反斜杠前有空格(同样会被无情清理) */
风急天高猿啸哀,¬
····\ 渚清沙白鸟飞回。

最终输出结果:风急天高猿啸哀,渚清沙白鸟飞回。 (所有的反斜杠、换行符以及它们之间的空白全都消失啦,哇,那真的很整齐!)