将 Lilypond 文件合并到 (La)TeX 中

将 Lilypond 文件合并到 (La)TeX 中

我正在尝试将 Lilypond 文件合并到 LaTeX 中。我使用 MacOS Sonoma 14.1.1。TexShop (5.2.2) 并在 Frescobaldi 3.3.0 中编写我的 Lilypond 文件,它们可以毫无问题地编译成 pdf 文件。

这个问题之前已经问过,我结合了如何在 Texshop 中为 LuaLaTeX 运行 `--shell-escape`,具体步骤:

我只有一个引擎文件可以执行此操作,或者使用arara引擎。将以下文件保存lualatex-shell.engine~/Library/TeXShop/Engines

#!/bin/tcsh

set path= ($path /usr/texbin /usr/local/bin)
lualatex --shell-escape --file-line-error --synctex=1 "$1"

在终端类型中:

chmod +x ~/Library/TeXShop/Engines/lualatex-shell.engine

然后重新启动 TeXShop,您可以通过从宏菜单中的程序项中选择它来调用它,或者通过添加一个魔术注释行:

% !TEX TS-program = lualatex-shell

我认真遵循所有这些步骤,并将其应用于几个 lilypond 示例,例如我的文件 test4.tex

!TEX TS-program = lualatex-shell
\documentclass{article}
\usepackage{lyluatex}
\begin{document}
\begin{lilypond}
\relative{\time 8/4       \key g \major   g'4 a b c d e fis g}
\end{lilypond}
\end{document}

但是当我在 TeXshop 中排版或使用终端时出现以下错误

(lyluatex) 使用 LilyPond 可执行文件“lilypond”编译分数 tmp-ly/e0245313228d92c30cf69cc0a8ddc120。...ocal/t exlive/2023/texmf-dist/tex/latex/base/ltluatex.lua:110:模块 lyluatex 错误:无法启动 LilyPond。 (lyluatex) 请检查 LuaLaTeX 是否使用 (lyluatex) --shell-escape 选项启动,并且“program”(lyluatex) 指向有效的 LilyPond 可执行文件。 (lyluatex) 在输入第 9 行

堆栈回溯:[C]:在函数“错误”中...ocal/texlive/2023/texmf-dist/tex/latex/base/ltluatex.lua:110:在函数<...ocal/texlive/2023/texmf-dist/tex/latex/base/ltluatex.lua:109>中(...尾部调用...)./lyluatex.lua:1106:在方法“process”中[\directlua]:1:在主块中。\ly@compilescore...directlua {ly.score:process()}

l.9 \end{lilypond}

我在这里完全不知所措,因为它似乎知道 lyluatex 包,但在 lilypond 代码中发现错误。

有人能帮我解决这个问题吗?

请注意,我不是 (La)TeX 专家,如果可以的话请保持简单!

答案1

所以这里有两个问题。第一个是你的lilypond安装方式。我使用 安装了它homebrew,所以我的lilypond可执行文件的位置在/opt/homebrew/bin。如果你没有以这种方式安装它,那么你的可执行文件可能在其他地方,你需要能够告诉你的引擎文件在哪里找到它。如果你使用 安装,你lilypondhomebrew需要/opt/homebrew/bin在引擎文件中添加路径:

set path= ($path /usr/texbin /usr/local/bin /opt/homebrew/bin)
lualatex --shell-escape --file-line-error --synctex=1 "$1"

然后您可以使用此引擎编译文件。但是,除非您有办法lilypond从命令行运行,否则它不会起作用。一旦您开始运行它,就需要用可执行文件/opt/homebrew/bin的实际路径替换路径lilypond

如果您lilypond只是.ziplilypond.org下载页面解压文件进行安装,那么您lilypond-2.24.3的计算机中就会有一个文件夹(实际版本号可能不同)。假设您将其放入“应用程序”文件夹中,那么lilypond您放入引擎的路径将是:

/Applications/lilypond-2.24.3/bin

这将不允许你lilypond从命令行运行,除非你进一步将此路径添加到你的 shell .profile(或等效程序)。因此,我建议使用 进行安装lilypondhomebrew因为它将正确设置任何已安装软件的路径homebrew

相关内容