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. logstash输出到rabbitmq

    场景 将应用日志文件发送到rabbitmq. filebeat 不支持rabbitmq作为输出.因此,需要先将文件由filebeat发送到logstash ,再由logstash 输出到rabbitm ...

  2. uoj22 外星人(dp)

    题目大意: 给定一个\(n\)个数的序列\(a\),给定一个\(x\),其中\(a\)数组可以进行顺序的调换,每一个\(a_i\)都能使$x=x \mod a_i \(, 求最后经过一系列计算后的\) ...

  3. 初识Tomcat源码

    Tomcat 部署的三种方式 打包成war包 部署到webapp目录录下 为什么要打包成war包,而不是jar包呢? 因为jar包可能是一个项目,也可能是一个依赖,Tomcat读取容易造成混淆.于是一 ...

  4. Hive SQL的底层编译过程详解

    本文结构采用宏观着眼,微观入手,从整体到细节的方式剖析 Hive SQL 底层原理.第一节先介绍 Hive 底层的整体执行流程,然后第二节介绍执行流程中的 SQL 编译成 MapReduce 的过程, ...

  5. flask 之 请求钩子

    请求钩子 什么是请求钩子? 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要统一处理,为了让每个视图函数避免编写重复功能的代码,flask提供了统一的接口可以添加这些处理函数,即请求钩子. f ...

  6. 最详细的Android SDK下载安装及配置教程-------全文均为引用

    <https://www.cnblogs.com/gufengchen/p/11038029.html>

  7. Kettle的安装及简单使用

    Kettle的安装及简单使用 目录 Kettle的安装及简单使用 一.kettle概述 二.kettle安装部署和使用 Windows下安装 案例1:MySQL to MySQL 案例2:使用作业执行 ...

  8. 92.反转链表II

    题目 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right .请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 . ...

  9. [敏捷软工团队博客]Beta阶段项目展示

    团队成员简介和个人博客地址 头像 姓名 博客园名称 自我介绍 PM 测试 前端 后端 dzx 秃头院的大闸蟹 大闸蟹是1706菜市场里无菜可卖的底层水货.大闸蟹喜欢音乐(但可惜不会),喜欢lol(可惜 ...

  10. [Beta]the Agiles Scrum Meeting 3

    会议时间:2020.5.14 20:00 1.每个人的工作 今天已完成的工作 成员 已完成的工作 yjy 实现前端界面美化 tq 实现查看.删除测试点功能的前端修复功能中的bug wjx 升级系统实现 ...