resvg: Some fonts are ignored during the rendering process

I am reporting the issue here after I found a problem when using svg2pdf. Since they are using ReSVG for the rendering, they suggested to communicate the issue upstream as well.

So my issue is that when I am trying to convert an SVG file to a PNG file (or an PDF file when using svg2pdf), some fonts are not being taken into account, leading to an incorrect rendering. The problematic fonts are the Dharma Gothic E fonts in the example I chose.

Using svg2pdf, I can see that they are correctly detected by fontdb:

╭ svg2pdf on  main [?] via 🦀 v1.75.0
╰❯ git ls -1
49891ef 2024-01-24 (HEAD -> main, upstream/main, upstream/HEAD) Version bump + improvements to svg2pdf (#52) [GitHub]

╭ svg2pdf on  main [?] via 🦀 v1.75.0
╰❯ cargo run -q -- fonts --all|grep -i dharma
Dharma Gothic E
├ DharmaGothicE-Bold
├ DharmaGothicE-BoldItalic
├ DharmaGothicE-ExBold
├ DharmaGothicE-ExBoldItalic
├ DharmaGothicE-ExLight
├ DharmaGothicE-ExLightItalic
├ DharmaGothicE-Heavy
├ DharmaGothicE-HeavyItalic
├ DharmaGothicE-Light
├ DharmaGothicE-LightItalic
├ DharmaGothicE-Regular
├ DharmaGothicE-RegularItalic
├ DharmaGothicE-Thin
└ DharmaGothicE-ThinItalic

But for some reason, the rendering is broken.

Here is a screenshot of the original SVG file:

image

And here the rendering using ReSVG:

image

Bellow is a snippet of the code I used to reproduce the issue:

use resvg::{
    tiny_skia,
    usvg::{self, TreeParsing},
};
use std::error::Error;
use usvg::{fontdb, TreePostProc};

fn main() -> Result<(), Box<dyn Error>> {
    let input_file = include_str!("united_states-fl-tampa.svg");
    let output_file = "resvg.png";

    let mut fontdb = fontdb::Database::new();
    fontdb.load_system_fonts();

    let mut tree = usvg::Tree::from_str(input_file, &usvg::Options::default())?;
    let steps = usvg::PostProcessingSteps {
        convert_text_into_paths: true,
    };
    tree.postprocess(steps, &fontdb);

    let pixmap_size = tree.size.to_int_size();
    let mut pixmap = tiny_skia::Pixmap::new(pixmap_size.width(), pixmap_size.height()).unwrap();
    resvg::render(&tree, tiny_skia::Transform::default(), &mut pixmap.as_mut());
    pixmap.save_png(output_file).unwrap();

    Ok(())
}

However, when using Inkscape or CairoSVG the rendering works correctly.

Rendering with CairoSVG:

image

Rendering with Inkscape:

image

And bellow is code of the SVG I am trying to convert:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   id="svg1034"
   viewBox="0 0 883.3 1056"
   version="1.1"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:svg="http://www.w3.org/2000/svg">
  <defs
     id="defs4">
    <style
       id="style2">.cls-1,.cls-2{letter-spacing:-.01em;}.cls-1,.cls-3,.cls-4,.cls-5,.cls-6,.cls-7,.cls-8,.cls-9,.cls-10,.cls-11,.cls-12,.cls-13,.cls-14{font-weight:200;}.cls-1,.cls-3,.cls-4,.cls-5,.cls-6,.cls-8,.cls-9,.cls-10,.cls-11,.cls-13,.cls-14{font-family:Montserrat-ExtraLight, Montserrat;}.cls-15{letter-spacing:-.01em;}.cls-15,.cls-16,.cls-17,.cls-18,.cls-19,.cls-20,.cls-21,.cls-22,.cls-23,.cls-24,.cls-25,.cls-26,.cls-27,.cls-28,.cls-29{font-family:Montserrat-Medium, Montserrat;font-weight:500;}.cls-30{letter-spacing:.19em;}.cls-16,.cls-31,.cls-9{letter-spacing:0em;}.cls-32{letter-spacing:.33em;}.cls-33,.cls-20,.cls-34{fill:#fff;}.cls-35{letter-spacing:-.02em;}.cls-36{letter-spacing:.18em;}.cls-18{letter-spacing:-.01em;}.cls-37{fill:#e1251b;}.cls-37,.cls-38{font-family:DharmaGothicE-Regular, 'Dharma Gothic E';font-size:60px;letter-spacing:.04em;}.cls-19,.cls-39{letter-spacing:-.01em;}.cls-40{letter-spacing:.18em;}.cls-41{letter-spacing:.34em;}.cls-42{letter-spacing:.19em;}.cls-20{font-size:16px;}.cls-20,.cls-34{isolation:isolate;}.cls-43{fill:#8b8a8d;}.cls-44,.cls-45,.cls-23,.cls-46,.cls-7,.cls-47,.cls-12{fill:#00263e;}.cls-44,.cls-23{font-size:23px;}.cls-48{letter-spacing:0em;}.cls-21{letter-spacing:.01em;}.cls-49{letter-spacing:.34em;}.cls-22{letter-spacing:0em;}.cls-3,.cls-50{letter-spacing:-.03em;}.cls-51{fill:#119fda;}.cls-52{letter-spacing:-.03em;}.cls-45{font-size:100px;}.cls-45,.cls-34,.cls-46,.cls-53,.cls-54{font-weight:700;}.cls-45,.cls-46,.cls-53,.cls-54{font-family:DharmaGothicE-Bold, 'Dharma Gothic E';}.cls-55{stroke:#8b8a8d;}.cls-55,.cls-56{fill:none;stroke-miterlimit:10;}.cls-57,.cls-8{letter-spacing:0em;}.cls-5{letter-spacing:-.03em;}.cls-34{font-family:Montserrat-Bold, Montserrat;font-size:24px;}.cls-24{letter-spacing:0em;}.cls-58{letter-spacing:-.03em;}.cls-59{letter-spacing:.33em;}.cls-6,.cls-60{letter-spacing:0em;}.cls-61{letter-spacing:.19em;}.cls-62{letter-spacing:0em;}.cls-46{font-size:61.8px;}.cls-25{letter-spacing:-.02em;}.cls-63{letter-spacing:-.02em;}.cls-64,.cls-53{fill:#009edb;}.cls-53{font-size:33px;letter-spacing:.04em;}.cls-65{fill:#e02726;}.cls-26,.cls-66{letter-spacing:0em;}.cls-7{font-size:29px;}.cls-7,.cls-12{font-family:DharmaGothicE-Thin, 'Dharma Gothic E';}.cls-67{letter-spacing:.19em;}.cls-68{fill:#df271c;}.cls-27{letter-spacing:-.05em;}.cls-69,.cls-13{letter-spacing:-.04em;}.cls-28{letter-spacing:-.02em;}.cls-38,.cls-54{fill:#00a0df;}.cls-10{letter-spacing:0em;}.cls-70{letter-spacing:.2em;}.cls-71{letter-spacing:-.02em;}.cls-72{letter-spacing:.17em;}.cls-11{letter-spacing:-.03em;}.cls-73{fill:#e6e7e8;}.cls-74{letter-spacing:.19em;}.cls-47{font-family:Montserrat-SemiBold, Montserrat;font-size:28px;font-weight:600;}.cls-29,.cls-75{letter-spacing:-.01em;}.cls-54{font-size:85px;}.cls-12{font-size:36.58px;}.cls-76{letter-spacing:.19em;}.cls-77{fill:#8a898c;}.cls-78{fill:#484846;}.cls-56{stroke:#e6e7e8;}.cls-79{letter-spacing:.13em;}.cls-80{letter-spacing:-.02em;}.cls-14{letter-spacing:0em;}</style>
  </defs>
  <rect
  x="0.54"
  y="51.73"
  width="815.16998"
  height="191.02"
  id="rect364"
  style="fill:#ffffff;stroke:#ffffff;stroke-width:0;stroke-linecap:square;stroke-miterlimit:4;stroke-dasharray:none"/>
  <text
     class="cls-45"
     id="text8"
     x="678.03998"
     y="183.97"
     style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:74.6667px;font-family:DharmaGothicE-Bold, 'Dharma Gothic E';-inkscape-font-specification:'DharmaGothicE-Bold, Dharma Gothic E, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#00263e"><tspan
       x="678.03998"
       y="183.97"
       id="tspan6"
       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:74.6667px;font-family:DharmaGothicE-Bold, 'Dharma Gothic E';-inkscape-font-specification:'DharmaGothicE-Bold, Dharma Gothic E, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal">2023</tspan></text>
  <path
     id="header_bar"
     class="cls-73"
     d="M0,242.75H815.71v813.25H0V242.75Z" />
  <path
     id="header_bar-2"
     class="cls-68"
     d="M.54,51.73H816.25V0H.54V51.73Z" />
  <text
     class="cls-34"
     transform="translate(245.79 36.16)"
     id="text22"><tspan
       class="cls-49"
       x="0"
       y="0"
       id="tspan12">CITY S</tspan><tspan
       class="cls-32"
       x="127.08"
       y="0"
       id="tspan14">C</tspan><tspan
       class="cls-41"
       x="151.56"
       y="0"
       id="tspan16">ORE</tspan><tspan
       class="cls-59"
       x="228.91"
       y="0"
       id="tspan18">C</tspan><tspan
       class="cls-49"
       x="253.49"
       y="0"
       id="tspan20">ARD</tspan></text>
  <line
     class="cls-55"
     x1="275.14999"
     y1="220.09"
     x2="275.14999"
     y2="73.410004"
     id="line24" />
  <rect
     class="cls-33"
     x="44.22"
     y="314.58"
     width="729.24"
     height="359.07"
     id="rect26" />
  <rect
     class="cls-64"
     x="43.77"
     y="281.02"
     width="729.24"
     height="33.14"
     id="rect28" />
  <text
     class="cls-20"
     transform="translate(58.45 303.34)"
     id="text50"><tspan
       class="cls-70"
       x="0"
       y="0"
       id="tspan30">BI</tspan><tspan
       class="cls-76"
       x="23.47"
       y="0"
       id="tspan32">C</tspan><tspan
       class="cls-72"
       x="38.05"
       y="0"
       id="tspan34">Y</tspan><tspan
       class="cls-70"
       x="51.12"
       y="0"
       id="tspan36">CLE NE</tspan><tspan
       class="cls-67"
       x="130.13"
       y="0"
       id="tspan38">T</tspan><tspan
       class="cls-36"
       x="142.59"
       y="0"
       id="tspan40">W</tspan><tspan
       class="cls-70"
       x="163.46"
       y="0"
       id="tspan42">ORK ANA</tspan><tspan
       class="cls-79"
       x="263.15"
       y="0"
       id="tspan44">L</tspan><tspan
       class="cls-40"
       x="274.69"
       y="0"
       id="tspan46">Y</tspan><tspan
       class="cls-70"
       x="288"
       y="0"
       id="tspan48">SIS</tspan></text>
  <g
     id="g214"
     transform="translate(16)">
    <text
       class="cls-44"
       transform="translate(104.68,370.63)"
       id="text198"><tspan
         class="cls-29"
         x="0"
         y="0"
         id="tspan52">P</tspan><tspan
         class="cls-17"
         x="16.33"
         y="0"
         id="tspan54">eople</tspan><tspan
         class="cls-4"
         x="81.190002"
         y="0"
         xml:space="preserve"
         id="tspan56"> - </tspan><tspan
         class="cls-11"
         x="103.25"
         y="0"
         id="tspan58">A</tspan><tspan
         class="cls-3"
         x="118.63"
         y="0"
         id="tspan60">cc</tspan><tspan
         class="cls-4"
         x="143.06"
         y="0"
         id="tspan62">ess</tspan><tspan
         class="cls-8"
         x="183.61"
         y="0"
         id="tspan64">t</tspan><tspan
         class="cls-4"
         x="191.96001"
         y="0"
         id="tspan66">o where other people li</tspan><tspan
         class="cls-1"
         x="451.89999"
         y="0"
         id="tspan68">v</tspan><tspan
         class="cls-9"
         x="462.38"
         y="0"
         id="tspan70">e</tspan><tspan
         class="cls-17"
         x="0"
         y="51.889999"
         id="tspan72">Oppo</tspan><tspan
         class="cls-21"
         x="65.300003"
         y="51.889999"
         id="tspan74">r</tspan><tspan
         class="cls-17"
         x="75.07"
         y="51.889999"
         id="tspan76">tuni</tspan><tspan
         class="cls-24"
         x="122.24"
         y="51.889999"
         id="tspan78">t</tspan><tspan
         class="cls-17"
         x="131.53999"
         y="51.889999"
         id="tspan80">y</tspan><tspan
         class="cls-14"
         x="144.39"
         y="51.889999"
         xml:space="preserve"
         id="tspan82"> - </tspan><tspan
         class="cls-5"
         x="166.45"
         y="51.889999"
         id="tspan84">A</tspan><tspan
         class="cls-3"
         x="181.83"
         y="51.889999"
         id="tspan86">cc</tspan><tspan
         class="cls-4"
         x="206.25999"
         y="51.889999"
         id="tspan88">ess</tspan><tspan
         class="cls-6"
         x="246.81"
         y="51.889999"
         id="tspan90">t</tspan><tspan
         class="cls-14"
         x="255.16"
         y="51.889999"
         id="tspan92">o jobs and edu</tspan><tspan
         class="cls-13"
         x="422.37"
         y="51.889999"
         id="tspan94">c</tspan><tspan
         class="cls-4"
         x="434.39001"
         y="51.889999"
         id="tspan96">ation</tspan><tspan
         class="cls-28"
         x="0"
         y="103.79"
         id="tspan98">C</tspan><tspan
         class="cls-17"
         x="16.120001"
         y="103.79"
         id="tspan100">o</tspan><tspan
         class="cls-29"
         x="30.73"
         y="103.79"
         id="tspan102">r</tspan><tspan
         class="cls-17"
         x="39.880001"
         y="103.79"
         id="tspan104">e Se</tspan><tspan
         class="cls-21"
         x="88.5"
         y="103.79"
         id="tspan106">r</tspan><tspan
         class="cls-17"
         x="98.279999"
         y="103.79"
         id="tspan108">vi</tspan><tspan
         class="cls-22"
         x="117.55"
         y="103.79"
         id="tspan110">c</tspan><tspan
         class="cls-17"
         x="130.5"
         y="103.79"
         id="tspan112">es</tspan><tspan
         class="cls-4"
         x="156.10001"
         y="103.79"
         xml:space="preserve"
         id="tspan114"> - </tspan><tspan
         class="cls-5"
         x="178.16"
         y="103.79"
         id="tspan116">A</tspan><tspan
         class="cls-3"
         x="193.53999"
         y="103.79"
         id="tspan118">cc</tspan><tspan
         class="cls-4"
         x="217.97"
         y="103.79"
         id="tspan120">ess</tspan><tspan
         class="cls-8"
         x="258.51999"
         y="103.79"
         id="tspan122">t</tspan><tspan
         class="cls-4"
         x="266.87"
         y="103.79"
         id="tspan124">o basic needs</tspan><tspan
         class="cls-17"
         x="0"
         y="155.67999"
         id="tspan126">Rec</tspan><tspan
         class="cls-29"
         x="43.93"
         y="155.67999"
         id="tspan128">r</tspan><tspan
         class="cls-25"
         x="53.080002"
         y="155.67999"
         id="tspan130">e</tspan><tspan
         class="cls-17"
         x="66.809998"
         y="155.67999"
         id="tspan132">ation</tspan><tspan
         class="cls-14"
         x="126.77"
         y="155.67999"
         xml:space="preserve"
         id="tspan134"> - </tspan><tspan
         class="cls-5"
         x="148.83"
         y="155.67999"
         id="tspan136">A</tspan><tspan
         class="cls-3"
         x="164.22"
         y="155.67999"
         id="tspan138">cc</tspan><tspan
         class="cls-4"
         x="188.64"
         y="155.67999"
         id="tspan140">ess</tspan><tspan
         class="cls-6"
         x="229.19"
         y="155.67999"
         id="tspan142">t</tspan><tspan
         class="cls-14"
         x="237.53999"
         y="155.67999"
         id="tspan144">o par</tspan><tspan
         class="cls-10"
         x="294.98999"
         y="155.67999"
         id="tspan146">k</tspan><tspan
         class="cls-4"
         x="307.62"
         y="155.67999"
         id="tspan148">s and t</tspan><tspan
         class="cls-3"
         x="383.5"
         y="155.67999"
         id="tspan150">r</tspan><tspan
         class="cls-9"
         x="390.89999"
         y="155.67999"
         id="tspan152">ails</tspan><tspan
         class="cls-17"
         x="0"
         y="207.57001"
         id="tspan154">Retail</tspan><tspan
         class="cls-4"
         x="66.910004"
         y="207.57001"
         xml:space="preserve"
         id="tspan156"> - </tspan><tspan
         class="cls-11"
         x="88.959999"
         y="207.57001"
         id="tspan158">A</tspan><tspan
         class="cls-3"
         x="104.35"
         y="207.57001"
         id="tspan160">cc</tspan><tspan
         class="cls-4"
         x="128.77"
         y="207.57001"
         id="tspan162">ess</tspan><tspan
         class="cls-6"
         x="169.32001"
         y="207.57001"
         id="tspan164">t</tspan><tspan
         class="cls-14"
         x="177.67"
         y="207.57001"
         id="tspan166">o shopping</tspan><tspan
         class="cls-3"
         x="310.67999"
         y="207.57001"
         id="tspan168">c</tspan><tspan
         class="cls-4"
         x="322.89001"
         y="207.57001"
         id="tspan170">en</tspan><tspan
         class="cls-6"
         x="351.34"
         y="207.57001"
         id="tspan172">t</tspan><tspan
         class="cls-4"
         x="359.69"
         y="207.57001"
         id="tspan174">ers</tspan><tspan
         class="cls-18"
         x="0"
         y="259.47"
         id="tspan176">T</tspan><tspan
         class="cls-27"
         x="13.2"
         y="259.47"
         id="tspan178">r</tspan><tspan
         class="cls-17"
         x="21.57"
         y="259.47"
         id="tspan180">ansit</tspan><tspan
         class="cls-4"
         x="78.449997"
         y="259.47"
         xml:space="preserve"
         id="tspan182"> - </tspan><tspan
         class="cls-5"
         x="100.51"
         y="259.47"
         id="tspan184">A</tspan><tspan
         class="cls-3"
         x="115.9"
         y="259.47"
         id="tspan186">cc</tspan><tspan
         class="cls-4"
         x="140.32001"
         y="259.47"
         id="tspan188">ess</tspan><tspan
         class="cls-8"
         x="180.87"
         y="259.47"
         id="tspan190">t</tspan><tspan
         class="cls-4"
         x="189.22"
         y="259.47"
         id="tspan192">o major t</tspan><tspan
         class="cls-3"
         x="290.44"
         y="259.47"
         id="tspan194">r</tspan><tspan
         class="cls-9"
         x="297.85001"
         y="259.47"
         id="tspan196">ansit hubs</tspan></text>
    <text
       class="cls-53"
       transform="translate(43.9,373.63)"
       text-anchor="start"
       id="text212"><tspan
         x="0"
         y="0"
         id="tspan200">15</tspan><tspan
         x="0"
         y="51.889999"
         id="tspan202">15</tspan><tspan
         x="0"
         y="103.79"
         id="tspan204">10</tspan><tspan
         x="0"
         y="155.67999"
         id="tspan206">24</tspan><tspan
         x="0"
         y="207.57001"
         id="tspan208">18</tspan><tspan
         x="0"
         y="259.47"
         id="tspan210">4</tspan></text>
  </g>
  <rect
     class="cls-33"
     x="44.45"
     y="746.8"
     width="729.24"
     height="270.11"
     id="rect216" />
  <rect
     class="cls-43"
     x="44"
     y="712.24"
     width="729.24"
     height="33.14"
     id="rect218" />
  <text
     class="cls-20"
     transform="translate(58.67 734.56)"
     id="text236"><tspan
       class="cls-70"
       x="0"
       y="0"
       id="tspan220">INFRA</tspan><tspan
       class="cls-30"
       x="67.46"
       y="0"
       id="tspan222">S</tspan><tspan
       class="cls-70"
       x="80.43"
       y="0"
       id="tspan224">TRU</tspan><tspan
       class="cls-42"
       x="123.71"
       y="0"
       id="tspan226">C</tspan><tspan
       class="cls-74"
       x="138.35"
       y="0"
       id="tspan228">T</tspan><tspan
       class="cls-70"
       x="150.74"
       y="0"
       id="tspan230">URE MILE</tspan><tspan
       class="cls-61"
       x="256.11"
       y="0"
       id="tspan232">A</tspan><tspan
       class="cls-70"
       x="270.86"
       y="0"
       id="tspan234">GE</tspan></text>
  <text
     class="cls-44"
     id="text268"
     x="218.83"
     y="799.84998"><tspan
       class="cls-17"
       id="tspan250"><tspan
         x="218.83"
         y="799.84998"
         id="tspan238">Miles of high-stress roads</tspan></tspan><tspan
       class="cls-4"
       id="tspan266"><tspan
         x="218.83"
         y="829.84998"
         id="tspan252">Roads lacking adequa</tspan><tspan
         class="cls-57"
         x="467.04001"
         y="829.84998"
         id="tspan254">t</tspan><tspan
         x="475.38998"
         y="829.84998"
         id="tspan256">e bi</tspan><tspan
         class="cls-35"
         x="517.02002"
         y="829.84998"
         id="tspan258">k</tspan><tspan
         x="529.21002"
         y="829.84998"
         id="tspan260">e inf</tspan><tspan
         class="cls-50"
         x="577.34998"
         y="829.84998"
         id="tspan262">r</tspan><tspan
         x="584.75"
         y="829.84998"
         id="tspan264">astructure</tspan></tspan></text>
  <text
     class="cls-37"
     id="text272"
     x="59.0"
     y="829.07001"
     text-anchor="start">2695</text>
  <g
     id="g340"
     transform="translate(16)">
    <text
       class="cls-44"
       transform="translate(202.83,919.57)"
       id="text334"><tspan
         class="cls-17"
         x="0"
         y="0"
         id="tspan274">Miles of l</tspan><tspan
         class="cls-15"
         x="101.91"
         y="0"
         id="tspan276">o</tspan><tspan
         class="cls-18"
         x="116.17"
         y="0"
         id="tspan278">w</tspan><tspan
         class="cls-17"
         x="136.55"
         y="0"
         id="tspan280">-st</tspan><tspan
         class="cls-19"
         x="166.39999"
         y="0"
         id="tspan282">r</tspan><tspan
         class="cls-17"
         x="175.56"
         y="0"
         id="tspan284">ess</tspan><tspan
         class="cls-29"
         x="218.87"
         y="0"
         id="tspan286">r</tspan><tspan
         class="cls-26"
         x="228.02"
         y="0"
         id="tspan288">o</tspan><tspan
         class="cls-16"
         x="242.50999"
         y="0"
         id="tspan290">ads and</tspan><tspan
         class="cls-26"
         x="340.95001"
         y="0"
         id="tspan292">p</tspan><tspan
         class="cls-17"
         x="356.51999"
         y="0"
         id="tspan294">aths</tspan><tspan
         class="cls-4"
         x="406.98001"
         y="0"
         id="tspan296" /><tspan
         class="cls-4"
         id="tspan316"><tspan
           x="0"
           y="30"
           id="tspan298">Roads where</tspan><tspan
           class="cls-69"
           x="152.44"
           y="30"
           id="tspan300">c</tspan><tspan
           x="164.47"
           y="30"
           id="tspan302">ars and bi</tspan><tspan
           class="cls-35"
           x="274.06"
           y="30"
           id="tspan304">k</tspan><tspan
           x="286.25"
           y="30"
           id="tspan306">es are sepa</tspan><tspan
           class="cls-52"
           x="410.35999"
           y="30"
           id="tspan308">r</tspan><tspan
           x="417.76001"
           y="30"
           id="tspan310">a</tspan><tspan
           class="cls-60"
           x="430.79999"
           y="30"
           id="tspan312">t</tspan><tspan
           x="439.14999"
           y="30"
           id="tspan314">ed</tspan></tspan><tspan
         class="cls-4"
         id="tspan332"><tspan
           x="0"
           y="60"
           id="tspan318">or t</tspan><tspan
           class="cls-52"
           x="37.540001"
           y="60"
           id="tspan320">r</tspan><tspan
           class="cls-58"
           x="44.939999"
           y="60"
           id="tspan322">a</tspan><tspan
           class="cls-2"
           x="57.360001"
           y="60"
           id="tspan324">v</tspan><tspan
           x="67.849998"
           y="60"
           id="tspan326">el speeds are l</tspan><tspan
           class="cls-2"
           x="226.84"
           y="60"
           id="tspan328">o</tspan><tspan
           class="cls-31"
           x="240.53"
           y="60"
           id="tspan330">w</tspan></tspan></text>
    <text
       class="cls-38"
       transform="translate(41.95,954.03)"
       text-anchor="start"
       id="text338">834</text>
  </g>
  <line
     class="cls-56"
     x1="618.46"
     y1="334.93"
     x2="618.46"
     y2="642.59"
     id="line342" />
  <text
     class="cls-47"
     transform="translate(695.2 375.9)"
     text-anchor="middle"
     id="text360">Overall</text>
  <text
     class="cls-47"
     transform="translate(695.2 405.9)"
     text-anchor="middle"
     id="text170">Score</text>
  <text
     class="cls-54"
     transform="translate(695.2 494.11)"
     text-anchor="middle"
     id="text364">14</text>
  <line
     class="cls-56"
     x1="72.05"
     y1="871.17"
     x2="727.69"
     y2="869.13"
     id="line366" />
  <text
     class="cls-54"
     transform="translate(695.2 616.53)"
     text-anchor="middle"
     id="text370">100</text>
  <text
     class="cls-46"
     text-anchor="middle"
     id="text374"
     lengthAdjust="spacing"
     x="462.26001"
     y="138.19">Tampa</text>
  <text
     class="cls-12"
     text-anchor="middle"
     id="text378"
     x="462.26001"
     y="180.56"><tspan
       x="462.26001"
       y="180.56"
       id="tspan376">FL, United States</tspan></text>
  <text
     class="cls-7"
     text-anchor="middle"
     id="text382"
     x="462.26001"
     y="212.92999"><tspan
       x="462.26001"
       y="212.92999"
       id="tspan380">380476</tspan></text>
  <line
     class="cls-55"
     x1="658.96002"
     y1="221.92999"
     x2="658.96002"
     y2="75.25"
     id="line384" />
  <text
     class="cls-23"
     transform="translate(695.2 534.4)"
     text-anchor="middle"
     id="text388">out of</text>
  <g
     id="g456"
     transform="matrix(0.79513789,0,0,0.79513789,8.8316057,37.567614)">
    <path
       d="m 126.88,174.81 c 0,2.79 0.24,3.68 2.69,3.68 h 1.24 c 2.43,0 2.69,-0.9 2.69,-3.68 v -8.72 h 4.93 v 9.55 c 0,5.99 -1.42,7.71 -6.94,7.71 h -2.85 c -5.46,0 -6.94,-1.72 -6.94,-7.71 v -26.69 c 0,-5.99 1.48,-7.71 6.94,-7.71 h 2.85 c 5.52,0 6.94,1.72 6.94,7.71 v 7.77 h -4.93 v -6.94 c 0,-2.79 -0.24,-3.68 -2.69,-3.68 h -1.28 c -2.43,0 -2.69,0.9 -2.69,3.68 z"
       id="path390" />
    <path
       d="m 141.53,141.53 h 5.22 v 41.52 h -5.22 z"
       id="path392" />
    <path
       d="m 153.65,183.05 v -36.66 h -4.57 v -4.86 h 14.3 v 4.86 h -4.51 v 36.66 z"
       id="path394" />
    <path
       d="m 171.34,183.05 v -14 l -6.52,-27.52 h 5.28 l 2.19,9.78 c 0.88,3.76 1.53,7.56 1.96,11.39 0.46,-3.83 1.11,-7.63 1.96,-11.39 l 2.19,-9.78 h 4.63 l -6.47,27.52 v 14 z"
       id="path396" />
    <path
       d="m 210.78,175.76 c -0.06,2.46 0.24,4.92 0.9,7.29 h -5.46 c -0.6,-1.34 -0.65,-3.86 -0.65,-6.46 v -7.95 c 0,-2.84 -0.47,-4.15 -3.09,-4.15 h -3.5 v 18.57 h -5.22 v -41.52 h 10.08 c 5.52,0 6.94,1.72 6.94,7.71 v 5.63 c 0,4.33 -0.77,6.41 -3.32,7.16 2.55,0.83 3.32,2.91 3.32,7.29 v 6.42 z m -5.22,-25.68 c 0,-2.79 -0.18,-3.68 -2.69,-3.68 h -3.91 v 13.23 h 3.91 c 2.43,0 2.69,-0.9 2.69,-3.68 z"
       id="path398" />
    <path
       d="m 225.98,176.71 h -6.72 l -0.9,6.35 h -4.64 l 5.64,-41.52 h 7.16 l 5.56,41.52 h -5.21 z m -6.05,-4.86 h 5.4 l -0.65,-5.04 c -1.07,-8.31 -1.66,-15.36 -2.08,-20.94 -0.42,5.57 -0.95,12.63 -2.02,20.94 z"
       id="path400" />
    <path
       d="m 235.8,183.05 v -36.66 h -4.57 v -4.86 h 14.28 v 4.86 h -4.48 v 36.66 z"
       id="path402" />
    <path
       d="m 247.89,141.53 h 5.23 v 41.52 h -5.23 z"
       id="path404" />
    <path
       d="m 262.13,159.04 c -0.59,-2.61 -0.95,-5.04 -1.3,-7.48 0.06,2.44 0.12,4.87 0.12,7.61 v 23.9 h -4.5 v -41.54 h 6.58 l 4.93,22.18 c 0.59,2.61 1.01,5.04 1.34,7.47 -0.06,-2.43 -0.24,-4.86 -0.24,-7.53 v -22.13 h 4.57 v 41.52 h -5.91 l -5.58,-24.01 z"
       id="path406" />
    <path
       d="m 285.37,160.04 h 8.19 v 15.6 c 0,5.99 -1.42,7.71 -6.94,7.71 h -2.84 c -5.46,0 -6.94,-1.72 -6.94,-7.71 v -26.69 c 0,-5.99 1.48,-7.71 6.94,-7.71 h 2.84 c 5.52,0 6.94,1.72 6.94,7.71 v 7.06 h -4.93 v -6.23 c 0,-2.79 -0.24,-3.68 -2.69,-3.68 h -1.25 c -2.43,0 -2.69,0.9 -2.69,3.68 v 25.03 c 0,2.79 0.24,3.68 2.69,3.68 h 1.25 c 2.43,0 2.69,-0.9 2.69,-3.68 v -9.91 h -3.26 z"
       id="path408" />
    <path
       d="m 307.49,171.9 c 0,-3.73 -0.9,-4.86 -5.04,-8.6 -4.8,-4.33 -6.05,-6.17 -6.05,-11.64 v -2.71 c 0,-5.99 1.42,-7.71 6.94,-7.71 h 2.43 c 5.52,0 6.94,1.72 6.94,7.71 v 6.47 h -4.93 v -5.64 c 0,-2.79 -0.18,-3.68 -2.69,-3.68 h -0.9 c -2.43,0 -2.69,0.9 -2.69,3.58 v 1.96 c 0,3.73 0.9,4.93 5.04,8.66 4.8,4.33 6.11,6.11 6.11,11.57 v 3.8 c 0,5.99 -1.48,7.71 -6.94,7.71 h -2.45 c -5.46,0 -6.88,-1.72 -6.88,-7.71 V 168 h 4.86 v 6.82 c 0,2.79 0.18,3.68 2.69,3.68 h 0.9 c 2.43,0 2.69,-0.9 2.69,-3.68 l -0.03,-2.91 z"
       id="path410" />
    <path
       class="cls-65"
       d="m 43.11,163.94 v 13.38 c 0,3.08 2.49,5.58 5.57,5.58 h 54.8 c 3.08,0 5.58,-2.5 5.58,-5.58 v 0 -13.38 z m 45.08,7.92 c -6.79,6.4 -17.39,6.4 -24.18,0 l -0.17,-0.15 1.92,-1.92 0.16,0.15 c 5.73,5.36 14.63,5.36 20.36,0 l 0.16,-0.15 1.94,1.93 -0.17,0.13 z"
       id="path412" />
    <path
       class="cls-51"
       d="m 103.49,113.81 h -54.8 c -3.08,0 -5.58,2.5 -5.58,5.58 0,0 0,0 0,0 v 41.77 h 13.88 c -5,-2.23 -7.25,-8.1 -5.02,-13.11 2.23,-5 8.1,-7.25 13.11,-5.02 0.18,0.08 0.35,0.16 0.52,0.25 l 2.92,-4.71 -0.9,-2.69 c -0.65,-0.14 -1.03,0 -2.05,-0.14 -1.02,-0.14 -1.15,-0.45 -0.94,-1 0.21,-0.55 1.34,-0.31 2.35,-0.21 1.01,0.1 2.92,-0.28 3.82,-0.31 0.74,-0.01 1.41,0.45 1.67,1.15 -0.45,0.06 -0.89,0.1 -1.34,0.1 -0.5,-0.04 -1.01,0.05 -1.46,0.27 -0.17,0.06 -0.35,0.11 -0.52,0.15 l 0.67,2.02 h 15.24 l -1.43,-3.93 h 5.33 c 1.45,0 2.62,1.2 2.62,2.65 0,1.45 -1.2,2.62 -2.65,2.62 h -0.18 v -1.4 h 0.17 c 0.68,0 1.24,-0.54 1.25,-1.22 0,-0.68 -0.54,-1.24 -1.22,-1.25 h -3.3 l 2.58,7.12 c 0.86,-0.24 1.76,-0.36 2.66,-0.36 5.48,0 9.93,4.44 9.93,9.92 0,3.94 -2.33,7.51 -5.93,9.09 h 14.18 v -41.77 c 0,-3.08 -2.49,-5.58 -5.57,-5.58 z"
       id="path414" />
    <path
       class="cls-51"
       d="m 80.98,152.09 c 0,-3.94 2.32,-7.5 5.92,-9.09 l -1,-2.73 -11.38,12.05 c -0.31,0.32 -0.73,0.5 -1.17,0.5 h -2.47 c -0.27,3.67 -2.54,6.89 -5.91,8.36 h 21.94 c -3.61,-1.58 -5.94,-5.16 -5.93,-9.1 z"
       id="path416" />
    <path
       class="cls-51"
       d="m 65.73,145.8 -3.46,5.57 h 6.56 c -0.16,-1.84 -0.97,-3.56 -2.27,-4.86 -0.26,-0.26 -0.53,-0.49 -0.83,-0.7 z"
       id="path418" />
    <path
       class="cls-51"
       d="m 66.82,144.05 c 2.36,1.72 3.85,4.4 4.06,7.32 h 1.86 l -3.63,-11.01 z"
       id="path420" />
    <path
       class="cls-51"
       d="m 55.41,146.5 c -3.08,3.08 -3.08,8.07 0,11.15 3.08,3.08 8.07,3.08 11.15,0 1.31,-1.31 2.11,-3.03 2.28,-4.88 h -6.56 c -0.39,0.75 -1.31,1.05 -2.07,0.66 -0.75,-0.39 -1.05,-1.31 -0.66,-2.07 0.27,-0.52 0.8,-0.84 1.39,-0.83 h 0.17 l 3.41,-5.49 c -1.1,-0.55 -2.31,-0.84 -3.53,-0.84 -2.09,0 -4.1,0.82 -5.57,2.3 z"
       id="path422" />
    <path
       class="cls-51"
       d="m 98.79,152.09 c 0,-4.36 -3.53,-7.89 -7.89,-7.89 -0.66,0 -1.31,0.08 -1.95,0.25 l 2.24,6.13 c 0.84,0.13 1.4,0.92 1.27,1.75 -0.13,0.84 -0.92,1.4 -1.75,1.27 -0.84,-0.13 -1.4,-0.92 -1.27,-1.75 0.05,-0.31 0.19,-0.6 0.41,-0.82 l -2.24,-6.11 c -0.85,0.39 -1.62,0.93 -2.27,1.59 -3.08,3.08 -3.09,8.07 -0.01,11.15 3.08,3.08 8.07,3.09 11.15,0.01 1.48,-1.48 2.32,-3.49 2.32,-5.58 v 0 z"
       id="path424" />
    <polygon
       class="cls-51"
       points="84.77,139.37 70.29,139.37 74.07,150.82 74.07,150.83 "
       id="polygon426" />
    <path
       class="cls-78"
       d="m 130.8,132 c -0.76,0.69 -1.76,1.06 -2.79,1.03 -1.05,0.07 -2.07,-0.35 -2.77,-1.14 v 5.2 h -2.87 v -15.67 h 2.77 v 1.07 c 0.71,-0.83 1.77,-1.27 2.86,-1.2 1.03,-0.03 2.03,0.34 2.79,1.03 1.14,1.14 1.16,3.1 1.16,4.81 0,1.71 -0.02,3.69 -1.16,4.84 m -3.63,-8.11 c -1.72,0 -1.93,1.41 -1.93,3.28 0,1.87 0.22,3.3 1.93,3.3 1.71,0 1.93,-1.42 1.93,-3.3 0,-1.88 -0.22,-3.28 -1.93,-3.28"
       id="path428" />
    <path
       class="cls-78"
       d="m 136.13,128.07 c 0,1.47 0.9,2.55 2.5,2.55 0.99,0.06 1.94,-0.33 2.59,-1.08 l 1.74,1.69 c -1.1,1.23 -2.7,1.89 -4.35,1.79 -2.69,0 -5.3,-1.23 -5.3,-5.87 0,-3.74 2.02,-5.85 5,-5.85 3.19,0 4.99,2.33 4.99,5.47 v 1.28 h -7.17 z m 4.09,-3.17 c -0.52,-1.06 -1.8,-1.49 -2.86,-0.97 -0.42,0.21 -0.76,0.55 -0.97,0.97 -0.17,0.39 -0.26,0.81 -0.26,1.23 h 4.35 c 0,-0.42 -0.1,-0.84 -0.26,-1.23"
       id="path430" />
    <path
       class="cls-78"
       d="m 153.44,131.63 c -2,1.87 -5.11,1.87 -7.11,0 -1.03,-1.08 -1.29,-2.38 -1.29,-4.48 0,-2.1 0.26,-3.37 1.29,-4.44 2,-1.88 5.11,-1.88 7.11,0 1.03,1.07 1.3,2.37 1.3,4.44 0,2.07 -0.27,3.39 -1.3,4.48 m -2.24,-7.24 c -0.36,-0.35 -0.84,-0.53 -1.34,-0.51 -0.49,-0.02 -0.97,0.16 -1.32,0.51 -0.57,0.61 -0.64,1.58 -0.64,2.77 0,1.19 0.07,2.2 0.66,2.79 0.35,0.35 0.83,0.53 1.32,0.51 0.5,0.03 0.99,-0.16 1.34,-0.51 0.59,-0.59 0.66,-1.6 0.66,-2.79 0,-1.19 -0.07,-2.18 -0.66,-2.77"
       id="path432" />
    <path
       class="cls-78"
       d="m 165.05,132 c -0.77,0.69 -1.76,1.06 -2.79,1.03 -1.05,0.07 -2.07,-0.35 -2.77,-1.14 v 5.2 h -2.86 v -15.67 h 2.77 v 1.07 c 0.71,-0.83 1.77,-1.27 2.86,-1.2 1.03,-0.03 2.03,0.34 2.79,1.03 1.14,1.14 1.16,3.1 1.16,4.81 0,1.71 -0.02,3.69 -1.16,4.84 m -3.63,-8.11 c -1.72,0 -1.93,1.41 -1.93,3.28 0,1.87 0.22,3.3 1.93,3.3 1.71,0 1.93,-1.42 1.93,-3.3 0,-1.88 -0.22,-3.28 -1.93,-3.28"
       id="path434" />
    <path
       class="cls-78"
       d="m 171.3,132.91 c -2.36,0 -3.34,-1.65 -3.34,-3.28 v -12.38 h 2.86 v 12.2 c 0,0.69 0.28,1.04 1.01,1.04 h 1.1 v 2.42 z"
       id="path436" />
    <path
       class="cls-78"
       d="m 176.58,128.07 c 0,1.47 0.9,2.55 2.5,2.55 0.99,0.06 1.95,-0.33 2.6,-1.08 l 1.74,1.69 c -1.1,1.23 -2.71,1.88 -4.35,1.79 -2.71,0 -5.3,-1.23 -5.3,-5.87 0,-3.74 2.02,-5.85 4.99,-5.85 3.19,0 4.99,2.33 4.99,5.47 v 1.28 h -7.17 z m 4.09,-3.17 c -0.53,-1.06 -1.81,-1.49 -2.86,-0.96 -0.42,0.21 -0.75,0.54 -0.96,0.96 -0.17,0.39 -0.26,0.81 -0.26,1.23 h 4.35 c 0,-0.42 -0.1,-0.84 -0.26,-1.23"
       id="path438" />
    <path
       class="cls-77"
       d="m 188.92,125.63 v 7.28 h -2.32 v -7.28 h -0.97 v -1.77 h 0.97 v -1.16 c -0.07,-1.4 1,-2.59 2.4,-2.67 0.1,0 0.21,0 0.31,0 h 1.32 V 122 h -0.9 c -0.55,0 -0.81,0.31 -0.81,0.85 v 1.02 h 1.72 v 1.77 h -1.74 z"
       id="path440" />
    <path
       class="cls-77"
       d="m 198.07,131.87 c -1.62,1.52 -4.15,1.52 -5.77,0 -0.84,-0.9 -1.06,-1.93 -1.06,-3.63 0,-1.7 0.21,-2.74 1.06,-3.61 1.62,-1.53 4.15,-1.53 5.77,0 0.84,0.87 1.06,1.93 1.06,3.61 0,1.68 -0.22,2.75 -1.06,3.63 m -1.79,-5.88 c -0.29,-0.28 -0.68,-0.43 -1.09,-0.41 -0.4,-0.02 -0.79,0.13 -1.07,0.41 -0.48,0.48 -0.54,1.29 -0.54,2.24 0,0.95 0.05,1.79 0.54,2.27 0.29,0.28 0.68,0.43 1.07,0.41 0.39,0.02 0.77,-0.12 1.06,-0.39 0.48,-0.48 0.54,-1.31 0.54,-2.27 0,-0.96 -0.05,-1.79 -0.54,-2.24"
       id="path442" />
    <path
       class="cls-77"
       d="m 205.73,126.13 c -0.31,-0.36 -0.76,-0.57 -1.24,-0.55 -0.71,0 -1.5,0.53 -1.5,1.72 v 5.62 h -2.32 v -9.32 h 2.27 v 0.9 c 0.6,-0.65 1.45,-1.02 2.34,-1 0.83,-0.04 1.63,0.29 2.2,0.9 l -1.75,1.75 z"
       id="path444" />
    <path
       class="cls-78"
       d="m 217.59,132 c -0.76,0.69 -1.76,1.06 -2.79,1.03 -1.09,0.07 -2.15,-0.38 -2.86,-1.21 v 1.07 h -2.77 v -15.67 h 2.86 v 5.23 c 0.7,-0.79 1.72,-1.21 2.77,-1.14 1.03,-0.03 2.03,0.34 2.79,1.03 1.15,1.14 1.16,3.1 1.16,4.81 0,1.71 0,3.69 -1.16,4.84 m -3.63,-8.11 c -1.72,0 -1.94,1.41 -1.94,3.28 0,1.87 0.22,3.3 1.94,3.3 1.72,0 1.93,-1.42 1.93,-3.3 0,-1.88 -0.22,-3.28 -1.93,-3.28"
       id="path446" />
    <path
       class="cls-78"
       d="m 221.41,117.16 h 2.93 v 2.33 h -2.93 z m 0.04,4.29 h 2.86 v 11.46 h -2.86 z"
       id="path448" />
    <polygon
       class="cls-78"
       points="231.55,128.13 230.35,129.5 230.35,132.91 227.48,132.91 227.48,117.25 230.35,117.25 230.35,126.13 234.15,121.45 237.6,121.45 233.51,126.07 237.9,132.91 234.37,132.91 "
       id="polygon450" />
    <path
       class="cls-78"
       d="m 241.5,128.07 c 0,1.47 0.9,2.55 2.51,2.55 0.98,0.06 1.94,-0.34 2.59,-1.08 l 1.74,1.69 c -1.11,1.23 -2.71,1.89 -4.36,1.79 -2.69,0 -5.3,-1.23 -5.3,-5.87 0,-3.74 2.02,-5.85 5,-5.85 3.19,0 4.99,2.33 4.99,5.47 v 1.28 h -7.17 z m 4.09,-3.17 c -0.52,-1.06 -1.8,-1.49 -2.86,-0.97 -0.42,0.21 -0.76,0.55 -0.97,0.97 -0.17,0.39 -0.26,0.81 -0.26,1.23 h 4.35 c 0,-0.42 -0.1,-0.84 -0.26,-1.23"
       id="path452" />
    <path
       class="cls-78"
       d="m 255.22,133.04 c -1.79,0 -3.43,-0.2 -4.88,-1.65 l 1.89,-1.87 c 0.83,0.76 1.93,1.15 3.05,1.08 0.99,0 2.02,-0.33 2.02,-1.19 0,-0.57 -0.31,-0.97 -1.21,-1.06 l -1.79,-0.17 c -2.06,-0.2 -3.34,-1.1 -3.34,-3.21 0,-2.38 2.1,-3.65 4.42,-3.65 1.79,0 3.28,0.31 4.37,1.34 l -1.76,1.79 c -0.66,-0.6 -1.67,-0.77 -2.66,-0.77 -1.14,0 -1.63,0.53 -1.63,1.1 0,0.42 0.17,0.9 1.19,0.99 l 1.79,0.18 c 2.27,0.22 3.41,1.43 3.41,3.36 0,2.53 -2.15,3.74 -4.86,3.74"
       id="path454" />
  </g>
</svg>

About this issue

  • Original URL
  • State: closed
  • Created 5 months ago
  • Comments: 21 (19 by maintainers)

Commits related to this issue

Most upvoted comments

They are simply unimplemented. A very rare edge-case. You can try adding them to simplecss. There are a couple things we do not support: https://github.com/RazrFalcon/simplecss?tab=readme-ov-file#limitations

Got it. I do not plan working on resvg anytime soon, sadly…

font-family parser should be rewritten anyway and then it will have proper testing.