たとえば、本の章の冒頭に「引用と出典」のようなものをタイプセットしたいのですが、次のようになります。
CHAPTER TITLE
This is an introductory quote.
It's stylistically questionable,
but it's a fun LaTeX exercise.
-- said by me
Now starts the main body text, which is not rele-
vant to this question. It just goes on and on and
on and on.
It just looks like ordinary text. You do not
have to keep reading.
この目的のために、私は次のように使用する環境とコマンドを用意しました。
\section{Chapter Title}
\begin{fooquote}
This is an introductory quote % etc. etc.
\quoteattribution{-- said by me}
\end{fooquote}
質問:引用部分と本文の間に改ページがないことをどのように保証できますか?改ページがあっても構いません。内で引用文ですが、引用文と出典の間に引用文があってはなりません。
必要であれば、設定全体を変更しても構いません。私の場合は次のようになります。
\newenvironment{fooquote}%
{ \bgroup
\let\oldend=\end
\def\end##1{\oldend{##1}\csname @afterindentfalse\endcsname
\csname @afterheading\endcsname}
\begin{quote}%
\itshape%
}{%
\end{quote}
\egroup
}
\newcommand{\quoteattrib}[1]{\normalfont\flushright#1}
答え1
実際には、サンプル文書が提供されていれば回答がはるかに簡単になりますが、断片的なコメントははるかに難しいです。
\newenvironment{fooquote}%
{ \bgroup
\let\oldend=\end
\def\end##1{\oldend{##1}\csname @afterindentfalse\endcsname
\csname @afterheading\endcsname}
\begin{quote}%
\itshape%
}{%
\end{quote}
\egroup
}
\newcommand{\quoteattrib}[1]{\normalfont\flushright#1}
環境がすでにグループであるため、これら\bgroup
\egroup
は必要ありません。また、スペース文字も導入されます。fooquote
{ \bgroup
再\end
定義 (実際にはかなり危険です) は早すぎるようで、\end
ネストされた環境、特にquote
環境に影響を及ぼします。後でアクティブ化したいだけなのでfooquote
(推測ですが)、定義の終了コードの最後に配置する必要があります。
flushright
は環境フォーム、宣言フォームとなることを意図しています\raggedleft
が、1 行の場合は、ページの他の部分に柔軟性がある限り、その時点でページ区切りを防ぐには . を使用するだけで十分でしょう\hspace{\fill}
。
\nopagebreak
\documentclass{book}
\makeatletter
\newenvironment{fooquote}{%
\begin{quote}%
\itshape
}{%
\end{quote}%
\par
\aftergroup\@afterindentfalse
\aftergroup\@afterheading
\ignorespacesafterend
}
\newcommand{\quoteattrib}[1]{\par\nopagebreak\normalfont\hspace*{\fill}#1\par}
\makeatother
\begin{document}
\chapter{CCC}
\begin{fooquote}
red yellow blue
\quoteattrib{me}
\end{fooquote}
One two three. One two three. One two three. One two three.
One two three. One two three. One two three. One two three.
One two three. One two three. One two three. One two three.
One two three. One two three. One two three. One two three.
One two three. One two three. One two three. One two three.
One two three. One two three. One two three. One two three.
\end{document}