LilyPond-变化
本文档列出了更改和新功能自2.22年起在LilyPond 2.24.3版中。 |
注:LilyPond版本可以包含语法更改,这可能会需要修改为旧版本编写的现有文件版本,以便在新版本中工作。为了升级文件,它是强烈建议使用敞篷车
LilyPond发布的工具,如
使用convert-ly更新文件.敞篷车
可以自动执行几乎所有的语法更新。Frescobaldi用户可以运行敞篷车
直接从Frescobaldi使用“工具>使用convert-ly更新…”。其他编辑支持LilyPond的环境可能提供一种运行方式敞篷车
以图形方式显示。
百合池的主要变化
- LilyPond现在需要Guile 2.2。即使你不是在写Scheme自己编写代码,您可能正在使用包含非平凡自定义的数量。如果它们不适用于LilyPond版本2.24.3,请向图书馆开发人员报告。如果你是库开发人员,请参见关于Guile 2.2的注释如下所示。
- 创建官方二进制文件的基础设施已经完全改写,切换到Guile 2.2时发生意外。截至在这个版本中,我们为macOS和Windows提供64位二进制文件。此外,所有软件包都可以作为简单的存档提供提取到任何“安装”位置。要卸载,只需删除该目录。我们还停止了该有限编辑安装在macOS和Windows、LilyPad上,建议切换改为外部解决方案,例如流行的编辑器弗雷斯科巴迪,或列出的其他之一在里面
更容易编辑。有关更多信息,请参阅中的详细说明
正在安装.
源代码编译和打包程序注释
本节的目标读者是从源代码中编译LilyPond的爱好者和包装商准备百合花池进行分销。如果你不是无论是哪一组,您都可以跳过此部分。
- 如上所述,LilyPond现在需要Guile 2.2。如果需要由于发布原因,它也可以通过传递使用Guile 3.0编译
GUILE_FLAVOR=指南3.0
到配置
脚本。然而,这尚未得到建议或官方支持。 - Guile 2.2中的Scheme代码计算器比Guile 1中的速度慢。x个.为了抵消大部分性能损失,我们建议编译‘.供应链管理'首先运行将文件转换为字节码
生成字节码
编译期间,然后制作安装字节码
此外到进行安装
. - 从这个稳定版本开始,LilyPond的构建系统没有再安装文本字体。请单独提供同时注意字体的许可和通知文件。
新的音乐符号
投球改进
- 对交替事故的支持得到了改善。通过
alterationGlyphs(alterationGlyphs)
类员工上下文的属性,可以同时为所有Grob设置意外字形(请参阅
备用意外图示符).
- Ottava括号可能适用于单个语音,而不是整个语音员工。这过去需要解决方法。
\布局{\上下文{\工作人员\删除Ottava_spanner_engraver}\上下文{\语音\由Ottava_spanner_engraver组成}}
节奏改善
- 新的
\截面
命令插入一条双横线与重复条线优雅互动。通道可以是以新名称命名\分区标签
命令。\固定的,固定的 c’ {
(f)1
\中断
\截面
\分区标签 “三重奏”
\重复 沃尔塔 2 {
b条1
}
}
-
\数字时间签名
和\默认时间签名
现在采取行动同时使用所有壁(更准确地说,在同一个壁上使用所有壁时间安排
上下文),从而匹配\时间
. - 这个
\节奏
已添加标记命令。这很简单输入与文本混合的节奏的方法,例如在“swing”中指示。\相对的 {
\节奏 \标记 {
摆动
\hs空间 #0.4
\节奏 { 8[ 8] } = \节奏 { \元组 第3页,共2页 { 4 8 } }
}
b条8 g’ c中, d日 电子设备 d日16 电子设备 d日 c(c) 第页8
}
- 这个
\启用测高仪
命令现在作为输入提供移动雕刻师的简写,以允许不同的并行时间签名。代码:\布局{\上下文{\得分\删除Timing_translator\删除Default_bar_line_engraver}\上下文{\工作人员\包含计时转换器\包含Default_bar_line_engraver}}
因此可以缩短为:
\布局{\启用测高仪}
独立于此,默认bar_line_engraver
有已删除。
- 新选项
可见的封头
可以用来制作当元组方括号的方向设置为在便笺头上。它可以与默认元组一起使用括号可见性样式或#‘if-no梁
.
- 测量计数现在采用压缩的多测量休息和备选方案。
- 小节数可能以它们的度量为中心,这在电影评分中很常见。
\布局 {
\上下文 {
\得分
中心条形图编号 = ##t吨
条形图编号可见性 = #所有条形码可见
}
}
<<
{ \重复 展开 三 { c’4 d’ e’ f’ } }
{ \重复 展开 三 { c’4 d’ e’ f’ } }
>>
- 出现在系统中间或末端的条形码对齐已更改为在左侧对齐它们。这与伊莱恩·古尔德的建议(酒吧后面第237页),主要是开发人员在讨论该问题时达成的共识。对齐系统开头的栏保持不变。
-
\酒吧“,”
创建一条短横线。
- 以下预定义的条形图类型不再显示为单个线条末尾的横线。带注释的条形图类型(例如。,
\条“S-|”
)已为此目的添加。
-
\酒吧“”
不再需要打印第一个栏数字。现在设置就足够了条形图编号可见性
到所有条形码可见
或其中一个第一个条形图编号可见的可见性设置。请注意,这是设定分数的行为改变条形图编号可见性
到所有条形码可见
或诸如此类且BarNumber.break可视性
到#t吨
没有\条“”
现在,条形码打印在开始。这只是预期的行为(全部的酒吧数字应该是可见的),但由于稍微不清楚文档,用户可能已使用这些设置打印栏系统中间的数字,第一个条形码除外。在这种情况下,只需删除\set Score.barNumberVisibility=#all-bar-numbers-visible
自从\覆盖BarNumber.break-visibility=##t
做仅相关设置。
- 这个
\中断
命令现在总是插入一个中断,绕过所有关于断点的默认决策。例如,它不再是需要插入\条“”
以获得中等程度的休息。新的\allowBreak(允许中断)
命令插入可能的断点,不强制执行,但绕过默认决策,如\中断
做。
- 钢筋线型
"-"
已删除。敞篷车
将其转换为""
。在以下方面略有不同换行符处的水平间距。 -
自动条形图
已删除。敞篷车
转换automaticBars=##f
到measureBarType=#'()
. -
\定义BarLine
现在接受#t吨
代替重复中线字形名称。 -
裸奔者(_E)
用于禁止横线之间的换行在所有情况下,但现在只有当禁止在横线之间中断
上下文属性设置为#t吨
,这是默认值。这个bar始终
上下文之前解决了禁止在横线之间中断
已删除。 - 由于
\巴
,它不再是支持在创建较低上下文之前使用\新
。这样的使用现在将增加一名员工。这是与以下命令类似\覆盖工作人员…
(请参见
额外的工作人员出现).{
\巴 ".|:"
<<
\新 工作人员 { c’ }
\新 工作人员 { c’ }
>>
}
解决方案是\巴
在每个人的音乐里工作人员,与大多数命令一样。
<<
\新 工作人员 { \巴 ".|:" c’ }
\新 工作人员 { \巴 ".|:" c’ }
>>
- 酒吧类型
“-span|”
创建一个孟斯特里克.
-
工作人员
上下文使用新Caesura_engraver(_E)
到记下\凯撒大帝
命令。
表现性标记改进
重复改进
- 重复部分中可能会出现重复选项。
\重复 沃尔塔 三 { c’1 \备选方案 { d’ e’ } f’ }
- 可使用
\沃尔塔
命令。\重复 伏打 三 c’1 \备选方案 { \沃尔塔 1 d英寸 \沃尔塔 2,三 e’ }
- 新的
\重复segno
命令自动标记种类达卡波和达尔塞尼奥表格。音乐 = \固定的,固定的 c’ {
\重复 塞格诺 2 {
b条1
}
\罚款
}
\分数 { \音乐 }
\分数 { \展开重复 \音乐 }
- 新的
\罚款
命令插入最后一条横线与重复条线优雅互动。内部使用\重复
,它还打印法恩结束音乐展开后。音乐 = \固定的,固定的 c’ {
\重复 沃尔塔 2 {
(f)1
\伏打 2 \罚款
\沃尔塔 1 b条1
}
}
\分数 { \音乐 }
\分数 { \展开重复 \音乐 }
- 这个
\沃尔塔
命令在展开重复时删除音乐。 - 这个
\展开的
命令在展开重复时添加音乐。
编辑注释改进
文本改进
- 新命令
\text标记
和\文本结束标记
是可在注释之间添加任意文本,称为文本标记。这些命令改进了以前存在的语法\标记
命令调用为\标记标记
(即。,\标记“…”
或\标记\标记…
).\固定的,固定的 c’ {
\text标记 “文本标记”
c(c)16 d日 e(电子) (f) e(电子) (f) e(电子) d日 c(c) e(电子) d日 c(c) e(电子) d日 c(c)8
\text结束标记 “文本结束标记”
}
\text标记
和\text结束标记
现在是推荐的吗创建文本标记的方法。使用\标记
为了这个目的仍然受支持,但不受鼓励(请注意\标记
命令本身并不气馁,只是调用它标记参数;\标记\默认
或\标记数
仍然是创建彩排标记的推荐且唯一方法)。
新命令与\标记标记
.在给定的时刻,它们可以有任意数量,而只能是的一个用途\标记
.他们输出专用的文本标记
类型,而\标记
创建一个排练Mark
无论是要求彩排标记还是文本,都要进行搜索作记号;引入这种区别允许样式表设置不同的排练标记和文本标记的布局设置。路线新命令设置不同:\text标记
总是创建左对齐标记,并且\文本结束标记
创建一个右对齐标记;相反排练马克
取决于与之对齐的对象的定位点。
请参见
文本标记了解详细信息。
- 用于锐化、平坦、自然、双锐化和双平面现在有Emmentaler字体。在标记中,可以使用标准Unicode值轻松访问它们。
- 现在可以控制(某些)的宽度和形状使用OpenType功能的Emmentaler数字。
-
\小型大写字母
现在可以在任何标记上工作,而不仅仅是在裸机上字符串。 - 标记中条件的语法变得更加灵活用户友好。它使用新的标记命令
\如果
和\除非
。以下是替换示例:
2.22语法 | 2.24语法 |
\onfly#首页…
| \如果\在第一页 …
|
\onfly#非部分首页…
| \除非在第一页上…
|
\onfly#(第页n个) …
| \如果\在页面上#n个…
|
- 使用新的标记列表命令
串线
现在可以在给定字符处拆分字符串。默认设置是在换行符处拆分。周围空白被丢弃。由此产生的标记列表可能是进一步格式化。这是为歌曲输入附加节的一种非常方便的方式。
- 新标记命令
\与其他对齐
翻译标记就好像它与另一个标记对齐一样。
- 两个新的标记函数
\带维度
和\带维度-自
可用。它们类似于\带维度
和\带维度-从
,分别修改单个维度(而不是两者)。 - 新标记命令
\具有真实尺寸
和\具有真尺寸
可用。他们给出了标记其打印墨水的实际范围,可能与由于文本规则性,某些字体图示符的默认范围约束。
- 文本替换现在可以用任何标记替换字符串,而不是只是用一根绳子。
\标记
\更换 #`((“第二” . ,#{ \标记 \凹面(concat) { 2 \超级 第 } #}))
“第二次”
- 新的标记命令
\带环形变压器
可用。它解释安装了“字符串转换器”的标记;在解释标记时调用转换器需要解释字符串,并允许执行修改在这个字符串上,例如更改大小写。 - 这个
标记->字符串
函数将标记转换为近似字符串表示;用于输出PDF元数据以及MIDI歌词和标记。标记命令可以现在定义一个自定义方法来转换使用它们创建的标记成字符串,供使用标记->字符串
例如:#(define-markup-command(upcase layout props arg)(字符串?)#:as-string(字符串大写参数)(解释标记布局属性(字符串arg))
专业符号的新功能
微动弦乐器的改进
- 弦的调谐
班卓双c
和班卓双d
已添加。 - 一个新的探索者
弯扳手
现在可用于TabStaff标签
,表示弯曲的绳子。除了默认样式外,还可以使用三种样式:'保持
,'预折弯
和'预弯孔
.
冲击音改进
- 鼓符号样式
温伯格鼓式
已添加。它基于诺曼·温伯格的标准化工作。
风力仪器改进
- 的其他显示详细信息
\伍德温·迪亚格拉姆
现在可以指定包括部分覆盖的按键的角度和非图形颤音按键的显示。\标记 {
\覆盖 #'(图形化的 . #如果)
\覆盖 #'(woodwind-diagram详图 . ((圆角 . 90)
(文本-圆圈 . #(f))))
\伍德温·迪亚格拉姆 #'长笛 #'((复写的副本 . (1小时))
(左心室 . ())
(相对湿度 . (最佳T)))
}
和弦符号改进
- 添加了对弦网格的支持。
- 在
和弦名称
,多尺度休息现在也会导致要打印“N.C.”符号,就像正常休息一样。 - 在提花低音中,
_
现在创建一个空图形占用空间。\数字 {
<8 _ 4]> <_ 5+ 三>
}
- 提花低音的格式得到了改进。特别是默认大小减小为的许多Urtext版本使用的值巴洛克音乐。
- 在提花低音中,为
6\\
,7\\
、和9\\
现在默认使用。同样,特殊设计的符号符号2\+
,4个\+
、和5\+
如果加号出现在数字。
使用新命令\提花低音
在中访问这些符号标记。
- 在提花低音中,现在还可以在意外事件周围添加括号。
古代记数法的改进
世界音乐的进步
- 现在支持波斯古典音乐。为了这个,两个意外符号,索里和科隆,已添加到莉莉池塘。
\包括 “波斯语.ly”
\相对的,相对的 c’ {
\钥匙 d日 \查哈尔加
bk公司8 一 克 法罗群岛 第页 克 阿克 克 |
英尺 ek(希腊语) d日 c(c) d日 ef(参考)16 d日 c(c)4 |
}
其他改进
- 在Emmentaler字体中,外观相同的记事本,唯一的区别是茎方向已合并为单个字形。例如,象形文字
记事本.u2三角形
和notehead.d2三角形
有被一个字形替换,记事本.s2三角形
.记事本对视方向而定,外观会有所不同。此外茎附着
的属性记事本头
现在摸索着返回其实际的、与方向相关的阀杆连接点,而不是假设的向上阀杆连接点。
- Emmentaler字体中的两个冗余图示符已被删除:
脚本.三列式
(使用scripts.trill_element
相反)和脚本.补充
(使用dots.dotvaticana网站
相反)。 - 使用
\纸张{bookpart-level-page-numbering=##t}
,它现在可以使图书部件独立于页面编号。如果这用于所有图书部件,则每个图书部件都有它自己的编号顺序,默认从1开始。它还可以在单个bookpart中使用,这有助于实现分析导言中数字页码的标准实施规程独立使用罗马数字(后者使用页码类型=女性力量
). - 一个新的grob回调函数
断开对齐列表
现在可用于根据grob的断裂方向返回不同的值。作为例如,使用它可以根据是否它位于行的开头、中间或末尾。
- 新的
标记执行器(_P)
创建MIDI标记事件,如标记记录器(_E)
创建打印标记。 - 的属性
纸柱
和非音乐纸专栏
(例如非音乐用纸专栏.line-break-system-details
)现在可以用常规命令覆盖中音\一次\覆盖
。它们过去是一种特殊情况,需要\覆盖属性
命令。 - 新的
展示地方天际线
和显示垂直天空线
属性允许显示对象的天际线。这比已经存在的更灵活现有的调试天空线
选项,因为它适用于所有人摸索着。虽然主要用于调试LilyPond,但这可以是在尝试理解间距决策或覆盖时很有用方案中的模具。
- 新命令
\V形
就像是\形状
,但也显示控制点和多边形,便于调整。{ 一1\V形 #'((0 . 0) (0 . 0.5) (0 . 0.9) (0 . 0.4))^( c’1) }
-
\标记\路径
现在,即使路径不是以移动到
或莫维翁
命令。此外,它现在接受单字母SVG等价物(移动到
=M(M)
,等)。 -
设置默认纸张大小
和机顶盒尺寸
现在接受自定义纸张尺寸。#(设置默认每种尺寸(cons(*100 mm)(*50 mm)))
-
百合装订本
支持两个新的音乐片段选项‘纸的宽度'和'纸的高度'设置自定义纸张大小。 -
百合装订本
支持新的代码段选项'内联'用于内联音乐,即音乐片段,如
出现在一段文本中的。 - 这个
百合装订本
脚本现在允许在参数中使用大括号命令\百合香
(对于LaTeX)和@百合香
(用于Texinfo)。 -
百合装订本
现在将当前目录附加为最后一个条目以搜索包含的文件,而不是将其前置到指定包含路径的列表。这允许将目录包含到当前目录中的卷影文件,只有在两者中都有相同名称的文件。 - 新Scheme函数
通用颜色
提供了八元素调色板设计,让人们看得一清二楚带有两色性。
- 这个
-dembed源代码
选项现在还嵌入图像添加了\eps文件
和包含的文件\口头文件
. - 默认的
aux文件
程序选项更改为#(f)
。如果你打电话给LilyPond-dbackend=每股收益
参数并需要辅助项'.tex码’和'.特西'文件,您现在必须指定-daux文件
明确地。的格式百合装订本
可以设置图像单独用于高页面图像(通常PNG用于HTML输出)和每个系统的图像(打印输出通常为EPS或PDF)使用-d日
子期权-dt全页面格式
和-数据分离页面格式
分别是。 - “大点”单元(1bp=1/72in)现在可用通过附加
\英国石油公司
长度值。 - 可在两者中使用的方案定义的转换器\布局'和‘\迷笛'现在可以使用创建
标记转换器
.方案定义的执行者仅在'中可用\迷笛'现在可以使用创建成就表演者
。这些宏的工作方式严格如下以前存在的宏制造工程师
用于创建雕刻师只能在'\布局’. - 方案转换器现在可以定义一个名为
预处理音乐
。所有翻译人员都会在所有听众,但首先过程音乐
插槽。这个可以用于处理依赖于听到但需要的所有事件在其他翻译人员读取上下文属性之前设置上下文属性。 - 方案转换器现在可以包含编写为
(听众((事件类雕刻师事件#:一次)...))
每个时间步都不会触发一次以上。它们会发射如果在同一时间步长内收到两个事件,则发出警告,但如果事件相等。
- 现在可以使用相同的grob定义创建不同的类别(
项目
,扳手
,纸张_列
,系统
). 作为此更改的一部分,grob类型脚注项目
和脚注扳手
被合并变成单一类型脚注
同样,气球文本扳手
和气球文本项
统一为气球文本
.当grob定义没有指定类别时,雕刻师应该选择要创建grob的类。方案作者雕刻师,这意味着使用ly:雕刻工-制作-项目
或ly:雕刻机
.实用函数ly:雕刻家风格
用于支持频繁出现的情况粘性的爬行,如脚注和气球。它创建了一个与另一个grob具有相同类的grob,并且管理父母和边界。
- 新的命令行选项
-数据编译模式代码
,此外可在LilyPond输入中设置#(ly:设置选项'编译模式代码)
,在以下情况下提供更好的诊断运行Scheme代码会导致错误。在内部,它使用由Guile提供的字节编译器,而不是解释器。然而,由于Guile中的限制,目前缺点是无法运行多个1000个Scheme表达式。另外,要注意Guile编译器和解释器有一些不同。例如,准引号中的常量部分被改为实际常量积极地编写代码,如(let((x 4))(排序!`(,x 3 2 1)))
产生错误,因为准引用列表的“cdr”是常量,它是Scheme中改变文字数据的错误。(具体来说在这种情况下,代码可以通过使用非破坏性分类
,或每次使用创建一个新列表(列表x 3 2 1)
.)
此外,此选项目前在Windows上不起作用。
关于Guile 2.2的注释
这个版本的LilyPond从Guile 1.8切换到Guile 2.2。本节列出了一些最常见的不兼容为了升级Scheme代码,您可能必须进行处理。
Guile中完整、详细的更改日志可以在‘新闻'文件Guile源的。
- 这个
格式
函数现在需要布尔值或端口作为第一个参数。此参数在Guile 1.8中是可选的。在命令使函数以字符串形式返回格式化输出,如格式
在Guile 1.8中没有此参数,则传递#(f)
对于这个论点,即。,(格式#f“一串"论据…)
而不是(格式“一串"论据…)
. - 内部(即非层级)定义的规则有变得更加严格。各种表达式上下文。这不再有效,例如:
(如果(不是(定义的?'变量))(定义变量的值)
此特定示例中的解决方案是:
(定义变量(如果(不是(定义的?'变量))'值变量))
- 字符串现在支持Unicode字符。以前,Unicode字符由几个字符表示函数不是为Unicode支持而定制的。
- 现在,一些数值函数在更多情况下返回精确的结果。例如,
(平方米4)
收益2
在Guile 1.8中,但是2
Guile 2.2中的(整数)。
有关旧新闻,请访问https://lilypond.org/doc/v.22/Documentation/变更/,https://lilypond.org/doc/v2.20/Documentation/changes网站/,或回去文档索引。