使用 pdfLaTeX 编译时出现 xkeyval 错误

使用 pdfLaTeX 编译时出现 xkeyval 错误

问题

我正在使用tabularx它来构建图形,当我编译文档时出现以下错误:

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

最小工作示例(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}

答案1

简短答案

使用选项加载adjustbox之前menukeysexport

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

完整答案

adjustbox需要命令export才能执行\includegraphic其命令。这在文档第 2 节包选项中进行了解释

Adjustbox 文档第 2 部分

出口 – 将大多数键导出\adjustbox\includegraphics,以便它们也可以与此宏一起使用。

但是,像 一样在此处添加它\usepackage[export]{adjustbox}会导致错误:“包 adjustbox 的选项冲突”。

这意味着adjustbox可能已加载两次。LaTeX 实际上并没有给出很多有关包加载位置的指示,因此为了解决这个问题,我们创建并平均能量损失。这意味着我们先删除(注释掉)其他包,比如其中一半,然后排版,看看错误是否消失。经过几次尝试,我们发现删除包时menykeys不再出现错误。在的实现中menukeys,我们可以看到它使用加载包\requirepackage{adjustbox}。我们可以通过adjustbox在加载之前加载其选项来解决这个menukeys问题。这也可以通过将选项传递给有问题的包来解决,但目前没有理由深入研究这一点。

代码

\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}

相关内容