
コマンド内で使用される項目が内部的に壊れないようにしたいのですが、私が見つけた解決策では結局脚注が消えてしまいます。脚注を残したまま壊れないようにする方法についてアドバイスはありますか?
\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}