我正在尝试在 Windows 上使用 Lilypond。lilypond-book 似乎跳过了子文件。
我在 main.lytex 中创建了一个最小工作/不工作示例,我正在使用 CMD 文件进行处理(见下文)。
前两个版本(lilypond-environment 和 lilypondfile)可以运行,但是第三个版本(包含在子文件中)不可以:
有什么想法吗,为什么它不起作用?
我是否应该将所有子文件放入一个子目录中,并告诉 lilypond-book 处理此目录中的所有文件?(怎么做?)
我是否忘了告诉 lilypond-book 包含特定目录?
笔记:
- 在 Linux 上它可以工作(使用
\input
而不是\include
) - 在操作系统上它可以工作(使用
\input
而不是\include
)
主要.lytex:
\documentclass{article}
\begin{document}
\section{Lilypond directly}
\begin{lilypond}
\relative c'
{
c4 d e f | g1
}
\end{lilypond}
\section{Lilypond via include}
\lilypondfile{sheet.ly}
\section{Lilypond included from subfile}
\include{sub}
\end{document}
sub.tex:
\lilypondfile{sheet.ly}
sheet.ly:
\version "2.16.2"
\score {
<<
\relative c'
{
c4 d e f | g1
}
>>
}
我的CMD文件:
set "outputdir=out"
set "includedir=inc"
set "maindir=%CD%"
set "mainfile=main"
set "TEXINPUTS=%TEXINPUTS%;%CD%"
set "lytexfile=%mainfile%.lytex"
set "latexfile=%mainfile%.tex"
set "pdffile=%mainfile%.pdf"
lilypond-book --pdf --output=%outputdir% --loglevel=ERROR %lytexfile%
cd %outputdir%
pdflatex --interaction=nonstopmode --include-directory=%maindir% %latexfile%
cp %pdffile% ../%pdffile%
cd ..
命令行输出:
D:\path_to_working_dir>createPDF.cmd 这是 pdfTeX,版本 3.1415926-2.3-1.40.12(MiKTeX 2.9) 进入扩展模式 (D:\path_to_working_dir\out\main.tex) LaTeX2e 巴别塔 (Babel) 和英语、南非荷兰语、古希腊语、阿拉伯语、亚美尼亚语、阿萨姆语、巴斯克语、孟加拉语、博克马尔语、保加利亚语、加泰罗尼亚语、科普特语、克罗地亚语、捷克语、丹麦语、荷兰语、世界语、爱沙尼亚语、波斯语、芬兰语、法语、加利西亚语、德语、german-x-2009-06-19、希腊语、古吉拉特语、印地语、匈牙利语、冰岛语、印度尼西亚语、国际语、爱尔兰语、意大利语、卡纳达语、库尔曼吉语、老挝语、拉丁语、拉脱维亚语、立陶宛语、马拉雅拉姆语、马拉地语、蒙古语、mongolianlmc、monogreek、ngerman、ngerman-x-2009-06-19、尼诺斯克语、奥里雅语、旁遮普语、拼音、波兰语、葡萄牙语、罗马尼亚语、俄语、梵语、塞尔维亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、瑞典语、瑞士德语、泰米尔语、泰卢固语、土耳其语、土库曼语、英国英语、乌克兰语、上索布语、usenglishmax、威尔士语、loaded。 (“C:\ Program Files(x86)\ MiKTeX 2.9 \ tex \ latex \ base \ article.cls” 文档类别:文章 2007/10/19 v1.4h 标准 LaTeX 文档类别 (“C:\Program Files (x86)\MiKTeX 2.9\tex\latex\base\size10.clo”)) (“C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\graphics.sty” (“C:\Program Files (x86)\MiKTeX 2.9\tex\latex\graphics\trig.sty”) (“C:\Program Files (x86)\MiKTeX 2.9\tex\latex\00miktex\graphics.cfg”) (“C:\Program Files (x86)\MiKTeX 2.9\tex\latex\pdftex-def\pdftex.def” (“C:\Program Files (x86)\MiKTeX 2.9\tex\generic\oberdiek\infwarerr.sty”) (“C:\Program Files (x86)\MiKTeX 2.9\tex\generic\oberdiek\ltxcmds.sty”)) (D:\path_to_working_dir\out\main.aux) (C:\Users\hardmooth\AppData\Roaming\MiKTeX\2.9\tex\context\base\supp-pdf.mkii [正在加载 MPS 至 PDF 转换器(版本 2006.09.02)。] )(D:\path_to_working_dir\out\87/lily-da14f453-systems.tex ) (D:\path_to_working_dir\out\05/lily-f1bfdfe8-systems.tex )[1{C:/Users/hardmooth/AppData/Local/MiKTeX/2.9/pd ftex/config/pdftex.map} ](D:\path_to_working_dir\out\sub.tex (D:\path_to_working_dir\out\46/lily-dc205d25-systems.tex !LaTeX 错误:未找到文件“46/lily-dc205d25-1”。 请参阅 LaTeX 手册或 LaTeX Companion 以获取解释。 输入 H 即可获得紧急帮助。 ... l.1 \includegraphics{46/lily-dc205d25-1} % ))[2](D:\path_to_working_dir\out\main.aux (D:\path_to_working_dir\out\sub.aux))) (更多信息请参阅记录文件) 输出写在 main.pdf 上(2 页,37499 字节)。 记录写在 main.log 上。
答案1
有了lyluatex
,包含的文件就可以工作了。主要.lytex应该改名主文本,并修改为包含lyluatex
包:
\documentclass{article}
\usepackage{lyluatex}
\begin{document}
\section{Lilypond directly}
\begin{lilypond}
\relative c'
{
c4 d e f | g1
}
\end{lilypond}
\section{Lilypond via include}
\lilypondfile{sheet.ly}
\section{Lilypond included from subfile}
\include{sub}
\end{document}
其他文件与问题中的一样。编译应该使用lualatex
和完成-shell-escape
(不需要预处理器命令):
lualatex -shell-escape main