From 3065e264e8e7a4b564b61c25d3897757bb0c8c91 Mon Sep 17 00:00:00 2001 From: Patrick Storz Date: Wed, 30 Oct 2019 18:06:17 +0100 Subject: PDF+LaTeX export: escape ampersands Fixes https://gitlab.com/inkscape/inbox/issues/1104 --- src/extension/internal/latex-text-renderer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/extension/internal/latex-text-renderer.cpp') diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index ad918d826..35cbb4544 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -21,10 +21,12 @@ #include #include +#include +#include + #include "libnrtype/Layout-TNG.h" #include <2geom/transforms.h> #include <2geom/rect.h> -#include #include "object/sp-item.h" #include "object/sp-item-group.h" @@ -364,6 +366,10 @@ void LaTeXTextRenderer::sp_text_render(SPText *textobj) Inkscape::Text::Layout::iterator ln = li; ln.nextStartOfSpan(); Glib::ustring uspanstr = sp_te_get_string_multiline (textobj, li, ln); + + // escape ampersands + uspanstr = Glib::Regex::create("&")->replace_literal(uspanstr, 0, "\\&", (Glib::RegexMatchFlags)0); + const gchar *spanstr = uspanstr.c_str(); if (!spanstr) { continue; -- cgit v1.2.3