minipage 中的 \footnotemark 和 \footnotetext

minipage 中的 \footnotemark 和 \footnotetext

Tufte 讲义课程给出了整洁的布局,在右侧显示脚注而不是底线。

但是,当我将 minipage 与 tufte-handout 一起使用时,如果 minipage 有脚注,则脚注会损坏,因为类会修改脚注设置。因此,我使用了 \footnotemark 和 \footnotetext,但数字以字母形式显示在底部,而阿拉伯语显示在文本区域中。甚至,它还给我错误消息 -

l.29 呼叫者\footnotemark{\value{footnote}}
                                              \footnotetext[2]{hello} 使用`...

我的代码有什么问题?如何获取正确的脚注编号?

\documentclass{tufte-handout}
\usepackage{tikz}
\newcommand{\clj}{\textcolor{blue}{\textsc{clojure}}}

\title{2010 年 8 月 1 日第 31 周}
\newlength{\RoundedBoxWidth}
\newsavebox{\GrayRoundedBox}
\newenvironment{GrayBox}[1][\dimexpr\textwidth-4.5ex]%
   {\setlength{\RoundedBoxWidth}{\dimexpr#1}
    \begin{lrbox}{\GrayRoundedBox}
       \begin{minipage}{\RoundedBoxWidth}}%
   { \end{迷你页面}
    \结束{lrbox}
    \开始{中心}
    \开始{tikzpicture}%
       \draw node[draw=black,fill=black!10,圆角,%
             内分离度=2ex,文本宽度=\RoundedBoxWidth]%
             {\usebox{\GrayRoundedBox}};
    \结束{tikzpicture}
    \结束{中心}}

\开始{文档}
你好\脚注{实验}
%\newcounter{\myfootnote}
%\setcounter{\myfootnote}{\value{footnote}}
\vskip2ex
\begin{GrayBox}[1.2\textwidth]
{\LARGE 如何使用外部 \clj\ 代码}
\vskip0.3em\hrule\vskip1em

调用者使用“use”来使用 \verb|CLASSPATH/hello.clj|。现在,可以调用
the(嗨)\footnotemark[\thefootnote]{}\footnotetext[\thefootnote]{你好}

\end{灰盒}
你好\footnote{再次实验}
\结束{文档}

答案1

minipage 环境中的脚注以小写字母打印。latex.ltx 中的定义是

\def\thempfootnote{{\itshape\@alph\c@mpfootnote}}

你可以重新定义它。一个快捷的方法是:

\let\thempfootnote\thefootnote

此后小页面内的脚注符号也将是阿拉伯数字。

答案2

此外,您可能不应该在和\thefootnote中使用可选参数,因为这些命令需要一个数字,而可以携带格式信息,并且实际上可能是文本(如果您使用罗马或字母数字)或符号。\footnotemark\footnotetext\thefootnote

相反,您应该使用\value{footnote}

但更好的是,你应该这样做:在 GrayBox 环境的定义中添加以下行

\setcounter{mpfootnote}{\value{footnote}}
\renewcommand{\thempfootnote}{\arabic{mpfootnote}}

紧接着\begin{minipage}

\setcounter{footnote}{\value{mpfootnote}}

直接放在前面\end{minipage},这样 GrayBox 的脚注编号就会与周围的文本保持一致,您不必footnote在每次使用后手动增加计数器。当然,您应该将脚注切换\arabic为您想要的适当样式。

相关内容