不要破坏项目(不会消失脚注)

不要破坏项目(不会消失脚注)

我试图防止命令中使用的项在内部中断,但我找到的解决方案最终导致脚注消失。有什么建议可以让脚注保持有效但又不会中断吗?

\documentclass{article}

\begin{document}

\newcommand{\lymessage}[3]{
  \item{{#1}\par{#2}\par{#3}\par{#3}\par{#3}\par{#3}\par{#3}\par{#3}\par{#3}
  \par{#3}\par{#3}\par{#3}\par{#3}\par{#3}}
}

\begin{enumerate}
\lymessage
  {First arg of item.\par}
  {Second arg\footnote{footnote text} of item.}
  {Another arg of item.}
\lymessage
  {First arg of item.\par}
  {Second arg\footnote{footnote text} of item.}
  {Another arg of item.}
\lymessage
  {First arg of item.\par}
  {Second arg\footnote{footnote text} of item.}
  {Another arg of item.}
\end{enumerate}

\end{document}

谢谢你的帮助!

编辑:感谢@wipet 提供的解决方案。\par\nobreak代替刚才的解决方案\par效果很好。

答案1

这是一个想法,但不容易理解你想要什么。

\documentclass{article}

\begin{document}

\newcommand{\lymessage}[3]{%
  \item \begingroup
     \let\par\fpar % don't really do \par
     \linepenalty=10000 % no page break inside a paragraph
     % the text
     #1\par
     #2\par
     #3\par #3\par #3\par #3\par #3\par #3\par
     #3\par #3\par #3\par #3\par #3\par #3%
  \endgroup\par % issue a real \par
}
\newcommand{\fpar}{% emulate \par, but just do \hfil\break
  \ifhmode
    \unskip % remove a possible space
    \vadjust{\nobreak\vskip\parskip}% insert \parskip glue
    \nobreak % don't break at the next glue
    \hskip\parfillskip % fill the line
    \break % break here
  \fi
}

\begin{enumerate}
\lymessage
  {First arg of item.}
  {Second arg\footnote{footnote text} of item.}
  {Another arg of item.}
\lymessage
  {First arg of item.}
  {Second arg\footnote{footnote text} of item.}
  {Another arg of item.}
\lymessage
  {First arg of item.}
  {Second arg\footnote{footnote text} of item.}
  {Another arg of item.}
\end{enumerate}

\end{document}

相关内容