summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/barracuda/example
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-12-02 03:02:11 +0000
committerNorbert Preining <norbert@preining.info>2019-12-02 03:02:11 +0000
commit02e4625a78a5029e8b5dc2a4ec70193b232f497e (patch)
tree7b98b65fce4fe5ba1d20753651cf4679cadc5315 /macros/luatex/generic/barracuda/example
parent1dcb87019d8965fa1ba1ea339b7330225b2e545b (diff)
CTAN sync 201912020302
Diffstat (limited to 'macros/luatex/generic/barracuda/example')
-rw-r--r--macros/luatex/generic/barracuda/example/001-13-ean-test.pdfbin0 -> 23619 bytes
-rw-r--r--macros/luatex/generic/barracuda/example/001-13-ean-test.tex220
-rw-r--r--macros/luatex/generic/barracuda/example/001-code128-test.lua32
-rw-r--r--macros/luatex/generic/barracuda/example/001-i2of5-test.pdfbin0 -> 19127 bytes
-rw-r--r--macros/luatex/generic/barracuda/example/001-i2of5-test.tex187
-rw-r--r--macros/luatex/generic/barracuda/example/003-code39-test.pdfbin0 -> 19827 bytes
-rw-r--r--macros/luatex/generic/barracuda/example/003-code39-test.tex53
-rw-r--r--macros/luatex/generic/barracuda/example/003-ean-test.pdfbin0 -> 3988 bytes
-rw-r--r--macros/luatex/generic/barracuda/example/003-ean-test.tex16
-rw-r--r--macros/luatex/generic/barracuda/example/004-ean-test.lua9
-rw-r--r--macros/luatex/generic/barracuda/example/006-code39-test.lua45
-rw-r--r--macros/luatex/generic/barracuda/example/006-six.svg653
-rw-r--r--macros/luatex/generic/barracuda/example/01-latex-code39.pdfbin0 -> 3621 bytes
-rw-r--r--macros/luatex/generic/barracuda/example/01-latex-code39.tex14
-rw-r--r--macros/luatex/generic/barracuda/example/8006194056290.svg89
-rw-r--r--macros/luatex/generic/barracuda/example/c128-123.svg42
16 files changed, 1360 insertions, 0 deletions
diff --git a/macros/luatex/generic/barracuda/example/001-13-ean-test.pdf b/macros/luatex/generic/barracuda/example/001-13-ean-test.pdf
new file mode 100644
index 0000000000..925a8ad8f0
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/001-13-ean-test.pdf
Binary files differ
diff --git a/macros/luatex/generic/barracuda/example/001-13-ean-test.tex b/macros/luatex/generic/barracuda/example/001-13-ean-test.tex
new file mode 100644
index 0000000000..c0a4db3894
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/001-13-ean-test.tex
@@ -0,0 +1,220 @@
+% !TeX program = LuaTeX
+% Copyright (C) 2019 Roberto Giacomelli
+
+\newbox\mybox
+\nopagenumbers
+
+EAN encoder test.
+
+Test 1: one simple barcode EAN13 with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+
+local ean13, err = barcode:new_encoder("ean-13")
+assert(not err, err)
+
+local symbo, err = ean13:from_string("8006194056290")
+assert(not err, err)
+
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\medskip
+Test 2: one simple EAN8 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+
+local ean8, err = barcode:new_encoder("ean-8")
+assert(not err, err)
+
+local symbo, err = ean8:from_string("96385074")
+assert(not err, err)
+
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\medskip
+Test 3: one simple EAN5 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean5, err = barcode:new_encoder("ean-5")
+assert(not err, err)
+local symbo, err = ean5:from_string("54495")
+assert(not err, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\medskip
+Test 4: one simple EAN2 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean2, err = barcode:new_encoder("ean-2")
+assert(not err, err)
+local symbo, err = ean2:from_string("53")
+assert(not err, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\medskip
+Test 5: EAN13 + EAN5 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean, err = barcode:new_encoder("ean-13+5"); assert(not err, err)
+local n = 123456789012
+local c = ean:checksum(n)
+local s = n .. c
+local symbo, err = ean:from_string(s.."12345")
+assert(not err, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule Test 5\vrule\box\mybox \vrule Test 5\vrule
+
+\medskip
+Test 6: EAN13 + EAN2 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean, err = barcode:new_encoder("ean-13+2"); assert(not err, err)
+local n = 123456789012
+local c = ean:checksum(n)
+local s = n .. c
+local symbo, err = ean:from_string(s.."12")
+assert(not err, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule Test 6\vrule\box\mybox \vrule Test 6\vrule
+
+\medskip
+Test 7: EAN8 + EAN5 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean, err = barcode:new_encoder("ean-8+5"); assert(not err, err)
+local n = 1234567
+local c = ean:checksum(n)
+local s = n .. c
+local symbo, err = ean:from_string(s.."12345")
+assert(not err, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule Test 7\vrule\box\mybox \vrule Test 7\vrule
+
+\medskip
+Test 8: EAN8 + EAN2 barcode with default parameter:
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean, err = barcode:new_encoder("ean-8+2"); assert(not err, err)
+local n = 7865431
+local c = ean:checksum(n)
+local s = n .. c
+local symbo, err = ean:from_string(s.."88")
+assert(not err, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule Test 8\vrule\box\mybox \vrule Test 8\vrule
+
+\medskip
+Test 9: draw an EAN13 symbol with a user defined height.
+
+\smallskip
+We will test also the function barcode:enc\_by\_name(bc\_type, name),
+reusing encoders generated previuosly. The height parameter remain local
+to the object symbol.
+\smallskip
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean, err = barcode:enc_by_name("ean-13"); assert(not err, err)
+local n = 818571884348
+local c = ean:checksum(n)
+local s = n .. c
+local symbo, err = ean:from_string(s); assert(not err, err)
+local ok, err = symbo:set_param("height", tex.sp "5mm"); assert(ok, err)
+local canvas = barracuda:new_canvas()
+symbo:append_ga(canvas)
+
+local s2, err = ean:from_uint(8001120972163); assert(not err, err)
+s2:append_ga(canvas, tex.sp "45mm", 0)
+
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule Test 9\vrule\box\mybox \vrule Test 9\vrule
+
+\medskip
+Test 10: draw EAN13 symbols with a user defined height.
+
+\smallskip
+The parameter height is setting up in the encoder so it will be global.
+\smallskip
+
+\directlua{
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local ean, err = barcode:enc_by_name("ean-13"); assert(not err, err)
+local ok, err = ean:set_param("height", tex.sp "5mm"); assert(ok, err)
+local n = 758458535897; local c = ean:checksum(n); local s = n .. c
+local s1, err = ean:from_string(s); assert(not err, err)
+local canvas = barracuda:new_canvas()
+s1:append_ga(canvas)
+local s2, err = ean:from_uint(8001120972163); assert(not err, err)
+s2:append_ga(canvas, tex.sp "40mm", 0)
+local s3, err = ean:from_uint(8000570000310); assert(not err, err)
+local ok, e = s3:set_param{height = tex.sp "10mm"}; assert(ok, e)
+s3:append_ga(canvas, tex.sp "90mm", 0)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule Test 10\vrule\box\mybox \vrule Test 10\vrule
+
+\medskip
+That's all folk!
+
+\bye
+
+
diff --git a/macros/luatex/generic/barracuda/example/001-code128-test.lua b/macros/luatex/generic/barracuda/example/001-code128-test.lua
new file mode 100644
index 0000000000..78645612dc
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/001-code128-test.lua
@@ -0,0 +1,32 @@
+-- Copyright (C) 2018 Roberto Giacomelli
+
+local barracuda = require "barracuda"
+local barcode = barracuda:get_barcode_class()
+local c128, err = barcode:new_encoder("code128")
+assert(not err, err)
+
+print(c128._NAME)
+print(c128._VERSION)
+
+local info = c128:info()
+print("encoder name = ", info.name)
+print("description = ", info.description)
+for k, tp in ipairs(info.param) do
+ print(k, tp.name, tp.value)
+end
+
+local symb = c128:from_string("123")
+print("Symbol char list:")
+for _, c in ipairs(symb._code_data) do
+ print(c)
+end
+
+local canvas = barracuda:new_canvas()
+
+symb:append_ga(canvas)
+
+-- driver library
+local drv = barracuda:get_driver()
+drv:save("svg", canvas, "c128-123")
+
+
diff --git a/macros/luatex/generic/barracuda/example/001-i2of5-test.pdf b/macros/luatex/generic/barracuda/example/001-i2of5-test.pdf
new file mode 100644
index 0000000000..c46bb12d50
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/001-i2of5-test.pdf
Binary files differ
diff --git a/macros/luatex/generic/barracuda/example/001-i2of5-test.tex b/macros/luatex/generic/barracuda/example/001-i2of5-test.tex
new file mode 100644
index 0000000000..43c652d66a
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/001-i2of5-test.tex
@@ -0,0 +1,187 @@
+% !TeX program = LuaTeX
+% Copyright (C) 2019 Roberto Giacomelli
+
+\newbox\mybox
+\nopagenumbers
+
+\directlua{barracuda = require "barracuda"}
+
+Interleaved 2 of 5 encoder test.
+
+Test 1: one simple barcode with default parameters:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+
+local enc, err = barcode:new_encoder("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(54654681); assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\bigskip
+Test 2: one simple barcode with default parameter:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(1234567895); assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+% check digit tests
+
+\directlua{% verify check digits, the last one
+local code = {
+ 7352621,
+ 9624764,
+ 7592881,
+ 5344147,
+ 742238,
+ 199766,
+ 4544739,
+ 2774794,
+ 8509895,
+ 8285157,
+ 5387564,
+ 5534371,
+ 2155678,
+ 4529545,
+ 4689164,
+ 1674910,
+ 5317837,
+ 4117698,
+}
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+for _, n in ipairs(code) do
+ local smbl, err = enc:from_uint(n, {check_digit_policy="verify"})
+ assert(not err, err)
+end
+}
+
+\directlua{% check digits evaluation
+local code = {
+ ["735262"] = 1,
+ ["962476"] = 4,
+ ["759288"] = 1,
+ ["534414"] = 7,
+ ["74223"] = 8,
+ ["19976"] = 6,
+ ["454473"] = 9,
+ ["277479"] = 4,
+ ["850989"] = 5,
+ ["828515"] = 7,
+ ["538756"] = 4,
+ ["553437"] = 1,
+ ["215567"] = 8,
+ ["452954"] = 5,
+ ["468916"] = 4,
+ ["167491"] = 0,
+ ["531783"] = 7,
+ ["411769"] = 8,
+}
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+for sc, ck in pairs(code) do
+ local n = tonumber(sc)
+ local c, err = enc:get_checkdigit(n)
+ assert(not err, err)
+ assert(c == ck, "Wrong check digit "..c.." vs "..ck .." for "..sc)
+end
+}
+
+\bigskip
+Test 3: one simple barcode with check digit automatically added:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(454473, {check_digit_policy="add"})
+assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\bigskip
+Test 4: a second simple barcode with check digit automatically added:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(74223, {check_digit_policy="add"})
+assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\bigskip
+Test 5: a symbol with native check digits:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(121891259, {check_digit_policy="verify"})
+assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\bigskip
+Test 6: bearer bars please:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(747867239, {bearer_bars_enabled = true})
+assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\bigskip
+Test 7: bearer bars all around the symbol:
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_uint(986790868, {bearer_bars_enabled = true, bearer_bars_layout="frame"})
+assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+\bigskip
+Test 8: bearer bars all around the symbol (with string costructor):
+
+\directlua{
+local barcode = barracuda:get_barcode_class()
+local enc, err = barcode:enc_by_name("i2of5"); assert(not err, err)
+local symbo, err = enc:from_string("986790868", {bearer_bars_enabled = true, bearer_bars_layout="frame"})
+assert(not err, err)
+local canvas = barracuda:new_canvas(); symbo:append_ga(canvas)
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\vrule A\vrule\box\mybox \vrule A\vrule
+
+That's all folks!
+
+\bye
+
+
diff --git a/macros/luatex/generic/barracuda/example/003-code39-test.pdf b/macros/luatex/generic/barracuda/example/003-code39-test.pdf
new file mode 100644
index 0000000000..4625a40010
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/003-code39-test.pdf
Binary files differ
diff --git a/macros/luatex/generic/barracuda/example/003-code39-test.tex b/macros/luatex/generic/barracuda/example/003-code39-test.tex
new file mode 100644
index 0000000000..a4ba3d6e81
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/003-code39-test.tex
@@ -0,0 +1,53 @@
+% !TeX program = LuaTeX
+% Copyright (C) 2019 Roberto Giacomelli
+
+\newbox\mybox
+\nopagenumbers
+
+Test 3: the same Code 39 symbol drawing multiple time on the same canvas
+
+\directlua{
+local barracuda = require "barracuda"
+local c39, err = barracuda:get_barcode_class()
+ :new_encoder("code39")
+assert(not err, err)
+local err
+local symbol
+symbol, err = c39:from_string("ABCDEF12QJ31+")
+assert(not err, err)
+
+local ok, err = c39:set_param("text_vpos", "top")
+assert(ok, err)
+
+local canvas = barracuda:new_canvas()
+symbol:append_ga(canvas)
+
+local ok, err = symbol:set_param("text_hpos", "center")
+assert(ok, err)
+symbol:append_ga(canvas, tex.sp "4.5cm")
+
+local ok, err = symbol:set_param("text_hpos", "right")
+assert(ok, err)
+symbol:append_ga(canvas, tex.sp "9.0cm")
+
+local ok, err = c39:set_param("text_vpos", "bottom")
+assert(ok, err)
+
+local ok, err = symbol:set_param("text_hpos", "left")
+symbol:append_ga(canvas, 0, tex.sp "-2.0cm")
+
+local ok, err = symbol:set_param("text_hpos", "center")
+assert(ok, err)
+symbol:append_ga(canvas, tex.sp "4.5cm", tex.sp "-2.0cm")
+
+local ok, err = symbol:set_param("text_hpos", "right")
+assert(ok, err)
+symbol:append_ga(canvas, tex.sp "9.0cm", tex.sp "-2.0cm")
+
+local drv = barracuda:get_driver()
+drv:ga_to_hbox(canvas, "mybox")
+}
+\box\mybox
+\bye
+
+
diff --git a/macros/luatex/generic/barracuda/example/003-ean-test.pdf b/macros/luatex/generic/barracuda/example/003-ean-test.pdf
new file mode 100644
index 0000000000..e03c2d48d7
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/003-ean-test.pdf
Binary files differ
diff --git a/macros/luatex/generic/barracuda/example/003-ean-test.tex b/macros/luatex/generic/barracuda/example/003-ean-test.tex
new file mode 100644
index 0000000000..59b17c4c07
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/003-ean-test.tex
@@ -0,0 +1,16 @@
+% !TeX program = LuaLaTeX
+\documentclass{standalone}
+\usepackage{fontspec}
+\setmainfont{ocrb10.otf}
+\newbox\mybox
+\directlua{
+ local barracuda = require "barracuda"
+ barracuda:hbox("ean-13", "8006194056290", "mybox")
+}
+
+\begin{document}
+\box\mybox
+\end{document}
+
+
+
diff --git a/macros/luatex/generic/barracuda/example/004-ean-test.lua b/macros/luatex/generic/barracuda/example/004-ean-test.lua
new file mode 100644
index 0000000000..017e0725b8
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/004-ean-test.lua
@@ -0,0 +1,9 @@
+
+local barracuda = require "barracuda"
+barracuda:save("ean-13", "8006194056290", "8006194056290")
+
+
+
+
+
+
diff --git a/macros/luatex/generic/barracuda/example/006-code39-test.lua b/macros/luatex/generic/barracuda/example/006-code39-test.lua
new file mode 100644
index 0000000000..d33ad4ffaf
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/006-code39-test.lua
@@ -0,0 +1,45 @@
+
+local cm = 1864679.8110236 -- sp
+
+local barracuda = require "barracuda"
+local c39, err = barracuda:get_barcode_class()
+ :new_encoder("code39")
+assert(not err, err)
+local err
+local symbol
+symbol, err = c39:from_string("ABCDEF12QJ31+")
+assert(not err, err)
+
+local ok, err = c39:set_param("text_vpos", "top")
+assert(ok, err)
+
+local canvas = barracuda:new_canvas()
+symbol:append_ga(canvas)
+
+local ok, err = symbol:set_param("text_hpos", "center")
+assert(ok, err)
+symbol:append_ga(canvas, 4.5*cm)
+
+local ok, err = symbol:set_param("text_hpos", "right")
+assert(ok, err)
+symbol:append_ga(canvas, 9.0*cm)
+
+local ok, err = c39:set_param("text_vpos", "bottom")
+assert(ok, err)
+
+local ok, err = symbol:set_param("text_hpos", "left")
+symbol:append_ga(canvas, 0, -2.0*cm)
+
+local ok, err = symbol:set_param("text_hpos", "center")
+assert(ok, err)
+symbol:append_ga(canvas, 4.5*cm, -2.0*cm)
+
+local ok, err = symbol:set_param("text_hpos", "right")
+assert(ok, err)
+symbol:append_ga(canvas, 9.0*cm, -2.0*cm)
+
+local drv = barracuda:get_driver()
+drv:save("svg", canvas, "006-six")
+
+
+
diff --git a/macros/luatex/generic/barracuda/example/006-six.svg b/macros/luatex/generic/barracuda/example/006-six.svg
new file mode 100644
index 0000000000..25ce8bb34c
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/006-six.svg
@@ -0,0 +1,653 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Barracuda package (https://github.com/robitex/barracuda) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="132.036779mm" height="33.746381mm"
+ viewBox="-2.539987 -10.873169 132.036779 33.746381"
+>
+ <g stroke="black">
+ <path d="M0.095249 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M0.666746 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M1.142994 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M1.714491 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M2.190738 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M2.666986 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M3.143233 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M3.524231 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M4.095728 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M4.571976 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M5.048223 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M5.524471 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M6.000718 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M6.572215 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M7.048463 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M7.619960 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M8.191457 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M8.667704 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M9.239201 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M9.620199 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M10.001197 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M10.382195 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M10.858443 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M11.525189 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M12.001437 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M12.572934 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M13.049181 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M13.525429 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M14.192175 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M14.573173 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M14.954171 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M15.430419 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M16.001916 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M16.668662 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M17.049660 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M17.525908 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M18.002155 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M18.573652 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M18.954650 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M19.430898 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M19.907145 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M20.383393 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M21.050139 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M21.431137 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M21.907385 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M22.383632 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M22.764630 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M23.145628 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M23.621876 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M24.383872 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M24.860119 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M25.241117 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M25.717365 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M26.479361 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M26.955608 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M27.431856 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M28.003353 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M28.670099 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M29.051097 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M29.432095 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M29.908343 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M30.384590 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M30.956087 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M31.337085 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M31.813333 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M32.289580 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M32.861077 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M33.242075 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M33.813572 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M34.385069 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M34.766067 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M35.337564 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M35.813812 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M36.385309 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M36.861556 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <text x="0.000000" y="-8.773169" font-family="Verdana" font-size="2.877000">
+ ABCDEF12QJ31+ </text>
+ <g stroke="black">
+ <path d="M45.095249 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M45.666746 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M46.142994 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M46.714491 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M47.190738 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M47.666986 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M48.143233 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M48.524231 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M49.095728 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M49.571976 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M50.048223 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M50.524471 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M51.000718 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M51.572215 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M52.048463 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M52.619960 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M53.191457 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M53.667704 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M54.239201 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M54.620199 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M55.001197 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M55.382195 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M55.858443 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M56.525189 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M57.001437 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M57.572934 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M58.049181 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M58.525429 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M59.192175 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M59.573173 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M59.954171 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M60.430419 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M61.001916 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M61.668662 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M62.049660 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M62.525908 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M63.002155 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M63.573652 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M63.954650 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M64.430898 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M64.907145 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M65.383393 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M66.050139 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M66.431137 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M66.907385 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M67.383632 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M67.764630 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M68.145628 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M68.621876 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M69.383872 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M69.860119 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M70.241117 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M70.717365 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M71.479361 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M71.955608 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M72.431856 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M73.003353 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M73.670099 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M74.051097 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M74.432095 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M74.908343 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M75.384590 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M75.956087 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M76.337085 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M76.813333 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M77.289580 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M77.861077 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M78.242075 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M78.813572 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M79.385069 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M79.766067 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M80.337564 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M80.813812 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M81.385309 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M81.861556 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <text x="63.478403" y="-8.773169" font-family="Verdana" font-size="2.877000" text-anchor="middle">
+ ABCDEF12QJ31+ </text>
+ <g stroke="black">
+ <path d="M90.095249 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M90.666746 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M91.142994 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M91.714491 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M92.190738 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M92.666986 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M93.143233 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M93.524231 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M94.095728 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M94.571976 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M95.048223 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M95.524471 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M96.000718 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M96.572215 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M97.048463 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M97.619960 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M98.191457 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M98.667704 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M99.239201 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M99.620199 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M100.001197 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M100.382195 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M100.858443 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M101.525189 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M102.001437 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M102.572934 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M103.049181 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M103.525429 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M104.192175 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M104.573173 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M104.954171 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M105.430419 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M106.001916 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M106.668662 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M107.049660 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M107.525908 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M108.002155 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M108.573652 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M108.954650 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M109.430898 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M109.907145 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M110.383393 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M111.050139 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M111.431137 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M111.907385 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M112.383632 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M112.764630 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M113.145628 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M113.621876 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M114.383872 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M114.860119 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M115.241117 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M115.717365 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M116.479361 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M116.955608 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M117.431856 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M118.003353 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M118.670099 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M119.051097 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M119.432095 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M119.908343 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M120.384590 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M120.956087 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M121.337085 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M121.813333 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M122.289580 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M122.861077 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M123.242075 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M123.813572 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M124.385069 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M124.766067 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M125.337564 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ <path d="M125.813812 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M126.385309 -7.999958V-0.000000" style="stroke-width:0.380998"/>
+ <path d="M126.861556 -7.999958V-0.000000" style="stroke-width:0.190499"/>
+ </g>
+ <text x="126.956806" y="-8.773169" font-family="Verdana" font-size="2.877000" text-anchor="end">
+ ABCDEF12QJ31+ </text>
+ <g stroke="black">
+ <path d="M0.095249 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M0.666746 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M1.142994 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M1.714491 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M2.190738 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M2.666986 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M3.143233 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M3.524231 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M4.095728 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M4.571976 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M5.048223 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M5.524471 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M6.000718 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M6.572215 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M7.048463 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M7.619960 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M8.191457 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M8.667704 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M9.239201 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M9.620199 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M10.001197 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M10.382195 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M10.858443 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M11.525189 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M12.001437 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M12.572934 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M13.049181 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M13.525429 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M14.192175 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M14.573173 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M14.954171 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M15.430419 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M16.001916 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M16.668662 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M17.049660 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M17.525908 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M18.002155 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M18.573652 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M18.954650 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M19.430898 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M19.907145 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M20.383393 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M21.050139 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M21.431137 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M21.907385 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M22.383632 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M22.764630 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M23.145628 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M23.621876 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M24.383872 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M24.860119 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M25.241117 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M25.717365 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M26.479361 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M26.955608 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M27.431856 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M28.003353 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M28.670099 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M29.051097 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M29.432095 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M29.908343 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M30.384590 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M30.956087 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M31.337085 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M31.813333 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M32.289580 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M32.861077 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M33.242075 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M33.813572 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M34.385069 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M34.766067 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M35.337564 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M35.813812 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M36.385309 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M36.861556 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <text x="0.000000" y="22.873212" font-family="Verdana" font-size="2.877000">
+ ABCDEF12QJ31+ </text>
+ <g stroke="black">
+ <path d="M45.095249 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M45.666746 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M46.142994 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M46.714491 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M47.190738 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M47.666986 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M48.143233 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M48.524231 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M49.095728 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M49.571976 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M50.048223 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M50.524471 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M51.000718 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M51.572215 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M52.048463 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M52.619960 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M53.191457 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M53.667704 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M54.239201 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M54.620199 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M55.001197 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M55.382195 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M55.858443 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M56.525189 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M57.001437 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M57.572934 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M58.049181 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M58.525429 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M59.192175 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M59.573173 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M59.954171 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M60.430419 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M61.001916 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M61.668662 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M62.049660 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M62.525908 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M63.002155 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M63.573652 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M63.954650 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M64.430898 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M64.907145 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M65.383393 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M66.050139 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M66.431137 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M66.907385 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M67.383632 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M67.764630 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M68.145628 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M68.621876 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M69.383872 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M69.860119 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M70.241117 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M70.717365 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M71.479361 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M71.955608 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M72.431856 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M73.003353 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M73.670099 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M74.051097 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M74.432095 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M74.908343 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M75.384590 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M75.956087 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M76.337085 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M76.813333 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M77.289580 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M77.861077 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M78.242075 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M78.813572 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M79.385069 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M79.766067 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M80.337564 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M80.813812 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M81.385309 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M81.861556 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <text x="63.478403" y="22.873212" font-family="Verdana" font-size="2.877000" text-anchor="middle">
+ ABCDEF12QJ31+ </text>
+ <g stroke="black">
+ <path d="M90.095249 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M90.666746 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M91.142994 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M91.714491 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M92.190738 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M92.666986 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M93.143233 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M93.524231 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M94.095728 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M94.571976 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M95.048223 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M95.524471 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M96.000718 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M96.572215 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M97.048463 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M97.619960 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M98.191457 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M98.667704 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M99.239201 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M99.620199 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M100.001197 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M100.382195 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M100.858443 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M101.525189 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M102.001437 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M102.572934 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M103.049181 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M103.525429 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M104.192175 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M104.573173 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M104.954171 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M105.430419 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M106.001916 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M106.668662 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M107.049660 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M107.525908 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M108.002155 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M108.573652 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M108.954650 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M109.430898 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M109.907145 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M110.383393 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M111.050139 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M111.431137 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M111.907385 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M112.383632 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M112.764630 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M113.145628 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M113.621876 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M114.383872 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M114.860119 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M115.241117 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M115.717365 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M116.479361 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M116.955608 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M117.431856 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M118.003353 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M118.670099 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M119.051097 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M119.432095 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M119.908343 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M120.384590 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M120.956087 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M121.337085 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M121.813333 12.000042V20.000000" style="stroke-width:0.380998"/>
+ </g>
+ <g stroke="black">
+ <path d="M122.289580 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M122.861077 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M123.242075 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M123.813572 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M124.385069 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <g stroke="black">
+ <path d="M124.766067 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M125.337564 12.000042V20.000000" style="stroke-width:0.190499"/>
+ <path d="M125.813812 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M126.385309 12.000042V20.000000" style="stroke-width:0.380998"/>
+ <path d="M126.861556 12.000042V20.000000" style="stroke-width:0.190499"/>
+ </g>
+ <text x="126.956806" y="22.873212" font-family="Verdana" font-size="2.877000" text-anchor="end">
+ ABCDEF12QJ31+ </text>
+</svg>
+
diff --git a/macros/luatex/generic/barracuda/example/01-latex-code39.pdf b/macros/luatex/generic/barracuda/example/01-latex-code39.pdf
new file mode 100644
index 0000000000..d40c55f46c
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/01-latex-code39.pdf
Binary files differ
diff --git a/macros/luatex/generic/barracuda/example/01-latex-code39.tex b/macros/luatex/generic/barracuda/example/01-latex-code39.tex
new file mode 100644
index 0000000000..c74935ed8d
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/01-latex-code39.tex
@@ -0,0 +1,14 @@
+% !TeX program = LuaLaTeX
+% Copyright (C) 2019 Roberto Giacomelli
+
+\documentclass{article}
+
+\usepackage{barracuda}
+
+\begin{document}
+
+A\barracuda{code39}{123QWE}A
+
+\end{document}
+
+
diff --git a/macros/luatex/generic/barracuda/example/8006194056290.svg b/macros/luatex/generic/barracuda/example/8006194056290.svg
new file mode 100644
index 0000000000..f7965e94d4
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/8006194056290.svg
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Barracuda package (https://github.com/robitex/barracuda) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="37.289804mm" height="25.279878mm"
+ viewBox="-3.629981 -24.499871 37.289804 25.279878"
+>
+ <g stroke="black">
+ <path d="M0.164999 -24.499871V-0.000000" style="stroke-width:0.329998"/>
+ <path d="M0.824996 -24.499871V-0.000000" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M2.309988 -24.499871V-1.649991" style="stroke-width:0.659997"/>
+ <path d="M3.134984 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M3.794980 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ <path d="M5.114973 -24.499871V-1.649991" style="stroke-width:0.989995"/>
+ </g>
+ <g stroke="black">
+ <path d="M6.104968 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ <path d="M7.259962 -24.499871V-1.649991" style="stroke-width:1.319993"/>
+ </g>
+ <g stroke="black">
+ <path d="M8.579955 -24.499871V-1.649991" style="stroke-width:0.659997"/>
+ <path d="M9.899948 -24.499871V-1.649991" style="stroke-width:0.659997"/>
+ </g>
+ <g stroke="black">
+ <path d="M11.054942 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ <path d="M12.044937 -24.499871V-1.649991" style="stroke-width:0.989995"/>
+ </g>
+ <g stroke="black">
+ <path d="M13.034931 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ <path d="M14.519924 -24.499871V-1.649991" style="stroke-width:0.659997"/>
+ </g>
+ <g stroke="black">
+ <path d="M15.344919 -24.499871V-0.000000" style="stroke-width:0.329998"/>
+ <path d="M16.004916 -24.499871V-0.000000" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M16.994911 -24.499871V-1.649991" style="stroke-width:0.989995"/>
+ <path d="M18.314904 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M18.974900 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ <path d="M20.294893 -24.499871V-1.649991" style="stroke-width:0.989995"/>
+ </g>
+ <g stroke="black">
+ <path d="M21.284888 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ <path d="M21.944885 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M23.759875 -24.499871V-1.649991" style="stroke-width:0.659997"/>
+ <path d="M24.749870 -24.499871V-1.649991" style="stroke-width:0.659997"/>
+ </g>
+ <g stroke="black">
+ <path d="M26.234862 -24.499871V-1.649991" style="stroke-width:0.989995"/>
+ <path d="M27.224857 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M28.544850 -24.499871V-1.649991" style="stroke-width:0.989995"/>
+ <path d="M29.864843 -24.499871V-1.649991" style="stroke-width:0.329998"/>
+ </g>
+ <g stroke="black">
+ <path d="M30.524839 -24.499871V-0.000000" style="stroke-width:0.329998"/>
+ <path d="M31.184836 -24.499871V-0.000000" style="stroke-width:0.329998"/>
+ </g>
+ <text x="-3.629981" y="0.780007" font-family="Verdana" font-size="2.877000">
+ 8 </text>
+ <text y="0.780007" font-family="Verdana" font-size="2.877000" text-anchor="middle">
+ <tspan x="2.043326">0</tspan>
+ <tspan x="4.459979">0</tspan>
+ <tspan x="6.876631">6</tspan>
+ <tspan x="9.293284">1</tspan>
+ <tspan x="11.709936">9</tspan>
+ <tspan x="14.126589">4</tspan>
+ </text>
+ <text y="0.780007" font-family="Verdana" font-size="2.877000" text-anchor="middle">
+ <tspan x="17.223246">0</tspan>
+ <tspan x="19.639899">5</tspan>
+ <tspan x="22.056551">6</tspan>
+ <tspan x="24.473204">2</tspan>
+ <tspan x="26.889856">9</tspan>
+ <tspan x="29.306509">0</tspan>
+ </text>
+</svg>
+
diff --git a/macros/luatex/generic/barracuda/example/c128-123.svg b/macros/luatex/generic/barracuda/example/c128-123.svg
new file mode 100644
index 0000000000..9f5b5847aa
--- /dev/null
+++ b/macros/luatex/generic/barracuda/example/c128-123.svg
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Barracuda package (https://github.com/robitex/barracuda) -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg"
+ version="1.1"
+ width="18.479903mm" height="9.999947mm"
+ viewBox="-2.099989 -9.999947 18.479903 9.999947"
+>
+ <g stroke="black">
+ <path d="M0.209999 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ <path d="M0.734996 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ <path d="M1.364993 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ </g>
+ <g stroke="black">
+ <path d="M2.414987 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ <path d="M3.254983 -9.999947V-0.000000" style="stroke-width:0.629997"/>
+ <path d="M4.199978 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ </g>
+ <g stroke="black">
+ <path d="M4.829975 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ <path d="M5.774970 -9.999947V-0.000000" style="stroke-width:0.629997"/>
+ <path d="M6.614965 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ </g>
+ <g stroke="black">
+ <path d="M7.139962 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ <path d="M7.874959 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ <path d="M8.504955 -9.999947V-0.000000" style="stroke-width:0.629997"/>
+ </g>
+ <g stroke="black">
+ <path d="M9.344951 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ <path d="M10.289946 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ <path d="M11.024942 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ </g>
+ <g stroke="black">
+ <path d="M11.759938 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ <path d="M12.914932 -9.999947V-0.000000" style="stroke-width:0.629997"/>
+ <path d="M13.544929 -9.999947V-0.000000" style="stroke-width:0.209999"/>
+ <path d="M14.069926 -9.999947V-0.000000" style="stroke-width:0.419998"/>
+ </g>
+</svg>
+