[Tex/LaTex] xkeyval error when compiling with pdfLaTeX

errorspdftextabularxxkeyval

Problem

I'm using tabularx to structure a figure and when I compile the document I get the following error:

Package xkeyval Error: `valign' undefined in families `Gin'.

Minimal Working Example (MWE)

\documentclass[11pt,twoside,a4paper]{article}

\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[swedish]{babel}
\usepackage{listings}
\usepackage{booktabs}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{ragged2e}
\usepackage{fancyvrb}
\usepackage{xcolor}
\usepackage{menukeys}
\usepackage{graphicx}
\usepackage{everypage}
\usepackage{nameref}
\usepackage{afterpage}
\usepackage{placeins}
\usepackage{textcomp}
\usepackage{tikz}
\usepackage{makecell}
\usepackage{xparse}
\usepackage{adjustbox}
\usepackage{upquote}
\usepackage{fontawesome}
\usepackage{tabularx}

\begin{document}

\begin{figure}[tbh]
  \begin{tabularx}{\textwidth}{cX}
  \vspace{3mm}
  \includegraphics[width=.5in, valign=c]{figure8_1_server.eps} & Text.\\
  \vspace{2mm}
  \includegraphics[width=.25in, valign=c]{figure8_1_arrow.eps} & \\
  \vspace{3mm}
  \includegraphics[width=.5in, valign=c]{figure8_1_database.eps} & Text. \\
  \vspace{1mm}
   \includegraphics[width=.25in, valign=c]{figure8_1_arrow.eps} & \\
   \vspace{2mm}
   \includegraphics[width=.5in, valign=c]{figure8_1_table.eps} & Text.\\
   \vspace{0mm}
   \includegraphics[width=.25in, valign=c]{figure8_1_arrow.eps} & \\
   \vspace{2mm}
   \includegraphics[width=.5in, valign=c]{figure8_1_row.eps} & Text.\\
   \vspace{1mm}
   \includegraphics[width=.25in, valign=c]{figure8_1_arrow.eps} & \\
   \vspace{3mm}
   \includegraphics[width=.5in, valign=c]{figure8_1_cell.eps} & Text.
  \end{tabularx}
  \caption{Text.}
  \label{fig:database}
\end{figure}

\end{document}

Best Answer

Short Answer

load adjustbox before menukeys with the option export

\usepackage[export]{adjustbox}
\usepackage{menukeys}

Full Answer

adjustbox needs the command export to be able to make \includegraphic take its commands. This is explained in the documentation, section 2, package options

Adjustbox Documentation Section 2

export – Exports most keys of \adjustbox to \includegraphics so that they can be used with this macro as well.

However, adding it here like \usepackage[export]{adjustbox}, causes an error: "Option clash for package adjustbox."

This means that adjustbox has likely been loaded twice. LaTeX really doesn't give many indications of where the package was loaded, so to solve this, we create and MWE. That means that we remove(comment out) other packages, like half of them first, typeset and see if the error dissapears. After a few tries, we find that when removing the package menykeys, there is no longer an error. In the implementation of menukeys, we can see that it loads the package using \requirepackage{adjustbox}. We can solve this by loading adjustbox with its options before we load menukeys. This could also have been solved by passing options to the package in question, but no reason for going into that at the present time.

Code

\documentclass[11pt,twoside,a4paper]{article}

\usepackage{lipsum}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[swedish]{babel}
\usepackage{listings}
\usepackage{booktabs}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{ragged2e}
\usepackage{fancyvrb}
\usepackage{xcolor}
\usepackage{graphicx}
\usepackage{everypage}
\usepackage{nameref}
\usepackage{afterpage}
\usepackage{placeins}
\usepackage{textcomp}
\usepackage{tikz}
\usepackage{makecell}
\usepackage{xparse}
\usepackage[export]{adjustbox}
\usepackage{menukeys}
\usepackage{upquote}
\usepackage{fontawesome}
\usepackage{tabularx}

\begin{document}

\begin{figure}[tbh]
    \centering
  \begin{tabularx}{\textwidth}{cX}
  \vspace{3mm}
  \includegraphics[width=.5in, valign=c]{example-image-a} & Text.\\
  \vspace{2mm}
  \includegraphics[width=.25in, valign=c]{example-image-a} & \\
  \vspace{3mm}
  \includegraphics[width=.5in, valign=c]{example-image-a} & Text. \\
  \vspace{1mm}
   \includegraphics[width=.25in, valign=c]{example-image-a} & \\
   \vspace{2mm}
   \includegraphics[width=.5in, valign=c]{example-image-a} & Text.\\
   \vspace{0mm}
   \includegraphics[width=.25in, valign=c]{example-image-a} & \\
   \vspace{2mm}
   \includegraphics[width=.5in, valign=c]{example-image-a} & Text.\\
   \vspace{1mm}
   \includegraphics[width=.25in, valign=c]{example-image-a} & \\
   \vspace{3mm}
   \includegraphics[width=.5in, valign=c]{example-image-a} & Text.
  \end{tabularx}
  \caption{Text.}
  \label{fig:database}
\end{figure}

\end{document}