繰り返しボックスを含む 2 列のドキュメントがあります。
そこで、次のマクロを作成しました (色とボックスの高さは気にしないでください)。
% -------------------------------------------------------
% aitparagraph
%
% gives header and content with proper size and color
% for an arbitrary box
%
\newcommand{\aitparagraph}[2]{
\vspace{0.5cm}
{\Large \bf \textcolor{AITred}{#1}} \\[10pt] {#2}
}
% -------------------------------------------------------
% aitbox
%
% a single box
%
\newcommand{\aitbox}[2]{
\begin{minipage}[t]{\hsize}
\fcolorbox{AITgray}{white}{
\begin{minipage}[t]{0.92 \hsize}
\vbox to \the\boxheight{
\aitparagraph{#1}{#2}
\vfill
}
\end{minipage}
}
\end{minipage}
}
ドキュメント内でこれらのマクロを次のように使用します。
\begin{multicols}{2}
\aitbox{FIRSTBOX}{
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.
}
\columnbreak
\begin{minipage}[t]{\hsize}
\fcolorbox{AITgray}{white}{
\begin{minipage}[t]{0.92 \hsize}
\vbox to \the\boxheight{
\aitparagraph{SECOND}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.}
\vfill
}
\end{minipage}
}
\end{minipage}
\end{multicols}
最初のボックス (「FIRSTBOX」) では、「Undefull \hbox (badness 10000) in paragraph)」が表示されますが、純粋なマクロなしバージョンでは、何のエラーも表示されません。
マクロを使用すると、この警告が表示されます。なぜでしょうか? どうすればこの警告を消すことができますか? 何が間違っているのでしょうか?
答え1
あなたのコードすべてを批判するつもりはありませんが、賢者たちから学ぶためにしばらくここを読んでみることをお勧めします ;-)
メッセージに関してはUndefull \hbox
、2 つの問題があります。
- マクロでは、2 番目のミニページの後にスペース文字を導入しています。これがなぜ問題になるのかはよくわかりませんが、スペースをコメント アウトすると警告が表示されなくなります (マクロ以外の例でミニページの後にスペースを入力しても警告は表示されません。私に聞かないでください...)
\\
マクロを使用すると、 in マクロによって生成された改行の直後に新しい段落 (空行によって発生) が開始され\aitparagraph
、2 番目の警告が発生します。
したがって、両方の警告を消すために必要な最小限の変更は次のとおりです。
% -------------------------------------------------------
% aitparagraph
%
% gives header and content with proper size and color
% for an arbitrary box
%
\newcommand{\aitparagraph}[2]{
\vspace{0.5cm}
{\Large \bf \textcolor{red}{#1}} \\[10pt] {#2}
}
% -------------------------------------------------------
% aitbox
%
% a single box
%
\newcommand{\aitbox}[2]{
\begin{minipage}[t]{\hsize}
\fcolorbox{green}{white}{
\begin{minipage}[t]{0.92 \hsize}
\vbox{
\aitparagraph{#1}{#2}
\vfill
}
\end{minipage}
}
\end{minipage}%
}
\begin{document}
\begin{multicols}{2}
\aitbox{FIRSTBOX}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.
}
\columnbreak
\begin{minipage}[t]{\hsize}
\fcolorbox{green}{white}{
\begin{minipage}[t]{0.92 \hsize}
\vbox{
\aitparagraph{SECOND}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue euneque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.}
\vfill
}
\end{minipage}
}
\end{minipage}
\end{multicols}
私が導入したパーセント記号については、行末のパーセント記号は何の目的で使用されますか?。
空白行との比較については\\
、標準的な答えは見つかりませんでしたが、ここ。