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