我正在使用 tufte-book 类。当使用 babel 包在标题中引用 \ref 时,我收到两个错误:
“\@iiminipage 的参数有一个多余的 }。”和“段落在 \@iiminipage 完成之前就结束了。”
使用 \autoref 而不是 \ref 或者停用 babel 时不会发生该错误。
代码示例:
\documentclass[a4paper,twoside,justified,symmetric,notoc]{tufte-book}
\usepackage[utf8]{inputenc}
\usepackage[ngerman,english]{babel}
\usepackage{graphicx}
\begin{document}
\begin{marginfigure}
\includegraphics{fig1}
\caption{xxx}
\label{fig:one}
\end{marginfigure}
\begin{figure*}[t]
\includegraphics{fig2}
\caption{Figure \ref{fig:one}...}
\label{fig:two}
\end{figure*}
\end{document}
我该如何解决这个问题?
答案1
问题似乎在于对\ifthenelse
made by的重新定义babel
以及与之交互,导致其(错误地)在其他用户包之前tufte-common.def
加载。hyperref
显然,\protect\ref
在参数中使用\caption
(尽管理论上没有必要)可以解决这个问题。
\begin{figure}[t]
\includegraphics{fig2}
\caption{Figure \protect\ref{fig:one}...}
\label{fig:two}
\end{figure}