mdframed 定理中的段落樣式註腳?

mdframed 定理中的段落樣式註腳?

mdframed套件提供了一個很好的功能,可以在定理中插入腳註。我正在尋找一種在定理環境中實現腳註選項的段落樣式的方法。這會強制腳註出現在單一段落中,當有許多短腳註會形成又長又難看的專欄並浪費空間時,這是一個非常有用的選擇。例如,我正在嘗試使用套件para中的選項footmisc。正如您在我的 MWE 彙編中所看到的,出於某種原因,腳註仍然印在自己的段落(單列)中。

另外,請注意,更好的解決方案將保留兩個標準的選項段落樣式腳註,因為人們可能仍然需要偶爾使用長腳註。例如,我知道該bigfoot軟體包透過不同的\footnote{}\footnote+{}命令提供了此功能。預先感謝您的任何幫助。

\documentclass{article}

\usepackage{thmtools}
\usepackage[framemethod=TikZ]{mdframed}
\usepackage[para]{footmisc} 

\declaretheorem[mdframed]{theorem}

\begin{document}

\begin{theorem}
     This is the first part of the theorem,\footnote{First footnote} this is the second part,\footnote{Second footnote} and this is the third part.\footnote{Third footnote}
\end{theorem}

\end{document}

在此輸入影像描述

答案1

一些骯髒的工作。

使用\parfn\normalfn在腳註的不同形狀之間進行切換。

使用\parmpfn\normalmpfn在 中的不同形狀的腳註之間進行更改minipage

\documentclass{article}

\usepackage{thmtools}
\usepackage[framemethod=TikZ]{mdframed}
\makeatletter

\newbox\my@footins%
\newtoks\my@output%

\long\def\my@footnotetext#1{%
  \global\setbox\my@footins\hbox{%
    \unhbox\my@footins
    \reset@font\footnotesize
    \hsize\columnwidth
    \@parboxrestore
    \protected@edef\@currentlabel
         {\csname p@footnote\endcsname\@thefnmark}%
    \color@begingroup
      \my@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\rule{1em}\z@\@finalstrut\strutbox}%
    \color@endgroup}}

\def\my@makecol{%
  \setbox\footins\vbox{\footnoterule\box\my@footins}
  \my@latex@makecol%
}

\let\my@latex@makecol\@makecol
\let\my@latex@footnotetext\@footnotetext

\def\parfn{%
  \let\@makecol\my@makecol%
  \let\@footnotetext\my@footnotetext%
}%
\def\normalfn{%
  \let\@makecol\my@latex@makecol%
  \let\@footnotetext\my@latex@footnotetext%
}%

\long\def\my@mpfootnotetext#1{%
  \global\setbox\@mpfootins\hbox{%
    \unhbox\@mpfootins
    \reset@font\footnotesize
    \hsize\columnwidth
    \@parboxrestore
    \protected@edef\@currentlabel
         {\csname p@mpfootnote\endcsname\@thefnmark}%
    \color@begingroup
      \my@makefntext{%
        \rule\z@\footnotesep\ignorespaces#1\rule{1em}\z@\@finalstrut\strutbox}%
    \color@endgroup}}

\newrobustcmd*\mymdf@footnoteoutput{%
     \ifvoid\@mpfootins\else%
          \nobreak%
          \vskip\mdf@footenotedistance@length%
          \normalcolor%
          \mdf@footnoterule%
          \noindent\unhbox\@mpfootins%
     \fi%
}

\newrobustcmd*\mymdf@footnoteinput{%
   \def\@mpfn{mpfootnote}%
   \def\thempfn{\thempfootnote}%
   \c@mpfootnote\z@%
   \let\@footnotetext\my@mpfootnotetext%
}

\newcommand\my@makefntext[1]{%
    \parindent 1em%
    \noindent
    \@makefnmark#1}

\let\oldmdf@footnoteinput\mdf@footnoteinput%
\let\oldmdf@footnoteoutput\mdf@footnoteoutput%

\def\parmpfn{%
  \let\mdf@footnoteinput\mymdf@footnoteinput%
  \let\mdf@footnoteoutput\mymdf@footnoteoutput%
}

\def\normalmpfn{%
  \let\mdf@footnoteinput\oldmdf@footnoteinput%
  \let\mdf@footnoteoutput\oldmdf@footnoteoutput%
}

\makeatother

\declaretheorem[mdframed]{theorem}

\begin{document}
\parfn
Some text\footnote{test}

Some text\footnote{test}

\parmpfn
\begin{theorem}
     This is the first part of the theorem,\footnote{First footnote} this is the second part,\footnote{Second footnote} and this is the third part.\footnote{Third footnote}
\end{theorem}

\normalmpfn
\begin{theorem}
     This is the first part of the theorem,\footnote{First footnote} this is the second part,\footnote{Second footnote} and this is the third part.\footnote{Third footnote}
\end{theorem}

\end{document}

在此輸入影像描述

相關內容