上下文

上下文

上下文

.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

命令

通过你的终端,进入你的工作目录。然后:

  1. 预编译lilypond-book(即从.lytex.tex

    $ lilypond-book --pdf --format=latex --output=LilyPondPrecompile filename.lytex
    

    (请注意,如果您调用您的.ly文件或.tex位于workingDirectory/part子文件夹中的其他文件,则必须将此参数传递到前面的命令行--include=part:)

  2. 移至子LilyPondPrecompile文件夹

    上一步生成了一个.tex文件.lytex。为了保持文件夹整洁,我们决定将预编译的结果(即生成的文件)放入子文件夹(即所代表--output=LilyPondPrecompile的)。现在我们必须更改工作目录来编译.tex文件。

    $ cd LilyPondPrecompile/
    
  3. 编译.tex文件(即从.tex.pdf

    $ pdflatex filename.tex
    

    如果需要,请重复此步骤。(请注意,pdflatex LilyPondPrecompile/filename.tex从原始工作目录调用似乎不起作用)。

你完成了!

相关内容