不要破壞物品(腳註不會消失)

不要破壞物品(腳註不會消失)

我試圖防止項目(在命令中使用)在內部損壞,但我找到的解決方案最終導致腳註消失。關於如何保持腳註活躍但又避免破壞有什麼建議嗎?

\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}

相關內容