mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Add lilypond external inset
* src/graphics/GraphicsConverter.C (build_script): Change the current directory to the directory of the output file * src/converter.C (Converters::convert): Add comment * lib/external_templates: Add lilypond template * lib/configure.py (checkFormatEntries): Add lilypond format (checkConverterEntries): Add lilypond converter git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15245 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
b3b65e6f70
commit
90867eff0d
@ -254,6 +254,7 @@ def checkFormatEntries():
|
||||
\Format docbook sgml DocBook B "" "%%" "document"
|
||||
\Format docbook-xml xml "Docbook (XML)" "" "" "%%" "document"
|
||||
\Format literate nw NoWeb N "" "%%" "document"
|
||||
\Format lilypond ly "LilyPond music" "" "" "%%" "vector"
|
||||
\Format latex tex "LaTeX (plain)" L "" "%%" "document"
|
||||
\Format linuxdoc sgml LinuxDoc x "" "%%" "document"
|
||||
\Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "document"
|
||||
@ -408,6 +409,24 @@ def checkConverterEntries():
|
||||
'latex2html -no_subdir -split 0 -show_section_numbers $$i', 'hevea -s $$i'],
|
||||
rc_entry = [ r'\converter latex html "%%" "originaldir,needaux"' ])
|
||||
#
|
||||
path, lilypond = checkProg('a LilyPond -> ESP/PDF/PNG converter', ['lilypond'])
|
||||
if (lilypond != ''):
|
||||
version_string = cmdOutput("lilypond --version")
|
||||
match = re.match('GNU LilyPond (\S+)', version_string)
|
||||
if match:
|
||||
version_number = match.groups()[0]
|
||||
version = version_number.split('.')
|
||||
if int(version[0]) > 2 or (len(version) > 1 and int(version[0]) == 2 and int(version[1]) >= 6):
|
||||
addToRC(r'''\converter lilypond eps "lilypond -b eps --ps $$i" ""
|
||||
\converter lilypond png "lilypond -b eps --png $$i" ""''')
|
||||
if int(version[0]) > 2 or (len(version) > 1 and int(version[0]) == 2 and int(version[1]) >= 9):
|
||||
addToRC(r'\converter lilypond pdf "lilypond -b eps --pdf $$i" ""')
|
||||
print '+ found LilyPond version %s.' % version_number
|
||||
else:
|
||||
print '+ found LilyPond, but version %s is too old.' % version_number
|
||||
else:
|
||||
print '+ found LilyPond, but could not extract version number.'
|
||||
#
|
||||
# FIXME: no rc_entry? comment it out
|
||||
# checkProg('Image converter', ['convert $$i $$o'])
|
||||
#
|
||||
|
@ -196,6 +196,55 @@ Template ChessDiagram
|
||||
TemplateEnd
|
||||
|
||||
|
||||
Template LilyPond
|
||||
GuiName "Lilypond typeset music"
|
||||
HelpText
|
||||
Sheet music typeset by GNU LilyPond,
|
||||
converted to .pdf or .eps for inclusion
|
||||
Using .eps requires at least lilypond 2.6
|
||||
Using .pdf requires at least lilypond 2.9
|
||||
HelpTextEnd
|
||||
InputFormat "lilypond"
|
||||
FileFilter "*.ly"
|
||||
AutomaticProduction true
|
||||
Transform Rotate
|
||||
Transform Resize
|
||||
Transform Clip
|
||||
Transform Extra
|
||||
Format LaTeX
|
||||
TransformOption Rotate RotationLatexOption
|
||||
TransformOption Resize ResizeLatexOption
|
||||
TransformOption Clip ClipLatexOption
|
||||
TransformOption Extra ExtraOption
|
||||
Option Arg "[$$Extra,$$Rotate,$$Resize,$$Clip]"
|
||||
Product "\\includegraphics$$Arg{$$AbsOrRelPathMaster$$Basename}"
|
||||
UpdateFormat eps
|
||||
UpdateResult "$$AbsPath$$Basename.eps"
|
||||
Requirement "graphicx"
|
||||
ReferencedFile latex "$$AbsPath$$Basename.eps"
|
||||
ReferencedFile dvi "$$AbsPath$$Basename.eps"
|
||||
FormatEnd
|
||||
Format PDFLaTeX
|
||||
TransformOption Rotate RotationLatexOption
|
||||
TransformOption Resize ResizeLatexOption
|
||||
TransformOption Clip ClipLatexOption
|
||||
TransformOption Extra ExtraOption
|
||||
Option Arg "[$$Extra,$$Rotate,$$Resize,$$Clip]"
|
||||
Product "\\includegraphics$$Arg{$$AbsOrRelPathMaster$$Basename}"
|
||||
UpdateFormat pdf
|
||||
UpdateResult "$$AbsPath$$Basename.pdf"
|
||||
Requirement "graphicx"
|
||||
ReferencedFile pdflatex "$$AbsPath$$Basename.pdf"
|
||||
FormatEnd
|
||||
Format Ascii
|
||||
Product "[LilyPond: $$FName]"
|
||||
FormatEnd
|
||||
Format DocBook
|
||||
Product "[LilyPond: $$FName]"
|
||||
FormatEnd
|
||||
TemplateEnd
|
||||
|
||||
|
||||
Template Date
|
||||
GuiName "Date"
|
||||
HelpText
|
||||
|
@ -326,8 +326,15 @@ bool Converters::convert(Buffer const * buffer,
|
||||
}
|
||||
OutputParams runparams;
|
||||
runparams.flavor = getFlavor(edgepath);
|
||||
|
||||
// Some converters (e.g. lilypond) can only output files to the
|
||||
// current directory, so we need to change the current directory.
|
||||
// This has the added benefit that all other files that may be
|
||||
// generated by the converter are deleted when LyX closes and do not
|
||||
// clutter the real working directory.
|
||||
string path = onlyPath(from_file);
|
||||
Path p(path);
|
||||
|
||||
// empty the error list before any new conversion takes place.
|
||||
errorList.clear();
|
||||
|
||||
|
@ -332,6 +332,13 @@ void build_script(string const & from_file,
|
||||
"outfile = " << quoteName(outfile, quote_python) << "\n"
|
||||
"shutil.copy(infile, outfile)\n";
|
||||
|
||||
// Some converters (e.g. lilypond) can only output files to the
|
||||
// current directory, so we need to change the current directory.
|
||||
// This has the added benefit that all other files that may be
|
||||
// generated by the converter are deleted when LyX closes and do not
|
||||
// clutter the real working directory.
|
||||
script << "os.chdir(" << quoteName(onlyPath(outfile)) << ")\n";
|
||||
|
||||
if (edgepath.empty()) {
|
||||
// Either from_format is unknown or we don't have a
|
||||
// converter path from from_format to to_format, so we use
|
||||
|
Loading…
Reference in New Issue
Block a user