
Я использую MuseScore 1.3 на Ubuntu 14.04 для записи своих партитур. Затем я сохраняю их как файлы 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 Вот код ly, сгенерированный MuseScore:
%=============================================
% 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 сольфео.lytex lilypond-книга (GNU LilyPond) 2.18.2 Читаю сольфео.литекс... Запуск `pdflatex' для файла `/tmp/tmpN3IGhy.tex' для определения настроек страницы по умолчанию. Препарирование... Написание отрывков... Обработка... Запущенный пруд с лилиями... GNU LilyPond 2.18.2 Процесс «snippet-map-3001632500490555250.ly» Проанализировано... Процесс «solfeo.lytex» Проанализировано... Переименуйте запись в: «scores/Exercise_1.05.ly» Интерпретация музыки...[8] Предварительная обработка графических объектов... Рассчитать скачки линии... Разработал системы... Выход из страницы начался с «ba/lily-399811ac.eps»... Загружено в «ba/lily-399811ac.pdf»... Выход из страницы начался с «ba/lily-399811ac-1.eps»... Выход из страницы начался с «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
добавить файл example.ly
во все исходные файлы музыкальных примеров .ly
, и после компиляции они создадут обрезанные PDF-файлы.
Три файла для этого примера:
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
я просто устанавливаю ширину этих изображений по умолчанию на ширину строки, чтобы они никогда не выходили за пределы страницы.