Lilypond+TexLive(LuaLatex+lyluatex)+VS Code实现谱文混排
没想到发文章反而更难被预览了,那就复制一份到随笔里好了。
多次尝试之下,终于实现了现阶段谱文混排的最理想方式:
1. 综合Latex的排版(还有广泛适用人群)的优势以及Lilypond的美观优势;
2. 在同一个编辑器里完成输入、与编译与浏览成品;
3. 谱面代码可以像数学公式那样有行间与多行显示;
4. 不需要设置环境变量,不需要在命令行里操作。
接下来就演示Lilypond、TexLive和VS Code三剑客合璧的全过程吧!
-----------------------------------
1. Lilypond安装
lilypond提供乐谱方面的排版
2 TexLive
TexLive提供文章排版
2.1 TexLive 安装
TexLive清华大学镜像下载见 Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
iso文件下载后直接双击打开,按下图红色框位置双击即可安装

2.2 lyluatex安装
lyluatex是在Latex里编译lilypond代码的关键,所以必须安装。另外,它只能在LuaLatex下编译,这一点后面会显示出来。
打开 Tex Live Manager ,如下图先选择全部package,然后再搜索lyluatex,如果显示已经安装,则不需要再专门安装lyluatex

3 VS code
VS Code 整合 Latex 和 Lilypond 的编辑环境
3.1 VS code 安装
先下载:下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux (microsoft.com)
然后下载中文语言支持包,点击方块处,搜Chinese然后下载,如下图

3.2 插件Latex Workshop
Latex Workshop用于支持Latex的编译和运行在vs code上运行
3.2.1 安装
搜Latex,然后找到 Latex Workshop 下载

3.2.2 配置
按 Ctrl + Shift + P,调出命令界面,进入首选项

在大括号中复制下面代码(大括号本身不要复制进去),之后保存设置
{
// Latex Workshop设置,从这里开始复制
"latex-workshop.latex.autoBuild.run": "never",
"latex-workshop.showContextMenu": true,
"latex-workshop.intellisense.package.enabled": true,
"latex-workshop.message.error.show": false,
"latex-workshop.message.warning.show": false,
"latex-workshop.latex.tools": [
{
"name": "lualatex",
"command": "lualatex",
"args": [
"-synctex=1",
"-interaction=nonstopmode",
"-file-line-error",
"-shell-escape", //这个命令行在网上的Latex Workshop设置里一般没有,所以直接recipe会报错
"%DOCFILE%"
]
}
],
"latex-workshop.latex.recipes": [
{
"name": "LuaLaTeX",
"tools": [
"lualatex"
]
},
],
"latex-workshop.latex.clean.fileTypes": [
"*.aux",
"*.bbl",
"*.blg",
"*.idx",
"*.ind",
"*.lof",
"*.lot",
"*.out",
"*.toc",
"*.acn",
"*.acr",
"*.alg",
"*.glg",
"*.glo",
"*.gls",
"*.ist",
"*.fls",
"*.log",
"*.fdb_latexmk"
],
"latex-workshop.latex.autoClean.run": "onFailed",
"latex-workshop.latex.recipe.default": "lastUsed",
"latex-workshop.view.pdf.internal.synctex.keybinding": "double-click",
"latex-workshop.view.pdf.external.viewer.command": "C:\\Program Files (x86)\\Adobe\\Acrobat DC\\Acrobat\\Acrobat.exe",
//双引号里是pdf浏览器的执行文件,可以根据实际情况更换
"latex-workshop.view.pdf.viewer": "tab"
//复制到这里结束
}
4 编译文件
先在vs code里新建*.tex文件,编写代码:
\documentclass{article}
%% 开头的设置可以确保中文随便打,并且能支持用LuaLatex编译。lyluatex只能通过LuaLatex来编译
\usepackage[UTF8]{ctex}
%% 使用lyluatex宏包,用以编译lilypond语句
\usepackage{lyluatex}
% geometry宏包可以用于灵活调整纸张大小
\usepackage{geometry}
\geometry{a4paper, scale=0.65}
%% 因为怕太密集,调整一下行距
\linespread{2.0}
%% 正文
\begin{document}
\title{使用lyluatex实现谱文混排}
\author{lilypond 手残粉}
\maketitle
搭建好lilypond和latex的设置之后,就可以实现各种方式的打谱。例如:
只需要输入 \textbackslash lilypond\{c' d' e'\},就能实现行中打谱 \lilypond{c' d' e'} 正如你所看到的那样。
大括号里的语法和lilypond里的语法一致。例如,输入\textbackslash lilypond\{ \textbackslash clef bass \textbackslash omit Staff.TimeSignature
c' d' e' \} 就可以看到变成\underline{低音谱号}以及\underline{去掉拍号}后\lilypond{\clef bass \omit Staff.TimeSignature c' d' e'}的打谱效果。
也可以使用\textbackslash begin\{lilypond\} 和 \textbackslash end\{lilypond\} 直接进入lilypond环境,像编辑数学公式一样编辑乐谱。
%% 空了一行
\vspace*{0.5\baselineskip}
%% lilypond 环境
\begin{lilypond}
music = \relative {
c d e
}
\score {
\new ChoirStaff \with {
instrumentName = "2 Fl."
} <<
\new Staff \transpose c c' \music
\new Staff {
\clef bass
\music
}
>>
}
\end{lilypond}
这样,既可以利用Latex的编排优势,又可以利用lilypond的打谱优势,lilypond笨拙的文字排版终于可以说拜拜了。
\end{document}
因为是tex文件,建立后vs code的左侧会出现tex字样,点击它,然后在COMMANDS一栏里点击Recipe: LuaLaTex

最后选择View in VSCode Tab,就可以看到成果了


Lilypond+TexLive(LuaLatex+lyluatex)+VS Code实现谱文混排的更多相关文章
- 谱文混排之lilypond-book
Lilypond有自带的谱文混排的工具lilypond-book,但是作为外行,一直很难搞清楚这个操作是怎样做的.很久之前请教过别人,但介于我的个人能力,只有粗浅理解,操作不得要领.在许多信息的拼凑之 ...
- VS Code 中 HTML 文档注释 js 语句异常
今天用 VS Code 编辑 html 文档时,发现快捷键注释 js 代码显示成 “<!-- …… -->”,怀疑是不是因为安装了某个插件,随后排查出系 Jinja 所致,将其禁用之后就 ...
- ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发
ABP代码生成器介绍 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始化.多语言.automapper自动注 ...
- 【2017年9月10日更新】ABP配套代码生成器(ABP Code Generator)帮助文档,实现快速开发
ABP代码生成器介绍 ABP Code Generator 针对abp这个框架做了一个代码生成器,功能强大.分为两大功能点,一个是数据层,一个是视图层. 数据服务层:通过它,可以实现表设计.领域层初始 ...
- 使用vs code编写Markdown文档以及markdown语法详解
首先安装vscode工具,下载地址如下: https://code.visualstudio.com/ 在vs code的扩展中安装: Markdown Preview Enhanced 这款插件,安 ...
- 使用 VS Code 撰写 Markdown 文档
众所周知, VS Code 是微软和社区一起开发的一款很优秀的高级代码编辑器.它不仅可以写出一手好代码,还能写出一篇好文章.利用 Markdown 就可以写出一篇排版美观的技术文章了. 而 Markd ...
- Leet Code 9.回文数
判断一个整数是否是回文数. 题解 普通解法:将整数转为字符串,然后对字符串做判断. ///简单粗暴,看看就行 class Solution { public boolean isPalindrome( ...
- 个人使用的lilypond第一个模板
手残非要用lilypond打谱真是…… 可是lilypond又能满足各种细节标记和谱文混排,这是musescore达不到的 所以还是开这个坑,希望能逐渐自己有能力编写自己的音乐教材 个人用Fresco ...
- Linux下的TeXlive 2015 中文问题
Update: 今日突然发现,我的xeLaTeX编译生成的pdf中文字在TeXMaker内置viewer.evince下查看均无法显示中文,中文字显示为空白,英语正常:但FireFox.Chrome浏 ...
随机推荐
- 常用的SQL查询思维/场景
前言 现在大多数开发工作中,已经可以使用一些组件或框架提供的强大的条件构造器来完成查询数据了,虽然强大而且方便,但也还是存在很多业务场景需要实打实的编写传统SQL语句.特别一些测试.维护.问题排查的时 ...
- Mybatis 一对多延迟加载,并且子查询中与主表字段不对应 (19)
Mybatis 一对多延迟加载,并且子查询中与主表字段不对应应用说明. 实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号 ...
- Python学习系列之一: python相关环境的搭建
前言 学习python和使用已经一年多了,这段时间抽空整理了一下以前的笔记,方便日后查阅. Python介绍 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Pytho ...
- BUAA-OO-最后单元总结
BUAA-OO-最后单元总结 经过一学期的魔鬼"折磨"后,OO课程终于要结束了!总体来说我对于作业的总体完成情况还是比较满意的,希望最后可以取得一个理想成绩. 一.第四单元架构设计 ...
- SpringCloud 2020.0.4 系列之服务降级
1. 概述 老话说的好:做人要正直,做事要正派,胸怀坦荡.光明磊落,才会赢得他人的信赖与尊敬. 言归正传,之前聊了服务间通信的组件 Feign,今天我们来聊聊服务降级. 服务降级简单的理解就是给一个备 ...
- Spring Authorization Server的使用
Spring Authorization Server的使用 一.背景 二.前置知识 三.需求 四.核心代码编写 1.引入授权服务器依赖 2.创建授权服务器用户 3.创建授权服务器和客户端 五.测试 ...
- 转:SYNOPSYS VCS Makefile文件编写与研究
SYNOPSYS VCS Makefile文件编写与研究 这个Makefile是synopsys提供的模板,看上去非常好用,你只要按部就班提供实际项目的参数就可以了.我们来看这个文件的头部说明:mak ...
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- tcp 三次握手建立连接难点总结
所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包. 三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号 ...
- CLion 2021.2 debug报错 process exited with status -1 (attach failed (Not allowed to attach to process.
Clion 升级 2021.2 版本后 debug 报错: process exited with status -1 (attach failed (Not allowed to attach to ...