Sidenotes 包,无法解决 TeX 容量超出问题,抱歉

Sidenotes 包,无法解决 TeX 容量超出问题,抱歉

sidenotes 包运行得很好,但我找不到使用 figure* 环境的方法。当我尝试时:

 \documentclass{article}
 \usepackage{sidenotes}
 \usepackage{graphicx}
 \renewcommand{\footnote}{\sidenote}
 \renewcommand{\caption}{\sidecaption}


\begin{document}
\section{Title}\label{title}

Noice content. \sidenote{Sidenote}

\begin{figure*}
\centering
\includegraphics[]{fig.png}
\caption{Este é um sidecaption.}
\end{figure*}
\end{document}

我得到:

<fig.png, id=1, 2248.4pt x 1585.925pt> <use fig.png>
! TeX capacity exceeded, sorry [grouping levels=255].
\caption@addtofont #1#2->\begingroup 
                                     \expandafter \let \expandafter \caption...
l.17 \end
         {figure*}
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on teste.log.

和:

pdflatex teste.tex

为了使其成为 MWE,只需删除图形*环境中的标题。

  • 我究竟做错了什么?

答案1

它确实会警告您某些事情将会出错:

Package caption Warning: \caption will not be redefined since it's already
(caption)                redefined by a document class or package which is
(caption)                unknown to the caption package.
See the caption package documentation for explanation.

然后事情就出错了。

一般来说,如果您两次尝试重新定义相同的命令,那么事情就会中断:您正在加载字幕包,然后\caption手动重新定义。

只需使用\sidecaption

 \documentclass{article}
 \usepackage{sidenotes}
 \usepackage{graphicx}
 \renewcommand{\footnote}{\sidenote}
 %\renewcommand{\caption}{\sidecaption}


\begin{document}
\section{Title}\label{title}

Noice content. \sidenote{Sidenote}

\begin{figure*}
\centering
\includegraphics[]{fig.png}
\sidecaption{Este é um sidecaption.}
\end{figure*}
\end{document}

答案2

sidenotes.sty这是一个错误

\NewDocumentCommand \@sidenotes@multisign { } {3sp}

这在概念上是错误的,因为\@sidenotes@multisign它是在可扩展的上下文中使用。

这样做也是错误的\renewcommand{\caption}{\sidecaption},因为它要么caption根本不起作用,要么造成无限循环。

\documentclass{article}
\usepackage{sidenotes}
\usepackage{graphicx}

\renewcommand{\footnote}{\sidenote}

\makeatletter
\ExplSyntaxOn
\tl_set:Nn \@sidenotes@multisign {3sp}
\ExplSyntaxOff
\makeatother

\begin{document}
\section{Title}\label{title}

Noice content. \sidenote{Sidenote}

\begin{figure*}
\centering
\includegraphics[]{example-image}
\sidecaption{Este é um sidecaption.}
\end{figure*}
\end{document}

实际上,这个包应该彻底重写。

相关内容