使用 ABC 或 LilyPond 在 LaTeX 中设置音乐?

使用 ABC 或 LilyPond 在 LaTeX 中设置音乐?

明年我将开设一个教程,名为“音乐家的 LaTeX”,当然我希望向大家展示如何在他们的文本中加入音乐。我自己也是一名音乐家,但我从未使用过 LaTeX 来排版音乐。

我找到了两种在 LaTeX 文档中包含音乐的方法(另外:将音乐集成为图像),我想分享我的想法并寻求一些帮助(见下文)。首先,让我们更详细地了解这两种方法:

ABC

代码

% file abc.tex
\documentclass{scrartcl}
\usepackage{abc}

\begin{document}
Text
\begin{abc}[name=c-dur]
X: 1 % start of header
K: C % scale: C major
"Text"C4 G4 | (3FED c4 G2 |
\end{abc}
\end{document}

编译

pdflatex --shell-escape abc.tex

输出

ABC 输出

荷花池

代码

% file lp.lytex
\documentclass{scrartcl}

\begin{document}
Text
\begin[staffsize=12]{lilypond}
\relative c' {
  c2^"Text" g'2 \times 2/3 { f8 e d } c'2 g4
}
\end{lilypond}
\end{document}

编译

lilypond-book --output=out-dir --pdf lp.lytex
cd out-dir
pdflatex lp.tex

输出

LilyPond 输出

比较

现在让我们来谈谈其优点和缺点。

  • ABC工作流程更轻松比 LilyPond 的要好,只需要调用pdflatex。对于本教程的学生来说,这是更好的选择,因为他们中的大多数人都不是计算机极客。
  • ABC 语法似乎更轻松乍一看。
  • 荷花池使用正确的字体即LaTeX文档的字体。
  • abc.sty总是产生显示样式图像,即,它开始一个新行并将其内容居中。此外,现在似乎有一个选项可以缩短行,使其仅适合键入的注释,而不是跨越整个行\linewidth(解决方法:设置width=0.5\abcwidth)。
  • 据我所知荷花池更加灵活在排版音乐的方式数量上(排队显示样式,……)以及一般的排版可能性。
  • LilyPond 音乐字体看起来更好除了粗条线外。

问题

这些数字不是为了给出顺序。我给问题编号是为了方便回答……

  1. 您更喜欢使用哪种方式?对于不太擅长使用电脑的学生,您建议使用哪种方式?
  2. 我想知道是否有可能创建一个集成 LilyPond 的包,就像abc.sty宽度 ABC 符号一样
  3. 可以更改 ABC 输出的字体以使其与 LaTeX 主字体匹配吗?
  4. 有没有办法让 ABC 根据给定的音符数量找到合适的行长?
  5. 可以改变 LilyPonds 条线的宽度吗?

结论

我更愿意使用(和教授)LilyPond 的方式,但我担心编译工作流程会吓到学生。所以如果问题 2 能解决就太好了 :-)

我希望你能理解我的意思,因为我的英语可能不是很好。如果有不清楚的地方,请询问……

答案1

由于程序本身的限制,无法使用与 ABC 文档相同的字体abcm2ps。不过,我已经很久没有更新它了,可能情况已经发生了变化(我会看看)。

添加音乐片段的“内联”版本应该很容易,但由于该包旨在包含完整的曲调,因此不存在该版本。

以同样的方式与 LilyPond 集成并不容易。我有一些“可以工作”的代码。一个主要的障碍是从 TeX 端传递 LilyPond 参数和指令的难度(对于 lilypond-book 则相反)。

由于大家似乎对这个话题感兴趣,我将尝试开发代码。目前,以下代码

\begin{filecontents*}{testlily.ly}
\version "2.13.38" 

\include "config.ly" 

\relative c'' { 
c d e c 
}
\end{filecontents*}
\begin{filecontents*}{testlily3.ly}
\version "2.13.38" 

\include "config.ly" 

\relative c' {
  c2^"Text" g'2 \times 2/3 { f8 e d } c'2 g4
}

\end{filecontents*}
\documentclass[draft]{article} 
\usepackage[final]{graphicx} 
\usepackage[MacOSX,between-system-space=3]{lilypond} 
\usepackage{lipsum} 
\pagestyle{empty}
\begin{document}

Test: integrating \LaTeX{} and LilyPond. 

\lilypondfile{testlily} 

Not too bad, isn't it? 

\lipsum[2] 

\lilypondfile{testlily3} 

\end{document}

将产生以下输出:

在此处输入图片描述

答案2

莱克斯可能对这个目的和你提到的观众来说是一件好事。从维基百科

支持 LilyPond-Book
LyX 现在使用 lilypond-book 模块支持 LilyPond 音乐符号,通过在 LyX 窗口中直接输入 LilyPond 标记并通过 lilypond-book→(pdf)latex 进行处理。结合新的预览插图,您可以直接在 LyX 窗口中查看乐谱。有关更多信息,请参阅 LyX 的示例文件lilypond.lyx

相关内容