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
beforemenukeys
with the optionexport
Full Answer
adjustbox
needs the commandexport
to be able to make\includegraphic
take its commands. This is explained in the documentation, section 2, package optionsHowever, 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 packagemenykeys
, there is no longer an error. In the implementation ofmenukeys
, we can see that it loads the package using\requirepackage{adjustbox}
. We can solve this by loadingadjustbox
with its options before we loadmenukeys
. 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