LaTeX 替代品中的音乐排版

LaTeX 替代品中的音乐排版

据我所知,LilyPond 是迄今为止最好的 tex 类音乐排版软件。其他基于 tex 的替代品,如 musixtex 或 abc,看起来并不专业。我想要一个工作流程,让我可以编写一个 TeX(可能是 LaTeX)文档,其中包含 lilypond 记谱的音乐示例,就像数学家包括数学方程一样。将音乐摘录视为与文档分离的图形,就像告诉数学家将方程式视为图形一样,让人回想起黑暗时代。

我原来的问题:我知道 tex-first 方法中的 lyluatex 和 lilypond-book。截至 2023 年,我发现 LyLuaTeX 与 MiKTeX 不兼容。在尝试使用 texlive 后,我让它工作了**,但它有两个发行版,很烦人。此外,由于我在尝试让它工作时遇到了许多错误,我对它的稳健性有点怀疑(但也许它会证明我错了)。因此我的问题是:

  • 除了 LyLuaTeX 之外,还有其他选择可以提供这种集成吗?

(之前已经问过这个问题,但现在已经是 2022 年了,所以情况可能已经发生了变化)

更新:在对 TeX 更加熟练之后,我完全同意 David Carslisle 的评论,即 TeX live 完全没有问题。我太草率地驳回了它。其次,请参阅下面的 LyLuaTeX 作者的回答,其中声称 MiKTeX 兼容性已得到修复。因此 LyLuaTeX 可能是最好的 TeX-first 方法。我还发现 lilypond-book 工作得相对不错。但是,如果有任何新的解决方案,请在此处发布!


** 我收到一个 rawget 错误 - 某个函数需要一个表作为参数。通过完全删除 lyluatex.lua 上的第 814 行,可以绕过此错误,然后 lyluatex 似乎可以正常工作。这似乎是 MiKTeX 和 LyLuaTeX 之间的某种冲突,这两者都目前安装在我的系统上。

答案1

对于少量的音乐符号,您可以使用我的musicographyLaTeX 包;对于更广泛的范围,如果您不需要pdflatex,那么也有lilyglyphs

如果您有完整的音乐示例,我会将 Lilypond 视为任何其他可生成图像以包含在 LaTeX 中的图形程序。在 Lilypond(或 Dorico 或 Finale)中制作所有示例,然后将它们导出到 PDF 或图像文件目录中,然后只需\includegraphics带上图像即可。您可以使用该pdfcrop工具修剪要包含的图像周围的边距。

特别是如果你是 Lilypond 的新手,其“集成解决方案”(lyluatexlilypond-book)可能会给你带来比需要的更多的麻烦。

例如,您有一个需要包含在文档中的音乐示例。

音乐示例源文件:music-examples/example1.ly

\version "2.22"
\header { tagline = ##f }
{ c'4 d'4 e'2 }

文档:document.tex

\documentclass{article}
\usepackage{graphicx}
\NewDocumentCommand{\includeMusic}{ m }{\includegraphics{build/img/#1}}
\begin{document}
Here is some music:
\includeMusic{example1}
\end{document}

现在您需要一个 Makefile 来首先创建和裁剪图形,然后运行包含图形的 LaTeX。

Makefile

dirs    = aux build build/img
tex_in  = $(wildcard *.tex)
pdf_out = $(addprefix build/,$(tex_in:%.tex=%.pdf))

ly_in   = $(wildcard music-examples/*.ly)
ly_img  = $(addprefix aux/,$(notdir $(ly_in:%.ly=%.pdf)))
img_out = $(addprefix build/img/,$(notdir $(ly_img)))

.PHONY : all clean

all : $(pdf_out) $(img_out)

build/%.pdf : aux/%.pdf
        cp $< $@

aux/%.pdf : %.tex $(img_out) | $(dirs)
        latexmk -outdir=aux -pdf $<

build/img/%.pdf : aux/%.pdf
        pdfcrop $< $@

aux/%.pdf : music-examples/%.ly | $(dirs)
        lilypond --output=aux/ $<

$(dirs) :
        mkdir -p $(dirs)

clean :
        rm -rf $(dirs)

如果您需要配置 Lilypond 输出以更好地适合您的 LaTeX 文档(例如,设置最佳文本宽度、缩进和边距,使用相同的字体),您可以将其放在 Lilypond 文件中(例如example.ly)并添加\include "example.ly"到您的所有 Lilypond 示例文件中。

要编译你的文档,只需输入make。输出将在build目录中。

答案2

lyluatex 的主要作者在这里。截至 2023 年,lyluatex 与 MiKTeX 之间的兼容性问题应该修复 LilyPond <= 2.22。有一个已知错误对于最新的 LilyPond,如果有人想查看它,它正在等待拉取请求(对我来说相当复杂,因为我没有 Windows 机器)。

请随意填写问题以防出现问题,因为我不关注 tex.stackexchange。

答案3

看看这里有没有关于“如何在科学文献中将音乐示例与开源工具相结合”的类似英文文档?

所引用的文档是用德语写的,这可能不太好。但是,作者扫描、尝试并评估了 2020 年可用的所有与音乐相关的 LaTeX 软件包。例如,请参见第 91 页的“流程图”,它很好地展示了可行性。

就作者的目的而言,为了协助音乐学,他显然倾向于Lilipond流动。

如果你只是排版,我发现musixtex它并不难理解和应用。我一直通过 pdflatex (MikTeX) 运行它。

欲了解更多示例,你可能需要查看https://tex.stackexchange.com/search?q=musixtex或最近对 musixtex 的强力使用https://tex.stackexchange.com/search?q=user%3A285170

相关内容