Lilypond有自带的谱文混排的工具lilypond-book,但是作为外行,一直很难搞清楚这个操作是怎样做的。很久之前请教过别人,但介于我的个人能力,只有粗浅理解,操作不得要领。在许多信息的拼凑之后,终于掌握了lilypond-book的基本使用方法。虽然这个方法极度不方便,但也算对lilypond的了解多了一分,所以还是做了记录

-----------------------------------------------

lilypond-book的说明文档可以见

LilyPond Application Usage: 3. Running lilypond-book

里面全是英文,看着也晕了好久。工作原理大概是建立 lytex 文件-----> (经过lilypond-book的运行)建立 tex 文件-----> 由tex里的pdflatex指令编译成pdf文件

这个流程真的太劝退了……先不管这个,以下几个部件是必备的:

1 必备部件

1. lilypond本体,来自 LilyPond – 人人的乐谱软件: 下载

2. lilypond-book是python文件,所以最好装一个python;

3. tex的运行组件,我个人下载的是texlive,来自 Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

有了这三项之后,开始部署:

2 部署

2.1 编辑系统环境变量

因为lilypond-book要在命令行模式下执行,而命令行模式默认的指令是不包括它的,所以需要先把lilypond-book设置到环境变量里

我知道对于没用过命令行的人来说这个表述看着就想死……直接讲设置方法吧。在开始菜单的空白处输入“编辑系统环境变量”

进入之后,按下图的顺序,跟着红色箭头走:

1. 进入“环境变量”

2. 点击Path,选择“编辑”

3. 编辑页面里选择“新建”

这时候就是要把lilypond的执行文件的所在文件夹的地址输进去。在lilypond的快捷方式那里点鼠标右键,选择“属性”,按红色箭头点开,这就是文件所在的文件夹。

注意:打开的文件夹先别关掉,一会儿要用

点击红色箭头所在位置,就得到文件夹的地址

把它复制到之前的“编辑环境变量”里,点“确定”就可以了

2.2 修改lilypond-book文件名

是的,lilypond-book 需要修改文件名……回到刚才的文件夹,右键 lilypond-book 这个文件,重命名为 lilypond-book.py

接下来就是输入与编译

3 输入与编译

3.1 创建 lytex 文件

首先打开编辑器,这个就不用介绍了。输入lilypond官方提供的示例文件,来自 LilyPond Application Usage: 3.6 lilypond-book templates

下面是代码

\documentclass[]{article}
\begin{document}
Normal LaTeX text.
\begin{lilypond}  \relative {     a'4 b c d  }\end{lilypond}
More LaTeX text, and options in square brackets.
\begin{lilypond}[fragment,relative=2,quote,staffsize=26,verbatim]d4 c b a\end{lilypond}\end{document}

然后保存为 lilypond-book.lytex,保存地址最好要是英文地址,记得打开所在文件夹!

3.2 启动 lilypond-book 编译

不要退出这个文件夹,在空白处按住shift键,点右键会看到“在此处打开Powershell窗口”的字样,点开它就到了对应目录下的命令行窗口

接下来的操作就和lilypond官方教程里的一致了,参考下面地址的Processing一节

LilyPond Application Usage: 3.1 An example of a musicological document

进入文抄公时间:

3.2.1 编译tex文件

lilypond-book --output=out --pdf lilybook.lytex

然后就会弹出一坨执行的文字……执行后就发现原来的文件夹里多了一个叫out的文件夹,这是因为刚才输入的指令里,已经把输出的文件夹设置在了out这个文件夹里。

点开out这个文件夹,就能看到lilybook.tex已经生成完毕。这样就完成了从 lytex 到 tex 的转换。

3.2.2 编译pdf文件

现在进入out文件夹,在空白处再次施展shift+右键,启动这个文件夹下的Powershell窗口,输入

pdflatex lilybook

又是一坨文字之后,就可以看到文件夹里多了一堆文字,其中就包括了期待已久的lilybook.pdf!

点开之后就可以看到编译的结果

谱文混排的工序到此告一段落。

4 总结

1. 整个lilypond-book的配置中有若干对新手极不友好的操作,例如设置环境变量、在窗口下开启Powershell,还有命令行的输入。

除了设置环境变量外,每次生成一个lytex都要把步骤3成套重新操作一次,也是醉了,不知道有没有什么办法把这个操作集成起来。

2. 在3.2.2 中,编译pdf文件的代码时pdflatex,这就说明lytex依赖pdflatex这个编码器。而latex的编码器那么多,其他编码器是不是够用就不清楚了,还有待测试

3. 目前知道Latex里面也有集成lilypond代码一起编译pdf文件的宏包,叫 lyluatex,详见 CTAN: Package lyluatex 。但lyluatex的编译到现在我都还没实现……还是希望能直接在latex内部完成编译更好一点

4. 此路目前死路一条,谱文混排摸索未完待续……

谱文混排之lilypond-book的更多相关文章

  1. Lilypond+TexLive(LuaLatex+lyluatex)+VS Code实现谱文混排

    没想到发文章反而更难被预览了,那就复制一份到随笔里好了. 多次尝试之下,终于实现了现阶段谱文混排的最理想方式: 1. 综合Latex的排版(还有广泛适用人群)的优势以及Lilypond的美观优势: 2 ...

  2. bootstrap-图文混排 media

    <!-- media 图文混排 media-left(right) 图片的区域 在左边显示(右边) media-body 内容区域 media-heading 内容区域里的标题 media-mi ...

  3. 【代码笔记】iOS-图文混排(HBLabelDemo)

    一,效果图. 二,工程图. 三,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIVie ...

  4. 【转】关于FLASH中图文混排聊天框的小结

    原文链接 图文混排也是FLASH里一个很古老的话题了,我们不像美国佬那样游戏里面聊天框就是聊天框,全是文字干干净净,也不像日本人发明了并且频繁地使用颜文字.不管是做论坛.做游戏,必定要实现的一点就是带 ...

  5. CoreText 实现图文混排

    CoreText 实现图文混排 相关博文推荐 IOS CoreText.framework - 基本用法 IOS CoreText.framework - 段落样子CTParagraphStyle h ...

  6. AS3聊天单行输入框图文混排完美实现

    几年前刚毕业.第一个游戏模块做的就是聊天.到如今.几个游戏写过几次聊天模块. 之前在4399做的<幻龙骑士>(又名<神骑士>),还有上周六刚上线的<疯狂的子弹>, ...

  7. CoreText实现图文混排

    CoreText的介绍 Core Text 是基于 iOS 3.2+ 和 OSX 10.5+ 的一种能够对文本格式和文本布局进行精细控制的文本引擎.它良好的结合了 UIKit 和 Core Graph ...

  8. Word 2010之简单图文混排

    所谓图文混排,就是指将图片与文本内容进行一定规律的排列,以让文档更加漂亮. 下面的示范是一个简单的将两副照片混排到文字当中的(图片与文本内容无关,仅供演示). 1. 打开Word,输入文本内容: 2. ...

  9. CoreText实现图文混排之文字环绕及点击算法

    系列文章: CoreText实现图文混排:http://www.jianshu.com/p/6db3289fb05d CoreText实现图文混排之点击事件:http://www.jianshu.co ...

随机推荐

  1. ApacheCon 首次亚洲大会火热来袭,SphereEx 邀您共赴年度盛会!

    ApacheCon 是 Apache 软件基金会(ASF)的官方全球系列大会.作为久负盛名的开源盛宴,ApacheCon 在开源界备受关注,也是开源运动早期的知名活动之一. ApacheCon 每年举 ...

  2. dubbo-admin的使用

    目录 了解 dubbo-admin 下载 dubbo-admin 使用 dubbo-admin 1.dubbo-admin是什么 dubbo-admin是一个监控程序,可以通过web很方便的管理监控众 ...

  3. python中冒泡排序代码实现

    1.冒泡排序代码如下图: #冒泡算法l=[12,4,56,10,6,2]for i in range(0,6): for j in range(i+1,6): if l[i]>l[j]: a=l ...

  4. 解决npm : 无法加载文件 D:\Code\renren-fast-vue\node_modules\.bin\npm.ps1,因为在......

    解决这个问题: 看看错误信息: npm : 无法加载文件 D:\DevPath\nodejs\npm.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https:/go.microsoft. ...

  5. VMware Tanzu社区版初体验

    VMware Tanzu社区版 VMware Tanzu Community Edition 是一个功能齐全.易于管理的 Kubernetes 平台,供学习者和用户使用. 它是一个免费的.社区支持的. ...

  6. python os.walk处理树状目录结构的文件

    在项目工作中,时常需要用到处理文件的方法,尤其是在windows环境下的树状目录结构 os.walk恰好能完美的处理这种树状目录结构文件,能高效地帮助我们得到我们需要处理的文件 目录结构: Deskt ...

  7. PHP伪协议与文件包含漏洞1

    PHP文件包含漏洞花样繁多,需配合代码审计. 看能否使用这类漏洞时,主要看: (1)代码中是否有include(),且参数可控: 如: (2)php.ini设置:确保 allow_url_fopen= ...

  8. 【UE4】GamePlay架构

    新标签打开或者下载看大图 更新: 增加 编程子系统 Subsystem 思维导图 Character pipeline

  9. 【数据结构与算法Python版学习笔记】树——二叉树的应用:解析树

    解析树(语法树) 将树用于表示语言中句子, 可以分析句子的各种语法成分, 对句子的各种成分进行处理 语法分析树 程序设计语言的编译 词法.语法检查 从语法树生成目标代码 自然语言处理 机器翻译 语义理 ...

  10. 关于takin-data,你想知道的都在这里(二)trace日志篇

    相信大家在使用takin的过程中都见到过压测过程中实时展示的请求流量明细和请求详情了吧,像这样: 还有这样: 这样的请求流量明细和调用链详情是怎么实现的呢,今天就带大家探究下. 在前面的启动命令篇(h ...