]> git.lyx.org Git - lyx.git/blobdiff - lib/external_templates
Add an explanatory note for external_templates
[lyx.git] / lib / external_templates
index 82510b6ce8ffa2206fa93b83a6ce95a642fc661d..7579af62ba60c5309c30106e9557cc65ff748d60 100644 (file)
-# Basic External Templates for LyX
+#
+# file external_templates
+# This file is part of LyX, the document processor.
+# Licence details can be found in the file COPYING.
+#
+# author Asger Alstrup Nielsen
+# author Angus Leeming
+# author Johnathan Burchill
+#
+# Full author contact details are available in file CREDITS.
+
+# This file contains the definitions of those External Templates that are
+# part of the official LyX distribution.
+# Feel free to create your own External Templates, storing them in
+# .lyx/external_templates
+# Note that a user-defined external_templates file would replace this
+# definition. Thus, if you would like to keep the external templates defined
+# in this file, please copy this file and add on futher external templates
+# to the end. For more information, see http://www.lyx.org/trac/ticket/3983.
+
+
+PreambleDef WarnNotFound
+       %% Print a warning encased in an fbox.
+       \def\lyxstripprefix#1>{}
+       \newcommand{\warnNotFound}[1]{%
+               \def\lyxtempfilename{#1}%
+               \fbox{Could not find
+                       \ttfamily\expandafter\lyxstripprefix\meaning\lyxtempfilename!}%
+               \typeout{Could not find \lyxtempfilename!}%
+       }
+PreambleDefEnd
+
+
+PreambleDef InputOrWarn
+       %% Input the file if it exists, using \input, else print a warning
+       \newcommand{\inputOrWarn}[1]{%
+               \IfFileExists{#1}{\input{#1}}{\warnNotFound{#1}}}
+PreambleDefEnd
+
+Template GnumericSpreadsheet
+       GuiName "Spreadsheet"
+       HelpText
+               A spreadsheet made with Gnumeric, LibreOffice, OpenOffice or Excel.
+               It imports as a long table, so any length
+               is ok. Excessive width could be a problem.
+               The gnumeric software is necessary for conversion,
+               both for gnumeric and excel files.
+       HelpTextEnd
+       InputFormat "gnumeric"
+       FileFilter "*.{gnumeric,ods,xls}"
+       AutomaticProduction true
+       Format LaTeX
+               Product "\\def\\inputGnumericTable{}\\input{$$AbsOrRelPathMaster$$Basename.tex}"
+               UpdateFormat latex
+               UpdateResult "$$AbsPath$$Basename.tex"
+               Requirement "color"
+               Requirement "array"
+               Requirement "longtable"
+               Requirement "calc"
+               Requirement "multirow"
+               Requirement "hhline"
+               Requirement "ifthen"
+               ReferencedFile latex "$$AbsOrRelPathMaster$$Basename.tex"
+               FormatEnd
+       Format PDFLaTeX
+               Product "\\def\\inputGnumericTable{}\\input{$$AbsOrRelPathMaster$$Basename.tex}"
+               UpdateFormat latex
+               UpdateResult "$$AbsPath$$Basename.tex"
+               Requirement "color"
+               Requirement "array"
+               Requirement "longtable"
+               Requirement "calc"
+               Requirement "multirow"
+               Requirement "hhline"
+               Requirement "ifthen"
+               ReferencedFile pdflatex "$$AbsOrRelPathMaster$$Basename.tex"
+       FormatEnd
+TemplateEnd
 
 Template RasterImage
-       GuiName "[Bitmap: $$FName]"
+       # By default, InsetExternal is displayed as a grey button
+       # containing this text.
+       GuiName "Raster image"
+       # This text is used in the External dialog.
+       # Provide enough information to explain to the user just
+       # what the template can provide him with.
        HelpText
                A bitmap file.
-               In the parameters box, you can provide optional
-               parameters for the ImageMagick convert program.
-               E.g., use `-border 10x10 -bordercolor black'
-               to surround the picture with a black border 
-               when you export to LaTeX.
-               When you export to Ascii, you can provide a
-               number describing how many columns the picture
-               should expand to.
-               This template uses Gimp for editing, and 
-               ImageMagick to do conversions. It requires 
-               Python for exporting to Ascii and DocBook, 
-               and gifscii for exporting to Ascii.
        HelpTextEnd
-       FileFilter "*.(gif|png|jpg|bmp|pbm|ppm|tga|tif|xpm|xbm)"
-       ViewCommand "display $$Basename.eps"
-       EditCommand "gimp $$FName"
+       # ANY file type can be displayed as a RasterImage.
+       # Specifically, LyX will attempt to interrogate the file itself
+       # in order to deduce its format.
+       InputFormat "*"
+       # Globbing pattern used when browsing for a Raster image file.
+       FileFilter "*.{gif,png,jpg,bmp,pbm,ppm,tga,tif,xpm,xbm}"
+       # Set to "true" if the file represented by the template
+       # must be generated by LyX.
        AutomaticProduction true
+       # LyX has hard-coded support for these transformations
+       Transform Rotate
+       Transform Resize
+       Transform Clip
+       Transform Extra
+       # LyX preview options:
+       # Off: LyX will not attempt to show this material on screen.
+       # Graphics: LyX will attempt to show this material as-is or via a
+       #           conversion to a showable format.
+       # InstantPreview: LyX will attempt to use the 'instant preview'
+       #                 mechanism in order to show this material.
+       Preview Graphics
        Format LaTeX
-               Product "\\includegraphics{$$Basename.eps}"
-               UpdateCommand "convert $$Parameters $$FName $$Basename.eps"
-               Requirement "graphics"
+               TransformOption Rotate RotationLatexOption
+               TransformOption Resize ResizeLatexOption
+               TransformOption Clip   ClipLatexOption
+               TransformOption Extra  ExtraOption
+               Option Arg "[$$Extra,$$Rotate,$$Resize,$$Clip]"
+               # This string is what is output to the LaTeX file.
+               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 png
+               UpdateResult "$$AbsPath$$Basename.png"
+               Requirement "graphicx"
+               ReferencedFile pdflatex "$$AbsPath$$Basename.png"
        FormatEnd
        Format Ascii
-               Product "$$Contents(\"$$Basename.asc\")"
-               UpdateCommand "python $$Sysdir/scripts/pic2ascii.py $$FName $$Parameters"
+               Product "$$Contents(\"$$AbsPath$$Basename.asc\")"
+               UpdateFormat asciiimage
+               UpdateResult "$$AbsPath$$Basename.asc"
        FormatEnd
        Format DocBook
-               Product "<graphic fileref=\"$$Basename.eps\"></graphic>"
-               UpdateCommand "python $$Sysdir/scripts/pic2png_eps.py $$FName $$Parameters"
-       FormatEnd
-       Format LinuxDoc
-               Product "[Bitmap: $$FName]"
+               Product "<graphic fileref=\"$$AbsOrRelPathMaster$$Basename.eps\"></graphic>"
+               UpdateFormat eps
+               UpdateResult "$$AbsPath$$Basename.eps"
+               ReferencedFile docbook     "$$AbsPath$$Basename.eps"
+               ReferencedFile docbook-xml "$$AbsPath$$Basename.eps"
        FormatEnd
 TemplateEnd
 
+
 Template XFig
-       GuiName "[XFig: $$Basename]"
+       GuiName "Xfig figure"
        HelpText
-               An XFig figure.
-               In the parameters box, you can provide
-               optional parameters for fig2dev in the
-               case of LaTeX export. E.g., -m .69 to
-               reduce the size.
-               For Ascii export, you can provide a
-               number that specifies the width of an
-               Ascii approximation of the figure.
-               For DocBook export, you can provide
-               optional parameters for the ImageMagick
-               convert script.
-               This template uses XFig for editing, and 
-               fig2dev and ImageMagick to do conversions. 
-               It requires Python for exporting to Ascii
-               and DocBook, and gifscii for exporting to 
-               Ascii.
+               An Xfig figure.
        HelpTextEnd
+       InputFormat fig
        FileFilter "*.fig"
-       ViewCommand "xfig $$FName"
-       EditCommand "xfig $$FName"
        AutomaticProduction true
+       Transform Rotate
+       Transform Resize
+       Preview InstantPreview
        Format LaTeX
-               Product "\\begin{picture}(0,0)\\includegraphics{$$Basename.eps}\\end{picture}\\input{$$Basename.pstex_t}"
-               UpdateCommand "python $$Sysdir/scripts/fig2pstex.py $$FName $$Parameters"
-               Requirement "graphics"  
+               TransformCommand Rotate RotationLatexCommand
+               TransformCommand Resize ResizeLatexCommand
+               Product "$$RotateFront$$ResizeFront\\input{$$AbsOrRelPathMaster$$Basename.pstex_t}$$ResizeBack$$RotateBack"
+               UpdateFormat pstex
+               UpdateResult "$$AbsPath$$Basename.pstex_t"
+               Requirement "color"
+               Requirement "graphicx"
+               # Preamble WarnNotFound
+               # Preamble InputOrWarn
+               ReferencedFile latex "$$AbsOrRelPathMaster$$Basename.pstex_t"
+               ReferencedFile latex "$$AbsPath$$Basename.eps"
+               ReferencedFile dvi   "$$AbsPath$$Basename.eps"
+       FormatEnd
+       Format PDFLaTeX
+               TransformCommand Rotate RotationLatexCommand
+               TransformCommand Resize ResizeLatexCommand
+               Product "$$RotateFront$$ResizeFront\\input{$$AbsOrRelPathMaster$$Basename.pdftex_t}$$ResizeBack$$RotateBack"
+               UpdateFormat pdftex
+               UpdateResult "$$AbsPath$$Basename.pdftex_t"
+               Requirement "color"
+               Requirement "graphicx"
+               # Preamble WarnNotFound
+               # Preamble InputOrWarn
+               ReferencedFile pdflatex "$$AbsOrRelPathMaster$$Basename.pdftex_t"
+               ReferencedFile pdflatex "$$AbsPath$$Basename.pdf"
        FormatEnd
        Format Ascii
-               Product "$$Contents(\"$$Basename.asc\")"
-               UpdateCommand "python $$Sysdir/scripts/pic2ascii.py $$FName $$Parameters"
+               Product "$$Contents(\"$$AbsPath$$Basename.asc\")"
+               UpdateFormat asciixfig
+               UpdateResult "$$AbsPath$$Basename.asc"
        FormatEnd
        Format DocBook
-               Product "<graphic fileref=\"$$Basename.eps\"></graphic>"
-               UpdateCommand "python $$Sysdir/scripts/pic2png_eps.py $$FName $$Parameters"
-       FormatEnd
-       Format LinuxDoc
-               Product "[XFig: $$FName]"
+               Product "<graphic fileref=\"$$AbsOrRelPathMaster$$Basename.eps\"></graphic>"
+               UpdateFormat eps
+               UpdateResult "$$AbsPath$$Basename.eps"
+               ReferencedFile docbook     "$$AbsPath$$Basename.eps"
+               ReferencedFile docbook-xml "$$AbsPath$$Basename.eps"
        FormatEnd
 TemplateEnd
 
+
 Template ChessDiagram
-       GuiName "[Chess: $$Basename]"
+       GuiName "Chess diagram"
        HelpText
                A chess position diagram.
-               This template will use XBoard to view
-               and edit the position. Use the
-               'File->Save Position' in XBoard to save 
+               This template will use XBoard to edit the position.
+               Use the 'File->Save Position' in XBoard to save
                the position that you want to display.
                Make sure to give it a '.fen' extension
                and remember to type in a relative path
@@ -96,66 +216,217 @@ Template ChessDiagram
                to enable general editing of the board.
                You might also check out the
                'Options->Test legality' option, and
-               remember to middle and right click to 
+               remember to middle and right click to
                insert new material in the board.
                In order for this to work, you have to
-               install the lyxchess.sty which is bundled
-               with LyX, and the chess.sty from CTAN.
+               put the bundled lyxskak.sty in a place
+               that TeX will find it, and you will need
+               to install the skak package from CTAN.
        HelpTextEnd
+       InputFormat fen
        FileFilter "*.fen"
-       ViewCommand "xboard -lpf $$FName"
-       EditCommand "xboard -lpf $$FName"
        AutomaticProduction true
+       Preview InstantPreview
        Format LaTeX
-               Product "$$Contents(\"$$Basename.tex\")"
-               UpdateCommand "python $$Sysdir/scripts/fen2latex.py $$FName $$Basename.tex"
+               Product "\\loadgame{$$AbsOrRelPathMaster$$Basename}\\showboard"
                Requirement "chess"
+               UpdateFormat fen
+               UpdateResult "$$AbsPath$$Basename$$Extension"
+               ReferencedFile latex "$$AbsPath$$Basename$$Extension"
+       FormatEnd
+       Format PDFLaTeX
+               Product "\\loadgame{$$AbsOrRelPathMaster$$Basename}\\showboard"
+               Requirement "chess"
+               UpdateFormat fen
+               UpdateResult "$$AbsPath$$Basename$$Extension"
+               ReferencedFile pdflatex "$$AbsPath$$Basename$$Extension"
+       FormatEnd
+       Format Ascii
+               Product "$$Contents(\"$$AbsPath$$Basename.asc\")"
+               UpdateFormat asciichess
+               UpdateResult "$$AbsPath$$Basename.asc"
+       FormatEnd
+       Format DocBook
+               Product "[Chess: $$AbsOrRelPathMaster$$Basename]"
+       FormatEnd
+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
+       Preview InstantPreview
+       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 pdf6
+               UpdateResult "$$AbsPath$$Basename.pdf"
+               Requirement "graphicx"
+               ReferencedFile pdflatex "$$AbsPath$$Basename.pdf"
        FormatEnd
        Format Ascii
-               Product "$$Contents(\"$$Basename.asc\")"
-               UpdateCommand "python $$Sysdir/scripts/fen2ascii.py $$FName $$Basename.tex"
+               Product "[LilyPond: $$FName]"
        FormatEnd
        Format DocBook
-               Product "[Chess: $$Basename]"
+               Product "[LilyPond: $$FName]"
        FormatEnd
-       Format LinuxDoc
-               Product "[Chess: $$FName]"
+TemplateEnd
+
+Template PDFPages
+       GuiName "PDF pages"
+       HelpText
+               Includes PDF documents, using the 'pdfpages' package.
+               To include multiple pages, use the 'pages'-option,
+               which must be inserted to 'Options'.
+               Examples:
+               * pages={x-y} (for a range of pages)
+               * pages={x,y,z} (for specific pages)
+               * pages=- (to include all pages)
+               * pages=last-1 (to include all pages in reverse order)
+               With the option 'noautoscale' the PDF pages are
+               inserted in their original size.
+               Read the documentation of the pdfpages package
+               for further options and details.
+       HelpTextEnd
+       InputFormat pdf6
+       FileFilter "*.pdf"
+       AutomaticProduction true
+       Transform Rotate
+       Transform Resize
+       Transform Extra
+       Preview Graphics
+       Format LaTeX
+               TransformOption Rotate RotationLatexOption
+               TransformOption Resize ResizeLatexOption
+               TransformOption Extra  ExtraOption
+               Option Arg "[$$Extra,$$Rotate,$$Resize]"
+               Product "\\includepdf$$Arg{$$AbsOrRelPathMaster$$Basename}"
+               UpdateFormat pdf6
+               UpdateResult "$$AbsPath$$Basename.pdf"
+               Requirement "pdfpages"
+               ReferencedFile pdflatex "$$AbsPath$$Basename.pdf"
+       FormatEnd
+       Format Ascii
+               Product "[PDFPages: $$FName]"
+       FormatEnd
+       Format DocBook
+               Product "[PDFPages: $$FName]"
        FormatEnd
 TemplateEnd
 
+
 Template Date
-       GuiName "[Date]"
+       GuiName "Date"
        HelpText
-               Todays date.
-               In the parameters box, you can provide
-               optional parameters for the date
-               command.
-               Use empty to get "Mon Jun 12 05:20:41 CEST 2000"
-               Use -u to get "Mon Jun 12 03:20:41 UTC 2000"
-               Use -I to get "2000-06-12".
-               Use -R to get "Mon, 12 Jun 2000 05:20:41 +0200"
-               Use +%d-%m-%Y to get "20-06-2000"
-               Use +%T to get the time as "23:23:00"
+               Today's date.
                Read 'info date' for more information.
        HelpTextEnd
+       InputFormat date
        FileFilter "*"
-       ViewCommand "xterm -e less $$Tempname"
        AutomaticProduction true
+       Preview Off
        Format LaTeX
                Product "$$Contents(\"$$Tempname\")"
-               UpdateCommand "python $$Sysdir/scripts/general_command_wrapper.py - $$Tempname date $$Parameters"
+               UpdateFormat dateout
+               UpdateResult "$$Tempname"
+       FormatEnd
+       Format PDFLaTeX
+               Product "$$Contents(\"$$Tempname\")"
+               UpdateFormat dateout
+               UpdateResult "$$Tempname"
        FormatEnd
        Format Ascii
                Product "$$Contents(\"$$Tempname\")"
-               UpdateCommand "python $$Sysdir/scripts/general_command_wrapper.py - $$Tempname date $$Parameters"
+               UpdateFormat dateout
+               UpdateResult "$$Tempname"
        FormatEnd
        Format DocBook
                Product "$$Contents(\"$$Tempname\")"
-               UpdateCommand "python $$Sysdir/scripts/general_command_wrapper.py - $$Tempname date $$Parameters"
+               UpdateFormat dateout
+               UpdateResult "$$Tempname"
        FormatEnd
-       Format LinuxDoc
-               Product "$$Contents(\"$$Tempname\")"
-               UpdateCommand "python $$Sysdir/scripts/general_command_wrapper.py - $$Tempname date $$Parameters"
+TemplateEnd
+
+Template Dia
+       GuiName "Dia diagram"
+       HelpText
+               Dia diagram.
+       HelpTextEnd
+       InputFormat dia
+       FileFilter "*.dia"
+       AutomaticProduction true
+       # LyX has hard-coded support for these transformations
+       Transform Rotate
+       Transform Resize
+       Transform Clip
+       Transform Extra
+       Preview InstantPreview
+       Format LaTeX
+               TransformOption Rotate RotationLatexOption
+               TransformOption Resize ResizeLatexOption
+               TransformOption Clip   ClipLatexOption
+               TransformOption Extra  ExtraOption
+               Option Arg "[$$Extra,$$Rotate,$$Resize,$$Clip]"
+               # This string is what is output to the LaTeX file.
+               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 pdf6
+               UpdateResult "$$AbsPath$$Basename.pdf"
+               Requirement "graphicx"
+               ReferencedFile pdflatex "$$AbsPath$$Basename.pdf"
+       FormatEnd
+       Format Ascii
+               Product "$$Contents(\"$$AbsPath$$Basename.asc\")"
+               UpdateFormat asciiimage
+               UpdateResult "$$AbsPath$$Basename.asc"
+       FormatEnd
+       Format DocBook
+               Product "<graphic fileref=\"$$AbsOrRelPathMaster$$Basename.eps\"></graphic>"
+               UpdateFormat eps
+               UpdateResult "$$AbsPath$$Basename.eps"
+               ReferencedFile docbook     "$$AbsPath$$Basename.eps"
+               ReferencedFile docbook-xml "$$AbsPath$$Basename.eps"
        FormatEnd
 TemplateEnd