Wie kann ich spezielle PDFs an dvisvgm übergeben?

Wie kann ich spezielle PDFs an dvisvgm übergeben?

Aus der dvisvgm-Dokumentation:

SUPPORTED SPECIALS
       dvisvgm supports several special commands that enrich the DVI command set with additional
       instructions for features, like color, graphics, and hyperlinks. The term special command,
       or just special, originates from the TeX command \special{...} which does almost nothing.

[...]

       dvisvgm
           dvisvgm offers its own small set of specials. The following list gives a brief
           overview.

           dvisvgm:raw text
               Adds an arbitrary sequence of XML nodes to the page section of the SVG document.
               dvisvgm checks syntax and proper nesting of the inserted elements but does not
               perform any validation, thus the user has to ensure that the resulting SVG is
               still valid. Opening and closing tags may be distributed among different raw
               specials. The tags themselves can also be split but must be continued with the
               immediately following raw special. Both syntactically incorrect and wrongly nested
               tags lead to error messages. Parameter text may also contain the expressions {?x},
               {?y}, {?color}, and {?matrix} that expand to the current x or y coordinate, the
               current color, and current transformation matrix, respectively. Character sequence
               {?nl} expands to a newline character. Finally, constructions of the form {?(expr)}
               enable the evaluation of mathematical expressions which may consist of basic
               arithmetic operations including modulo. Like above, the variables x and y
               represent the current coordinates. Example: {?(-10*(x+2y)-5)}.

Wenn ich die folgende TeX-Datei in DVI kompiliere, verwende ich dvisvgm, um sie in SVG zu konvertieren:

\pdfoutput=0
\pdfcompresslevel=0
\pdfobjcompresslevel=0
\documentclass{article}
\usepackage[active, tightpage]{preview}
\usepackage{tikz}
\pagenumbering{gobble}
\begin{document}
\begin{preview}
\special{dvisvgm:raw <g id='abc'>}
\begin{tikzpicture}
\draw (0,0) circle (1);
\end{tikzpicture}
\special{dvisvgm:raw </g>}
\end{preview}
\end{document}

dvisvgm --output=main.svg main.dvi

Die SVG-Ausgabe lautet dann:

<?xml version='1.0' encoding='UTF-8'?>
<!-- This file was generated by dvisvgm 3.1.2 -->
<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='57.0899pt' height='57.0899pt' viewBox='-.00005 -57.08985 57.0899 57.0899'>
<g id='page1'>
<g id='abc'>
<path d='M56.8906-28.546875C56.8906-44.2031 44.2031-56.8906 28.546875-56.8906C12.8906-56.8906 .1992-44.2031 .1992-28.546875C.1992-12.8906 12.8906-.1992 28.546875-.1992C44.2031-.1992 56.8906-12.8906 56.8906-28.546875Z' stroke='#000' fill='none' stroke-width='.3985'/>
</g>
</g>
</svg>

Wichtig ist, dass die genannten Gruppen abcin der Ausgabe enthalten sind.

Jetzt versuche ich, dasselbe zu tun, aber über PDF zu leiten:

\pdfoutput=1
\pdfcompresslevel=0
\pdfobjcompresslevel=0
\documentclass{article}
\usepackage[active, tightpage]{preview}
\usepackage{tikz}
\pagenumbering{gobble}
\begin{document}
\begin{preview}
\special{pdf:dvisvgm:raw <g id='abc'>}
\begin{tikzpicture}
\draw (0,0) circle (1);
\end{tikzpicture}
\special{pdf:dvisvgm:raw </g>}
\end{preview}
\end{document}

Die Specials sind wie erwartet im PDF enthalten:

%PDF-1.5
%ÐÔÅØ
6 0 obj
<<
/Length 392       
>>
stream
1 0 0 1 0.5 57.591 cm
dvisvgm:raw <g id='abc'>
1 0 0 1 28.546 -28.545 cm
q 
0 G 
0 g 
0.3985 w 
q 
0.0 0.0 m 

Anschließend konvertiere ich das SVG in PDF:

dvisvgm --pdf --output=main.svg main.pdf

aber das SVG enthält nicht die gewünschten Tags.

Frage:Ist es möglich, eine TeX → PDF → SVG-Kompilierung durchzuführen und im TeX-Quellcode ein reines SVG-Tag anzugeben, das in die endgültige SVG-Datei eingefügt werden soll?(genau wie ich es bei der TeX → DVI → SVG-Kompilierung gemacht habe)?

verwandte Informationen