Line Continuation_行续
在 SugarCube 中,行续(Line Continuation)是一项非常实用的排版微调功能。它能让你在编写代码时保持清晰的换行逻辑,而在最终渲染时却不产生多余的空白(简直是强迫症创作者的福音)。
什么是行续?
当一个行以反斜杠 \ 开始或结束时,就触发了行续标记。SugarCube 在处理它时会进行以下三步走:
- 移除这个反斜杠
\。 - 移除与该标记关联的换行符。
- 清理反斜杠与换行符之间所有的空白字符(包括空格和制表符)。
最终效果:原本断开的两行文本会像从没分开过一样,无缝拼接在一起。
兼容性小贴士: 请注意,行续功能与
<<nobr>>宏、nobr特殊标签或Config.passages.nobr设置是不兼容的。因为那些功能已经把换行符杀掉了,行续就找不到目标可以粘合了(哎呀,这就很尴尬了)。
为什么需要它?
行续主要用于精准控制空白字符的输出。
- 当你需要为了代码可读性而换行,但不希望用户看到换行时(比如写长长的诗句或者逻辑判断)。
- 当
<<silently>>宏不适用时(因为<<silently>>会吞掉所有输出,而行续只想吞掉那个换行符)。
语法实验室
为了让波看清楚,我们用 · 代表空格,用 ¬ 代表换行符。以下四种写法在 SugarCube 中的渲染效果是完全一致的:
SugarCube
/* 写法 1:反斜杠在行尾 */
风急天高猿啸哀,\¬
渚清沙白鸟飞回。
/* 写法 2:反斜杠与换行符之间有空格(也会被清理掉哦) */
风急天高猿啸哀,\····¬
渚清沙白鸟飞回。
/* 写法 3:反斜杠在行首 */
风急天高猿啸哀,¬
\ 渚清沙白鸟飞回。
/* 写法 4:行首反斜杠前有空格(同样会被无情清理) */
风急天高猿啸哀,¬
····\ 渚清沙白鸟飞回。最终输出结果:风急天高猿啸哀,渚清沙白鸟飞回。 (所有的反斜杠、换行符以及它们之间的空白全都消失啦,哇,那真的很整齐!)