Embedding other external tools into a TeX frame
Introduction
Since version 1.3.5, Scribus knows the frame type "TeX". Frames of this type are normally used to integrate a LateX document into Scribus. But with this function, it is possible to integrate the output of any external program into Scribus. Some prerequisites are necessary:
- The external program should be a commandline program. It has to take an input file as argument and produces an output file.
- The output has to be in a format, which is readable by a Scribus image frame. For example, PDF, SVG, JPG, and a lot of other bitmap formats are possible.
To configure Scribus to use an arbitrary external program as input for the TeX frames, open "File / Preferences" and edit the settings for "External Tools". Here, you find the entry "LateX":
- Delete the text in "Preamble" and "End".
- Change the command in "Name of Executable" to your needs:
- Here, you can use the variables "%file" which stands for the input and "%file.pdf" which represents the output file. If your file is not in PDF format and you specify in "Output file extension" an other extension, then use use that extension instead of PDF in the output variable. For example, a PNG file format is refered as "%file.png".
- Activate the option "Start with empty frame" and delete the content of "Preamble" and "End".
- You can still use the embedded editor, even for non-LateX code, or an external one, just as you like.
Here are some examples, how external programs can be embedded into Scribus:
XSL FO with Apache FOP
Command: fop -fo %file -pdf %file.pdf Output File Extension: .pdf |
XSL FO, "The XSL Formatting Objects", is a markup language which can be used to automatically layout XML-data. With the help of a "Formatting Objects Processor", for example the Apache FOP, these XML code is rendered into PostScript, PDF or another format.
The command above shows how you can integrate Apache FOP's output directly into Scribus, using the PDF format which is created by Apache FOP. If you have XML code which still needs to be transformed with an XSL script, just add "-xsl /path/to/xsl.xsl" to the executable command. Some more complex examples for XSL FO can be found in the st-scripts |
Graphs with GraphWiz
Command: dot -Tps %file -o %file.ps Output File Extension: .ps |
GraphViz is an application for drawing graphs, trees and similiar representations of hierarchical structured data. Beside the here used PostScript output, GraphViz is also able to produce GIF, PNG and some more formats which Scribus can't read. Using the PostScript output should work fine.
The code for the example: digraph unix { size="6,6"; edge [color ="blue"]; "S" [color="#f94949", style=filled]; node [shape="box", color="#6767ed", style=filled]; "S" -> "NP"; "S" -> "VP"; "NP" -> "DET"; "NP" -> "NOUN"; "VP" -> "VERB"; node [shape="box", color="#82ec80", style=filled] "DET" -> "Der"; "NOUN" -> "Hund"; "VERB" -> "bellt"; } |
|
MathML Formulas with JEuclid
Command: /opt/jeuclid/jeuclid-3.0.1/bin/mml2xxx %file %file.png Output File Extension: .png |
JEuclid is an application which renders MathML or OpenOffice formulas into PNG, PDF, SVG and some more formats. Even as the script mml2xxx was in my path, I wasn't able to execute the script from somewhere else than from it's original position, so I had to use the full path to mml2xxx here. |
Gnuplot
Command: gnuplot %file Output File Extension: .png |
LilyPond
Command: lilypond %file Output File Extension: .pdf |
LilyPond is a program for creating musical notation. The image shows the output of the first and very simple example from the LilyPond documentation:
{ c' e' g' e' }
|
ToDo
There are a lot more programs which can be used in this way from inside Scribus. Some examples to try are: