达到正确模式后可以执行宏吗?
\documentclass{article}
\usepackage{etoolbox}
\usepackage{marginfix}
\newcommand{\mymarginpar}[1]{\AfterEndEnvironment{figure}{\marginpar{#1}}}
%\newcommand{\mymarginpar}[1]{\AfterBackInOuterParMode{\marginpar{#1}}}
\begin{document}
\begin{figure}
\begin{center}
My figure goes here
\caption[Caption for LOF]{bar\mymarginpar{A note}}
\end{center}
\end{figure}
\begin{table}
\centering
my table goes here
\caption[Caption for LOF]{bar\mymarginpar{Another note}}
\end{table}
\end{document}
我也考虑过一个简单的 if/elseif 检测环境,即图形或表格,但在这问题已经讨论过了,嵌套环境怎么会不起作用。第一个例子是在center
notfigure
环境中调用的?!
我的天真想法是某种\AfterBackInOuterParMode
。有可能实现吗?
- 编辑:
人们要求在问题中使用 MWE,所以我尝试这样做。但是,为什么不能考虑其他解决方案就这么消失了。所以,这里有一点背景知识:在(我们制作的)用于生成博士论文或讲义的模板中,有两个最常见的抱怨。
其中之一就是无法使用旁注在标题中,如果你也利用它们作为参考,这是很常见的。最后,它看起来像这样。您还可以看到,为什么任何类型的手动调整(偏移等)都是不可能的,因为两个或多个输出文件(一个用于 Kindle)是从同一个输入文件生成的。marginnote
不能使用,因为我们使用marginfix
。否则,注释将重叠。这会导致各种问题,其中一个问题描述这里。
只是\begin{center}
为了举例说明嵌套环境而添加的。如果我检测到实际(内部)环境,我会得到center
而不是figure
。
总的来说,有没有办法定义mymarginpar
它在 MWE 中起作用?