TexText Command Line Usage
Next to the usage from within Inkscape TexText can also be invoked from the command line. This maybe used in third party apps or for debugging purposes.
Prerequisites
In order to use TexText from the command line some prerequisites must be met. At first, since TexText uses the Inkscape executable itself for the required pdf -> svg conversion, Inkscape must be installed on your system. Additionally, the path to the Inkscape extension system must be known.
Linux
Since Inkscape is on your system all required Python libraries are already
available for the system Python interpreter. You only have to ensure that the
PYTHONPATH
variable contains the path to the Inkscape extension framework:
export PYTHONPATH=${PYTHONPATH}:/usr/share/inkscape/extensions
Windows
On Windows Python is bundled within the Inkscape installation. You need to
ensure that the Inkscape binary directory is in the system path so that
inkscape.exe
and python.exe
is found. Additionally, the PYTHONPATH
variable must contain the path to the Inkscape extension framework:
set PATH=C:\Program Files\Inkscape\bin;%PATH%
set PYTHONPATH=%PYTHONPATH%;C:\Program Files\Inkscape\share\inkscape\extensions
Note
If you are unsure where the Inkscape extension subsystem resides in your system execute the command
inkscape --system-data-directory
and add /extensions
(or \extensions
on Windows) to the output.
Usage
On the command line, in principle, TexText operates as follows: It takes the
content of an Inkscape SVG-document, does something with it (e.g. inserts a
TexText object, modifies an existing TexText object, or re-compiles all
existing TexText obejcts) and writes the resulting SVG-content into a new file
or to stdout
.
The calling syntax is
python __main.py__ [-h] [--output OUTPUT] [--id IDS] [--selected-nodes SELECTED_NODES]
[--text TEXT] [--preamble-file PREAMBLE_FILE]
[--scale-factor SCALE_FACTOR] [--alignment ALIGNMENT]
[--recompile-all-entries] [--tex_command TEX_COMMAND] [INPUT_FILE]
The function returns 0
in case compilation succeeded. It returns 1
(bad setup) or 60
(program or compile errors) if execution failed.
Command Line Arguments
- -h, --help
Show help message and exit.
- INPUT_FILE:
The Inkscape SVG-file the content of with is taken and processed by TexText. This file is not modified. See the
--output
argument for more details.
- --output OUTPUT
Path of the file into which the output of TexText is written. If this argument is omitted the output is written to
stdout
.- --id IDS
The XML id attribute of the selected TexText object (or a list of ids if multiple are selected) in the SVG-Document one would like to modify. If this argument is omitted it is assumed that a new TexText object is going to be created and inserted into the SVG document. If the object is no TexText object nothing happens.
Note
Currently, TexText does only support a single id.
- --selected-nodes SELECTED_NODES
Not used by TexText (it is the XML id:subpath:position attribute of selected nodes of a path)
- --text TEXT
The LaTeX or typst code to compile. If this argument is omitted the GUI opens if
--recompile-all-entries
is not set. The GUI will show the content of the TexText object specified by--id
or nothing if no id has been specified.- --preamble-file PREAMBLE_FILE
Full path to the preamble file one would like to use for compilation.
- --scale-factor SCALE_FACTOR
The scale factor one would like to use for compilation. A scale factor
1.0
means that the compiled LaTeX or typst output is inserted “as is” into the document.- --alignment ALIGNMENT
Only evaluated when a TexText object is re-compiled. It controls how a modified TexText object is aligned with respect to the old object. Possible values are:
top left
,top center
,top right
,middle left
,middle center
,middle-right
,bottom left
,bottom center
, andbottom right
.- --recompile-all-entries
Re-compile all TexText objects found in the SVG-document. The
--id
and--text
arguments are ignored in that case.- --tex_command TEX_COMMAND
The command used for compilation of the code passed via the
--text
argument. Possible values arepdflatex
,xelatex
,lualatex
, andtypst
. If this argument is omitted the default (pdflatex
) is used.
Examples
With showing the GUI
Take
empty.svg
, open the GUI, compile the code typed in there and insert the generated object into the document. Write the result tostdout
:python __main__.py empty.svg
From
nonempty.svg
take the object theid
attribute of which has the value7
and in case this is a TexText object pass its LaTeX code to the GUI. After modification of the code, compile it and replace the original object by the modified one and write the output toresult.svg
:python __main__.py --id 7 --output result.svg nonempty.svg
Without showing the GUI
Take
empty.svg
, compile the code$x \in \mathbb{R}$
using the preamblemy_preamble.tex
and insert the result as a TexText object scaled by2.0
into the document. Write the result into the fileresult.svg
:python __main__.py --text "$x \in \mathbb{R}$" --preamble-file "my_preamble.tex" --scale-factor 2.0 --output result.svg empty.svg
Take
nonempty.svg
, compile the code$x \in \mathbb{R}$
using the preamblemy_preamble.tex
. Then, replace the TexText object the XML id attribute of which has the value7
by the compiled result in such a way that the center of the new object matches the center of the old object. Write the result into the fileresult.svg
:python __main__.py --id 7 --text "$x \in \mathbb{R}$" --preamble-file "my_preamble.tex" --alignment "middle center" --output result.svg empty.svg
Recompile all TexText objects in
nonempty.svg
and write the result intoresult.svg
:python __main__.py --recompile-all-entries --output result.svg nonempty.svg