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