# Package xkeyval Error when using menukeys and csquotes

I have the following minimum “working” example:

\documentclass[11pt, a4paper, ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{menukeys} % switch with csquotes to fix
\usepackage[autostyle=true,german=guillemets]{csquotes}

\title{Test}
\author{Nomen nescio}

\begin{document}
\maketitle

\enquote{Hello World}

\keys{\enterwin}
\end{document}


When I pdflatex the file I get the error Package xkeyval Error: no value specified for key german. If you remove german=guillemets, everything works fine but I don't get the desired output.

The solution is to switch the usepackages for menukeys and csquotes:

\documentclass[11pt, a4paper, ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[autostyle=true,german=guillemets]{csquotes}

\title{Test}
\author{Nomen nescio}

\begin{document}
\maketitle

\enquote{Hello World}

\keys{\enterwin}
\end{document}


My question is simple: What exactly is the error and why is switching the usepackages a solution?

• As a German I should say that the guillemets are rather unusual ;-) And switching the load order is sometimes necessary since some packages do redefinitions or provide definitions other packages rely on – user31729 Jan 16 '17 at 15:44
• As a German I agree. The original code was german=quotes, but I changed it to guillemets to have a clearer distinction between the output with or without the option in my minimum working example. I am asking to avoid similar errors with the same reason in the future. Thanks for the general advice though. – Bambino Jan 16 '17 at 15:49
• Unfortunately, menukeys loads catoptions, which breaks the key setting for csquotes – egreg Jan 16 '17 at 16:35
• @egreg: it would a good idea to avoid this package -- it breaks so often things by trying to be to clever. – Ulrike Fischer Jan 16 '17 at 16:40
• @UlrikeFischer I fully agree – egreg Jan 16 '17 at 16:41