上下文
.ly
我正在生成一本赞美诗小册子(主要包含文本),并且我想根据我已有的文件轻松插入乐谱片段。
我有两种文件:
- 我的
.tex
文件,应该可以在没有 lilypond 代码的情况下进行编译 - 我的
.ly
文件,我也用它生成.midi
文件和常规乐谱。
(目的是能够独立修改它们 - 并整理我的main.tex
。)
我的问题
我正在寻找一种简单的方法将我已经存在的.ly
文件.tex
以这样的模式包含到我的文档中:
\documentclass{scrbook}
[...]
\begin{document}
Some regular text
\begin{lilypond}
\input{part/mylyfile.ly}
\end{lilypond}
\end{document}
我的考验
我已经看到了两步编译首先lilypond-book
,然后(xe)latex
;一个有趣的for-newbee lilypond-in-latex-MWE;最后,使用 arara 实现编译自动化...
我能够运行 MWE 并生成相关.pdf
文档。
我的问题
但是,我遇到了以下问题:
我注意到它
\input
不适用于lilypond
-environment。有没有办法调用外部.ly
文件?如果我只是将文件复制粘贴
ly
到环境中,就会出现很多错误,例如livret.lytex:40:44: Erreur : syntax error, unexpected '.', expecting SCM_FUNCTION or SCM_IDENTIFIER or SCM_TOKEN \override Lyrics.LyricText .font-shape = #'italic
指的是
emph = { \override Lyrics.LyricText.font-shape = #'italic }
- 我还收到了我的错误
\tuplet
,我必须用 替换它\times
。
- 我还收到了我的错误
您是否有什么想法,我可以探索哪些想法,以免被迫重写所有.ly
代码?
答案1
正如所提到的图哈米,解决方案是使用命令\lilypondfile[options]{myFile.ly}
。可用选项的详细信息请参见lilypond 在线文档。
以下是编译文档的工作流程:
文件
\documentclass{scrbook}
[...]
\begin{document}
Some regular text.
\lilypondfile[noindent,quote]{myFile.ly}
\end{document}
重要的:您必须将此文件另存为,filename.lytex
而不是文件.tex
。
这myFile.ly
是一个正常的 lylipond 文件。
编译
(我在这里给出了我现成的编译工作流程。当然,您需要根据您的需要进行调整。)
工作目录
在您的工作目录中,您需要:
- 您的
filename.lytex
文件(见上文), - 您在文件
myFile.ly
中调用的文件.lytex
- 名为
LilyPondPrecompile
命令
通过你的终端,进入你的工作目录。然后:
预编译
lilypond-book
(即从.lytex
到.tex
)$ lilypond-book --pdf --format=latex --output=LilyPondPrecompile filename.lytex
(请注意,如果您调用您的
.ly
文件或.tex
位于workingDirectory/part
子文件夹中的其他文件,则必须将此参数传递到前面的命令行--include=part
:)移至子
LilyPondPrecompile
文件夹上一步生成了一个
.tex
文件.lytex
。为了保持文件夹整洁,我们决定将预编译的结果(即生成的文件)放入子文件夹(即所代表--output=LilyPondPrecompile
的)。现在我们必须更改工作目录来编译.tex
文件。$ cd LilyPondPrecompile/
编译
.tex
文件(即从.tex
到.pdf
)$ pdflatex filename.tex
如果需要,请重复此步骤。(请注意,
pdflatex LilyPondPrecompile/filename.tex
从原始工作目录调用似乎不起作用)。
你完成了!