我在 Ubuntu 14.04 上使用 MuseScore 1.3 来编写乐谱。然后我将它们保存为 LilyPond 文件,并使用 将它们包含到我的 tex 文档中\lilypondfile
,如下所示:
\documentclass[a4paper]{article}
\begin{document}
Larger examples can be put into a separate file, and introduced with \verb+\lilypondfile+.
\lilypondfile[quote,noindent]{scores/Exercise_1.05.ly}
\end{document}
然后,为了编译,我执行以下操作:
$ lilypond-book --pdf solfeo.lytex
$ xelatex solfeo.tex
但是,插入的乐谱的宽度不适合文档,并且超出了页面的限制。
此外,lilypond-book
似乎忽略了我在 中传递给它的设置\lilypondfile[quote,noindent]{scores/Exercise_1.05.ly}
。如果我理解得没错的话,quote
它会在乐谱前打印注释并noindent
删除第一行的缩进。它既没有引用注释,也没有删除缩进。
我是 Lilypond 的新手,我曾尝试过在 MuseScore 中更改文档的边距,也尝试过一些 tex 命令,但我找不到使其适合的方法。如果我将 ly 文件与lilypond
PDF 一起编译,则看起来很完美(但在这种情况下,我只能获得乐谱)。只有当我将ly
文件嵌入到lytex
文件中时,乐谱才会超出边距。非常感谢您提出建议或更正。我做错了什么?谢谢!
PD 这是由 MuseScore 生成的 ly 代码:
%=============================================
% created by MuseScore Version: 1.3
%=============================================
\version "2.12.0"
#(set-default-paper-size "a4")
\paper {
line-width = 190\mm
left-margin = 10\mm
top-margin = 10\mm
bottom-margin = 20\mm
%%indent = 0 \mm
%%set to ##t if your score is less than one page:
ragged-last-bottom = ##t
ragged-bottom = ##f
%% in orchestral scores you probably want the two bold slashes
%% separating the systems: so uncomment the following line:
%% system-separator-markup = \slashSeparator
}
\header {
}
AvoiceAA = \relative c'{
\set Staff.instrumentName = #""
\set Staff.shortInstrumentName = #""
\clef treble
%staffkeysig
\key c \major
%barkeysig:
\key c \major
%bartimesig:
\time 4/4
\tempo "Andante" 4 = 96 a'2 a | % 1
a r | % 2
r a | % 3
r a | % 4
a r | % 5
a a | % 6
a a4 a | % 7
a r a2 | % 8
r4 a a2 | % 9
a4 r2 a4 | % 10
a2 r4 a \bar "|." | % 11
a2 r \bar "|."
}% end of last bar in partorvoice
\score {
<<
\context Staff = ApartA <<
\context Voice = AvoiceAA \AvoiceAA
>>
\set Score.skipBars = ##t
%%\set Score.melismaBusyProperties = #'()
\override Score.BarNumber #'break-visibility = #end-of-line-invisible
%%every bar is numbered.!!!
%% remove previous line to get barnumbers only at beginning of system.
#(set-accidental-style 'modern-cautionary)
\set Score.markFormatter = #format-mark-box-letters %%boxed rehearsal-marks
\override Score.TimeSignature #'style = #'() %%makes timesigs always numerical
%% remove previous line to get cut-time/alla breve or common time
\set Score.pedalSustainStyle = #'mixed
%% make spanners comprise the note it end on, so that there is no doubt that this note is included.
\override Score.TrillSpanner #'(bound-details right padding) = #-2
\override Score.TextSpanner #'(bound-details right padding) = #-1
%% Lilypond's normal textspanners are too weak:
\override Score.TextSpanner #'dash-period = #1
\override Score.TextSpanner #'dash-fraction = #0.5
%% lilypond chordname font, like mscore jazzfont, is both far too big and extremely ugly ([email protected]):
\override Score.ChordName #'font-family = #'roman
\override Score.ChordName #'font-size =#0
%% In my experience the normal thing in printed scores is maj7 and not the triangle. (olagunde):
\set Score.majorSevenSymbol = \markup {maj7}
>>
%% Boosey and Hawkes, and Peters, have barlines spanning all staff-groups in a score,
%% Eulenburg and Philharmonia, like Lilypond, have no barlines between staffgroups.
%% If you want the Eulenburg/Lilypond style, comment out the following line:
\layout {\context {\Score \consists Span_bar_engraver}}
}%% end of score-block
#(set-global-staff-size 20)
更新 1
我正在粘贴编译的输出lilypond-book
,尽管我不确定它对你有多大用处,因为它是西班牙语:
$ lilypond-book --pdf solfeo.lytex lilypond-book(GNU LilyPond)2.18.2 正在读取 solfeo.lytex…… 在文件“/tmp/tmpN3IGhy.tex”上运行“pdflatex”来检测默认页面设置。 解剖…… 正在编写片段... 加工... 正在运行 lilypond...... GNU LilyPond 2.18.2 继续 «snippet-map-3001632500490555250.ly» 分析…… «soleo.lytex» 程序 分析…… 重新标记进入:“scores/Exercise_1.05.ly” 诠释音乐...[8] 正在处理图形对象... 计算线跳... 下载系统... 从第 1 页开始“ba/lily-399811ac.eps”... 存储在«ba/lily-399811ac.pdf»中... 从第 1 页开始“ba/lily-399811ac-1.eps”... 从第 1 页开始“ba/lily-399811ac-2.eps”... 存储在«ba/lily-399811ac-1.pdf»中... 存储在«ba/lily-399811ac-2.pdf»中... 创建«ba/lily-399811ac-systems.texi»... 创建«ba/lily-399811ac-systems.tex»... 输入“ba/lily-399811ac-systems.count”... 祝福你。编译已令人满意地完成。 链接文件... 正在编译 /media/admin/DATOS/Dropbox/code/solfeo-book/out/solfeo.tex... 正在写入“/media/admin/DATOS/Dropbox/code/solfeo-book/out/solfeo.tex”...
我希望这有帮助
更新 2
我尝试了另一种方法。我已将 MuseScore 导出到 MusicXML。然后我使用了:
musicxml2ly Exercise_1.05.xml -o Exercise_1.05_.ly
将.xml
文件转换为.ly
文件,然后重新编译。宽度仍然不适合屏幕=(我已经没有主意了。
答案1
lilypond-book
只是一种复杂的方法,可以生成每个示例的裁剪 PDF 图像,然后自动将它们包含在 LaTeX 文件中。
您可以手动完成相同的操作,在我看来更简单,通过使用 EPS 后端来lilypond
生成裁剪为音乐大小的图像。
然后唯一真正的 LaTeX 组件是使用该包包含 PDF 图像graphicx
。主要的是您可以在lilypond
源中设置图像的宽度,然后将其以其自然大小包含在 LaTeX 文档中。
在下面的示例中,您可以在所有音乐示例源文件中使用\include
该文件,编译后它们将生成裁剪的 PDF。example.ly
.ly
此示例的三个文件:
example.ly
-- 裁剪音乐示例的页面布局lilypond
score.ly
-- 您的音乐示例,\includes
页面布局命令来自此example.ly
analysis.tex
-- 示例 TeX 文件展示如何包含图像。
文件 1,example.ly
% STYLE SHEET FOR IN-TEXT EXAMPLES
\version "2.18.2"
#( ly:set-option 'backend 'eps )
\paper{
indent = 0.75\in
line-width = 6.5\in
top-margin = 1\in
bottom-margin = 2\in
ragged-bottom = ##t
ragged-last-bottom = ##t
oddFooterMarkup=##f
oddHeaderMarkup=##f
bookTitleMarkup = ##f
scoreTitleMarkup = ##f
}
文件2——score.ly
\version "2.18.2"
\include "example.ly"
Music = {
\clef "tenor"
\time 3/4
c4 d4 e4 |
f2 g4~ |
g4 a2 |
b2. |
c'2. |
\bar "||"
}
\score{
<<
\new Staff { \Music }
>>
\layout {}
}
文件 3 -analysis.tex
\documentclass{article}
\usepackage[letterpaper,margin=1in]{geometry}
\usepackage{graphicx}
\usepackage{lipsum}
\begin{document}
\section{Music Example}
\lipsum[1]
See example~\ref{fig:score1}.
%*******************
\begin{figure}
\includegraphics{score}\centering
\caption{Score example 1}
\label{fig:score1}
\end{figure}
%*******************
\lipsum[2]
\end{document}
答案2
我知道这是一个老问题,但我今天正在寻找解决方案,所以我想它仍然有意义。这是我正在使用的解决方案,我只是把它放在我的文档的序言中。
\usepackage{graphicx}
\setkeys{Gin}{width=\linewidth}
这是有效的,因为在底层正在使用的是\includegraphics
,我只是将这些图像的默认宽度设置为一行的宽度,这样它就不会溢出页面。