MDframed 定理内の段落スタイルの脚注?

MDframed 定理内の段落スタイルの脚注?

このmdframedパッケージは、定理内に脚注を挿入するための優れた機能を提供します。私は定理環境内で脚注オプションの段落スタイルを実装する方法を探しています。これにより、脚注が 1 つの段落内に強制的に表示されます。これは、長い見苦しい列と無駄なスペースを作成する短い脚注が多数ある場合に非常に役立つオプションです。私は、たとえば、パッケージpara内のオプションを使用しようとしていますfootmisc。私の MWE のコンパイルでわかるように、脚注は何らかの理由で独自の段落 (1 つの列) に印刷されています。

また、望ましい解決策としては、標準と標準の両方のオプションを残すことに留意してください。そして段落スタイルの脚注は、長い脚注が時々必要になる可能性があるためです。たとえば、bigfootパッケージでは、distinct コマンド\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}

ここに画像の説明を入力してください

関連情報