scripts/fen2ascii.py \
scripts/fig2pdftex.py \
scripts/fig2pstex.py \
+ scripts/svg2pdftex.py \
+ scripts/svg2pstex.py \
scripts/fig_copy.py \
scripts/html2latexwrapper.py \
scripts/include_bib.py \
\Format jlyx cjklyx "CJK LyX 1.4.x (euc-jp)" "" "" "" "document" ""
\Format klyx cjklyx "CJK LyX 1.4.x (euc-kr)" "" "" "" "document" ""
\Format lyxpreview lyxpreview "LyX Preview" "" "" "" "" ""
-\Format pdftex pdftex_t PDFTEX "" "" "" "" ""
+\Format pdftex "pdftex_t, pdf_tex" PDFTEX "" "" "" "" ""
\Format program "" Program "" "" "" "" ""
-\Format pstex pstex_t PSTEX "" "" "" "" ""
+\Format pstex "pstex_t, ps_tex" PSTEX "" "" "" "" ""
\Format wmf wmf "Windows Metafile" "" "" "" "vector" "image/x-wmf"
\Format emf emf "Enhanced Metafile" "" "" "" "vector" "image/x-emf"
\Format wordhtml "html, htm" "HTML (MS Word)" "" "" "" "document" ""
\converter fig ppm "fig2dev -L ppm $$i $$o" ""
\converter fig svg "fig2dev -L svg $$i $$o" ""
\converter fig png "fig2dev -L png $$i $$o" ""
+\converter svg pdftex "python -tt $$s/scripts/svg2pdftex.py $$i $$o" ""
+\converter svg pstex "python -tt $$s/scripts/svg2pstex.py $$i $$o" ""
\converter fig pdftex "python -tt $$s/scripts/fig2pdftex.py $$i $$o" ""
\converter fig pstex "python -tt $$s/scripts/fig2pstex.py $$i $$o" ""''')
#
-#LyX 2.2 created this file. For more info see http://www.lyx.org/
-\lyxformat 508
+#LyX 2.3 created this file. For more info see http://www.lyx.org/
+\lyxformat 512
\begin_document
\begin_header
\save_transient_properties true
\font_osf false
\font_sf_scale 100 100
\font_tt_scale 100 100
+\use_microtype false
\graphics default
\default_output_format pdf2
\output_sync 0
.
\end_layout
+\begin_layout Description
+Inkscape
+\begin_inset space ~
+\end_inset
+
+figure This experimental template supports images created with the program
+
+\begin_inset CommandInset href
+LatexCommand href
+name "Inkscape"
+target "https://fi.wikipedia.org/wiki/Inkscape"
+
+\end_inset
+
+.
+ It works very similarly to Xfig support, except that Inkscape is a more
+ modern image editor than Xfig, which uses Scalable Vector Graphics (SVG)
+ as its native format.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+LyX will process the image file in much the same way as it does an Xfig
+ image, extracting the text into a separate TeX file for the text strings,
+ and a PDF file for the rest.
+\end_layout
+
+\begin_layout Description
+Warning: Unfortunately the latest version of Inkscape, 0.91, contains a bug:
+ with multi-page PDFs, the TeX file will sometimes reference more pages
+ than the PDF file contains.
+ This is the version that ships with Ubuntu 16.04.
+ Its use with LyX can therefore not be recommended, until the bug is fixed
+\begin_inset Foot
+status open
+
+\begin_layout Plain Layout
+A workaround for those who have already SVG figures in their document is,
+ to manually do the LaTeX+PDF output from Inkscape, edit the
+\family typewriter
+.pdf_tex
+\family default
+ file to remove the erroneous references, and
+\family typewriter
+
+\backslash
+input
+\family default
+ it directly into LyX, i.e., not use the external-template mechanism:
+\end_layout
+
+\begin_layout Plain Layout
+\begin_inset Graphics
+ filename workaround.png
+ scale 50
+
+\end_inset
+
+
+\end_layout
+
+\begin_layout Plain Layout
+Here, the child document input inset (
+\family sans
+Insert\SpecialChar menuseparator
+File\SpecialChar menuseparator
+Child Document
+\family default
+) was used, which allows you do directly edit the
+\family typewriter
+.pdf_tex
+\family default
+ file in a text editor.
+ The LaTeX output is based on this edited snippet as re-generation from
+ the SVG file has been commented out.
+\end_layout
+
+\end_inset
+
+.
+\end_layout
+
+\begin_deeper
+\begin_layout Standard
+The reason why we would use this complicated process at all, like in the
+ case of Xfig, is that it makes the text strings inside the figure of the
+ same font type and attributes as the surrounding text, which looks so much
+ more professional.
+ With Inkscape, even the
+\emph on
+size
+\emph default
+ of the font is taken from the surrounding LaTeX document – in Xfig, you
+ have to set it by hand to be the same.
+ Of course you can always embed LaTeX modifiers like
+\family typewriter
+
+\backslash
+Large
+\family default
+,
+\family typewriter
+
+\backslash
+small
+\family default
+, etc.
+ into your figure text strings.
+\end_layout
+
+\end_deeper
+\end_deeper
\begin_layout Standard
\begin_inset Float table
placement !h
TemplateEnd
+Template Inkscape
+ GuiName "Inkscape figure"
+ HelpText
+ An Inkscape figure.
+ This template should work flawlessly with Inkscape 0.48.
+ For Inkscape 0.91, there is a bug in the LaTeX + PDF output
+ which makes a workaround necessary, see Embedded Objects manual.
+ HelpTextEnd
+ InputFormat svg
+ FileFilter "*.svg"
+ AutomaticProduction true
+ Transform Rotate
+ Preview InstantPreview
+ Format PDFLaTeX
+ TransformCommand Rotate RotationLatexCommand
+ # Resize is not desirable here, as fonts are sized to surrounding LaTeX font
+ Product "$$RotateFront\\input{$$AbsOrRelPathMaster$$Basename.pdf_tex}$$RotateBack"
+ UpdateFormat pdftex
+ UpdateResult "$$AbsPath$$Basename.pdf_tex"
+ Requirement "color"
+ Requirement "graphicx"
+ # Preamble WarnNotFound
+ # Preamble InputOrWarn
+ ReferencedFile pdflatex "$$AbsOrRelPathMaster$$Basename.pdf_tex"
+ ReferencedFile pdflatex "$$AbsPath$$Basename.pdf"
+ FormatEnd
+ Format LaTeX
+ TransformCommand Rotate RotationLatexCommand
+ Product "$$RotateFront\\input{$$AbsOrRelPathMaster$$Basename.eps_tex}$$RotateBack"
+ UpdateFormat pstex
+ UpdateResult "$$AbsPath$$Basename.eps_tex"
+ Requirement "color"
+ Requirement "graphicx"
+ # Preamble WarnNotFound
+ # Preamble InputOrWarn
+ ReferencedFile latex "$$AbsOrRelPathMaster$$Basename.eps_tex"
+ ReferencedFile latex "$$AbsPath$$Basename.eps"
+ ReferencedFile dvi "$$AbsPath$$Basename.eps"
+ FormatEnd
+TemplateEnd
+
+
Template ChessDiagram
GuiName "Chess diagram"
HelpText
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# file svg2pdftex.py
+#
+# This script converts an SVG image to something that pdflatex can process
+# into high quality PDF.
+
+# Usage:
+# python svg2pdftex.py ${base}.svg ${base}.pdft
+# This command generates
+# ${base}.pdf the converted pdf file
+# ${base}.pdft a tex file that can be included in your latex document
+# using '\input{${base}.pdft}'
+#
+# Note:
+# Do not use this command as
+# python svg2pdftex.py file.svg file.pdf
+# the real pdf file will be overwritten by a tex file named file.pdf.
+#
+
+
+
+import os, sys, re
+
+
+def runCommand(cmd):
+ ''' Utility function:
+ run a command, quit if fails
+ '''
+ if os.system(cmd) != 0:
+ print "Command '%s' fails." % cmd
+ sys.exit(1)
+
+
+# We expect two args, the names of the input and output files.
+if len(sys.argv) != 3:
+ sys.exit(1)
+
+input, output = sys.argv[1:]
+
+# Fail silently if the file doesn't exist
+if not os.path.isfile(input):
+ sys.exit(0)
+
+# Strip the extension from ${output}
+outbase = os.path.splitext(output)[0]
+
+
+
+# Inkscape 0.48 can output the image as a PDF file ${base}.pdf and place the text
+# in a LaTeX file ${base}.pdf_tex, which is renamed to ${output}, for typesetting
+# by pdflatex itself.
+runCommand('inkscape --file=%s --export-pdf=%s.pdf --export-latex' % (input, outbase))
+
+os.rename('%s.pdf_tex' % outbase, output)
+
--- /dev/null
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+# file svg2pstex.py
+#
+# This script converts an SVG image to something that latex can process
+# into high quality PostScript.
+
+# Usage:
+# python svg2pstex.py ${base}.fig ${base}.pstex
+# This command generates
+# ${base}.eps the converted eps file
+# ${base}.pstex a tex file that can be included in your latex document
+# using '\input{${output}}'.
+#
+# Note:
+# Do not use this command as
+# python svg2pstex.py file.fig file.eps
+# the real eps file will be overwritten by a tex file named file.eps.
+#
+
+import os, sys
+
+def runCommand(cmd):
+ ''' Utility function:
+ run a command, quit if fails
+ '''
+ if os.system(cmd) != 0:
+ print "Command '%s' fails." % cmd
+ sys.exit(1)
+
+# We expect two args, the names of the input and output files.
+if len(sys.argv) != 3:
+ sys.exit(1)
+
+input, output = sys.argv[1:]
+
+# Fail silently if the file doesn't exist
+if not os.path.isfile(input):
+ sys.exit(0)
+
+# Strip the extension from ${output}
+outbase = os.path.splitext(output)[0]
+
+# Inkscape 0.48 can output the image as a EPS file ${base}.pdf and place the text
+# in a LaTeX file ${base}.eps_tex, which is renamed to ${output}, for typesetting
+# by latex itself.
+runCommand('inkscape --file=%s --export-eps=%s.eps --export-latex' % (input, outbase))
+os.rename('%s.eps_tex' % outbase, output)