更新 1

更新 1

我在 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 文件与lilypondPDF 一起编译,则看起来很完美(但在这种情况下,我只能获得乐谱)。只有当我将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


此示例的三个文件:

    1. example.ly-- 裁剪音乐示例的页面布局lilypond
    1. score.ly-- 您的音乐示例,\includes页面布局命令来自此example.ly
    1. 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,我只是将这些图像的默认宽度设置为一行的宽度,这样它就不会溢出页面。

相关内容