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}
实际上,这个包应该彻底重写。