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 sgml DocBook B "" "%%" "document"
|
||||||
\Format docbook-xml xml "Docbook (XML)" "" "" "%%" "document"
|
\Format docbook-xml xml "Docbook (XML)" "" "" "%%" "document"
|
||||||
\Format literate nw NoWeb N "" "%%" "document"
|
\Format literate nw NoWeb N "" "%%" "document"
|
||||||
|
\Format lilypond ly "LilyPond music" "" "" "%%" "vector"
|
||||||
\Format latex tex "LaTeX (plain)" L "" "%%" "document"
|
\Format latex tex "LaTeX (plain)" L "" "%%" "document"
|
||||||
\Format linuxdoc sgml LinuxDoc x "" "%%" "document"
|
\Format linuxdoc sgml LinuxDoc x "" "%%" "document"
|
||||||
\Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "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'],
|
'latex2html -no_subdir -split 0 -show_section_numbers $$i', 'hevea -s $$i'],
|
||||||
rc_entry = [ r'\converter latex html "%%" "originaldir,needaux"' ])
|
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
|
# FIXME: no rc_entry? comment it out
|
||||||
# checkProg('Image converter', ['convert $$i $$o'])
|
# checkProg('Image converter', ['convert $$i $$o'])
|
||||||
#
|
#
|
||||||
|
@ -196,6 +196,55 @@ Template ChessDiagram
|
|||||||
TemplateEnd
|
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
|
Template Date
|
||||||
GuiName "Date"
|
GuiName "Date"
|
||||||
HelpText
|
HelpText
|
||||||
|
@ -326,8 +326,15 @@ bool Converters::convert(Buffer const * buffer,
|
|||||||
}
|
}
|
||||||
OutputParams runparams;
|
OutputParams runparams;
|
||||||
runparams.flavor = getFlavor(edgepath);
|
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);
|
string path = onlyPath(from_file);
|
||||||
Path p(path);
|
Path p(path);
|
||||||
|
|
||||||
// empty the error list before any new conversion takes place.
|
// empty the error list before any new conversion takes place.
|
||||||
errorList.clear();
|
errorList.clear();
|
||||||
|
|
||||||
|
@ -332,6 +332,13 @@ void build_script(string const & from_file,
|
|||||||
"outfile = " << quoteName(outfile, quote_python) << "\n"
|
"outfile = " << quoteName(outfile, quote_python) << "\n"
|
||||||
"shutil.copy(infile, outfile)\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()) {
|
if (edgepath.empty()) {
|
||||||
// Either from_format is unknown or we don't have a
|
// Either from_format is unknown or we don't have a
|
||||||
// converter path from from_format to to_format, so we use
|
// converter path from from_format to to_format, so we use
|
||||||
|
Loading…
Reference in New Issue
Block a user