1

I'm using tcolorbox and using pgfkeys to set some of the tikz options. But they do not seem to be working. Consider the MWE given below. If I set draw color using \pgfkeys{/tikz/.cd, fill=red, draw=green, color=blue} the color is not set and the overlay has black color, as if no color is set. Neither the \tikzset nor the \pgfkeys seems to be working. If I set color in \draw command, it is working. What's missing ?

\documentclass{book}
\usepackage{tcolorbox}
\usepackage{lipsum}
\usepackage{hyperref}

\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\tcbuselibrary{listings}

\begin{document}
\tikzset{fill=red, draw=brown}
\begin{tcolorbox}[enhanced,
  overlay={%
    \begin{tcbclipinterior}%
      \pgfkeys{/tikz/.cd, fill=red, draw=green, color=blue}
      \draw[line width=0.5cm] (interior.north west) -- (interior.south east);%
      \draw[line width=0.5cm] (interior.south west) -- (interior.north east);%
    \end{tcbclipinterior}%
}]
\lipsum[1]
\end{tcolorbox}

\end{document}
4
  • Do you want to do \tikzset{every path/.append style={fill=red, draw=green, color=blue}}? Are you aware that the color option overwrites any previous set fill and draw color and that a straight line will not have any area to fill? Aug 24, 2013 at 5:31
  • I'm aware color option overwrites previous set fill and draw color. What I was expecting is some color to show up instead of black. If I remove color=blue, draw color is still defined and I want to see the green color lines in the interior.
    – Surya
    Aug 24, 2013 at 5:39
  • Well, the options only apply to the current path and not to following paths (hence the every path style). Could you elaborate what you want to achieve? I don’t know the tcolorbox package but I assume that they are styles, settings or macros to change the visual outcome of the box. Aug 24, 2013 at 5:47
  • I'm trying to give user an option to set color and hence trying to set the color through pgfkeys. every path answered my question. Thx
    – Surya
    Aug 24, 2013 at 5:59

1 Answer 1

1

I'm not sure about the exact question, but I don't see any problem defining a style which can be later used inside overlay.

\documentclass{book}
\usepackage{tcolorbox}
\usepackage{lipsum}
\usepackage{hyperref}

\tcbuselibrary{breakable}
\tcbuselibrary{skins}
\tcbuselibrary{listings}

\begin{document}

\tikzset{mystyle/.style={fill=red, draw=brown}}

\begin{tcolorbox}[enhanced,
  overlay={%
    \begin{tcbclipinterior}%
%      \pgfkeys{/tikz/.cd, fill=red, draw=green, color=blue}
      \draw[mystyle,line width=0.5cm] (interior.north west) -- (interior.south east);%
      \draw[mystyle,line width=0.5cm] (interior.south west) -- (interior.north east);%
    \end{tcbclipinterior}%
}]
\lipsum[1]
\end{tcolorbox}

\end{document}

enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .