2

I'm not sure exactly how to frame this question as I'm myself not sure what the problem is, but essentially I'm trying to draw paths using the svg.path TikZ library. When I select Ukrainian with polyglossia, it works fine. However, when I select Russian, it gives me an error.

MWE:

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}
\newfontfamily\cyrillicfont{CMU Serif}[Script=Cyrillic]

\usepackage{tikz}
\usetikzlibrary{svg.path}

% Change this to "russian" for the error
\setmainlanguage{ukrainian}

\begin{document}

\begin{tikzpicture}
  \draw svg "M 55.082,20.537 C 58.777,25.523 60.966,31.694 60.966,38.377 C 60.966,44.998 58.815,51.115 55.178,56.076";
\end{tikzpicture}

\end{document}

Error:

Package pgf Error: Unexpected character 'macro:->\active@prefix
"\normal@char" ' in parser 'svgpath' in state 'initial'.

See the pgf package documentation for explanation.
Type  H <return>  for immediate help.
 ...                                              
4
  • 2
    Russian makes " active, so \draw svg "..."; does not work. But \draw svg {...}; does work. Tested with TL17 and lualatex. (I did not knwo you could use \draw svg "..."; I've always used the {...}; syntax.
    – daleif
    Jul 5 '17 at 13:25
  • You're right. This happens with German as well. You can make this an answer! Jul 5 '17 at 13:26
  • Maybe add \usetikzlibrary{babel} after \usepackage{tikz}. Might also have to delete the .aux file and recompile. Jul 5 '17 at 13:26
  • @MarkWibrow that also does work! Jul 5 '17 at 13:28
2

Russian babel/polyglossia makes " active.

Either use

\draw svg {...};

Or as Mark Wibrow mentions in a comment, try

\usetikzlibrary{babel} 

after loading tikz

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.