Babel, active chars, ifthenelse and tikz

The problem is that when the tikzpicture is in the argument to another command, the category codes are frozen and the trick used by the babel library no more works.

The (admittedly not so nice) workaround is to disable the quoting feature of babel-spanish, that is not so important now that csquotes can do the same service in a cleaner way.

\documentclass[]{article}
\usepackage[spanish,es-noquoting]{babel}
\usepackage{tikz}
\usepackage{ifthen}

\usetikzlibrary{babel} % this works most of the time, but not in
                       % an \ifthenelse 
\newboolean{solution} \setboolean{solution}{true} 

\begin{document}

\ifthenelse{\boolean{solution}}{%
    \begin{tikzpicture}[]
        \draw [thin, ->] (-1,0)  -- (0,0);
    \end{tikzpicture}%
 }% end \ifthenelse{\boolean{solution}}{
{%
% not solution here 
}

\end{document}

This problem is not limited to \ifthenelse; if I define

\newcommand{\foo}[1]{#1}

and call

\foo{\begin{tikzpicture}\draw [thin, ->] (-1,0)  -- (0,0);\end{tikzpicture}}

the error is the same.


The problem seems to be specific to babel-spanish. If I try the same code with babel-czech, which makes - into a shorthand, the code works.


I don't know exactly what is happening but ifthen is interfering here. If I replace with a simple if-macro it works without any problems

\documentclass[]{article}
\usepackage[spanish]{babel}
\usepackage{tikz}

\usetikzlibrary{babel} % this works most of the time, but not in
                       % an \ifthenelse 
\newif\ifboolsolution
\boolsolutiontrue

\begin{document}

\ifboolsolution%
    \begin{tikzpicture}[]
        \draw [thin, ->] (-1,0)  -- (0,0);
    \end{tikzpicture}
\else%
%
\fi%
\end{document}

with the package list

 *File List*
 article.cls    2014/09/29 v1.4h Standard LaTeX document class
  size10.clo    2014/09/29 v1.4h Standard LaTeX file (size option)
   babel.sty    2016/02/24 3.9q The Babel package
 spanish.ldf
    tikz.sty    2015/08/07 v3.0.1a (rcs-revision 1.151)
     pgf.sty    2015/08/07 v3.0.1a (rcs-revision 1.15)
  pgfrcs.sty    2015/08/07 v3.0.1a (rcs-revision 1.31)
everyshi.sty    2001/05/15 v3.00 EveryShipout Package (MS)
  pgfrcs.code.tex
 pgfcore.sty    2010/04/11 v3.0.1a (rcs-revision 1.7)
graphicx.sty    2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
  keyval.sty    2014/10/28 v1.15 key=value parser (DPC)
graphics.sty    2016/01/03 v1.0q Standard LaTeX Graphics (DPC,SPQR)
    trig.sty    2016/01/03 v1.10 sin cos tan (DPC)
graphics.cfg    2010/04/23 v1.9 graphics configuration of TeX Live
  pdftex.def    2011/05/27 v0.06d Graphics/color for pdfTeX
infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
 ltxcmds.sty    2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
  pgfsys.sty    2014/07/09 v3.0.1a (rcs-revision 1.48)
  pgfsys.code.tex
pgfsyssoftpath.code.tex    2013/09/09  (rcs-revision 1.9)
pgfsysprotocol.code.tex    2006/10/16  (rcs-revision 1.4)
  xcolor.sty    2007/01/21 v2.11 LaTeX color extensions (UK)
   color.cfg    2007/01/18 v1.5 color configuration of teTeX/TeXLive
 pgfcore.code.tex
pgfcomp-version-0-65.sty    2007/07/03 v3.0.1a (rcs-revision 1.7)
pgfcomp-version-1-18.sty    2007/07/23 v3.0.1a (rcs-revision 1.1)
  pgffor.sty    2013/12/13 v3.0.1a (rcs-revision 1.25)
 pgfkeys.sty    
 pgfkeys.code.tex
 pgfmath.sty    
 pgfmath.code.tex
  pgffor.code.tex
    tikz.code.tex
supp-pdf.mkii
pdftexcmds.sty    2011/11/29 v0.20 Utility functions of pdfTeX for LuaTeX (HO)
ifluatex.sty    2010/03/01 v1.3 Provides the ifluatex switch (HO)
   ifpdf.sty    2011/01/30 v2.3 Provides the ifpdf switch (HO)
epstopdf-base.sty    2010/02/09 v2.5 Base part for package epstopdf
  grfext.sty    2010/08/19 v1.1 Manage graphics extensions (HO)
kvdefinekeys.sty    2011/04/07 v1.3 Define keys (HO)
kvoptions.sty    2011/06/30 v3.11 Key value format for package options (HO)
kvsetkeys.sty    2012/04/25 v1.16 Key value parser (HO)
etexcmds.sty    2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
epstopdf-sys.cfg    2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Live

Tags:

Tikz Pgf

Babel