# How define a fallback key with pgfkeys

I'm using pgfkeys to define some key-value options. I need some default value to initialize a key and I also want to use this default value as a fallback indepentent from the passed key value pair.

What I've tried is to create somekind of a child key. But I don't know how to use this to initialize the actual key with it.

In the MWE at the workaround I would like to use the original initialized value for titlepage. What is the best way to achieve this?

\begin{filecontents}{\jobname.def}
Test file content
\end{filecontents}

\documentclass{article}
\usepackage{pgfkeys}

\pgfkeys{
test/.cd,
titlepage/.store in = \@file@titlepage,
titlepage/.default = \jobname.def,%<-- Set default value
titlepage = \jobname.def, % <-- initial titlepage
}
\newcommand{\testtitlepage}{%
\InputIfFileExists{\@file@titlepage}
{Found titlepage: \@file@titlepage\par} % <-- only for testing}
{Workaround: \pgfkeysvalueof{test/titlepage}}%<-- Try to use default value of titlepage
}
\begin{document}
\pgfkeys{test/titlepage = test.def}% <-- Set non-existing file to activate workaround
\testtitlepage
\end{document}


Edit: I updated my MWE to use .default. But I'm still unable to use this default key inside \testtitlepage, when the passed file don't exist.

• Isn't this what the pgfkeys modifiers .default or .initial are meant for? – user31729 Sep 18 '17 at 12:45
• Thanks for the advice. I updated my question using the .default modifier. But I still don't know how to get this default value inside my macro testtitlepage, when the passed file don't exist. – faltfe Sep 18 '17 at 14:21

I guess you are looking for this here:

\begin{filecontents}{\jobname.def}
Test file content
\end{filecontents}

\documentclass{article}
\usepackage{pgfkeys}

\makeatletter
\pgfkeys{
test/.cd,
titlepage/.store in = \@file@titlepage,
titlepage/.default = \jobname.def,%<-- Set default value
titlepage = \jobname.def, % <-- initial titlepage
}

\newcommand{\testtitlepage}{%
\InputIfFileExists{\@file@titlepage}
{Found titlepage: \@file@titlepage\par} % <-- only for testing}
{Workaround: \pgfkeysvalueof{/test/titlepage/.@def}}%<-- Try to use default value of titlepage
}
\begin{document}
\testtitlepage

\pgfkeys{/test/titlepage = notexisting.def}% <-- Set non-existing file to activate workaround
\testtitlepage
\end{document}


• Thanks, this is working nicely. Do the subkey .@def hold the value of the .default modifier? I couldn't find something within the pgf manual. – faltfe Sep 19 '17 at 11:06