このページは,開発中の環境を扱っています。
問題点の指摘などは,掲示板ではなく,saloon へお願いします。
breakpsrectbox環境
ページをまたぐ EMpsrectbox環境です。
定義されているスタイルファイル †
emathPsbb.sty
- emathPs.sty も必須です。emathPsbb に先だって
\usepackage[dvips]{graphicx}
\usepackage[remake]{emathPs}
などと読み込んでおかねばなりません。
書式 †
\begin{breakpsrectbox}[#1]
.....
\end{breakpsrectbox}
- #1: key=val
- vrule
- 先頭行・末尾行以外の行の縦罫線を \vrule で処理します。
基本例 †
- ページをまたぐことができますが,大きな代償を支払わねばならないことを覚悟しなければなりません。
その一つは,break....sty の仕様として,
一行ごとに切ってその周りに罫線を配置して並べる
という手法がとられていますから,ブロックが大きくなれば EPS画像ファイルが増えることになります。
EPS画像の処理に ghostscript を呼び出す dvi-ware (例えば,dvipdfm, dvipdfmx, dviout)には,重い処理となります。
そこで,先頭行と末尾行は罫線を画像にするが,途中行の罫線は \vrule で引く,
ということで負担を軽減するオプション [vrule] を用意しましたが,
うまくつながらない場面もあることをお断りしておきます。
- いくらなんでも,一行だけの文をこの環境で囲んだらおかしくなった,
などとほざいてはいけません。
EMpsrectbox 環境で済ませることができる場面では,その方が断然有利なのです。
- 上の図はページをまたぐことを明示していますが,この後の図は一ページに収まったものを示しています。
もちろんページをまたぐことは可能ですが,そのような図を用意することは面倒なので手抜きです。
[remake] オプション †
emathPs.sty の仕様として,いったん作成された EPS ファイルは再描画されません。
したがって,枠内のテキストが変更され行数に増減があっても枠は前のままです。
具体例で見てみましょう。まずは,次のようなものを作ったとします。
その後,枠内の文章を修正して,短くなったとします。
枠は作り直されず,前のものが使われますから,
下罫線がついている画像(前の四行目の文についていた画像)
は,使われず,3行目で終わりとなり,尻抜けとなってしまいました。
対策は,emathPs.sty を [remake] オプション付きでロードしておくことです。
このオプションをつけておけば,epsファイルは必ず作り直されます。
[vrule] オプション †
この環境は,一行ずつ切り出してその周りに罫線を postscript の画像として配置します。
postscript画像を ghostscript で処理する dvi-ware (dvipdfm, dvipdfmx, dviout など) には,
荷が重い処理となります。
一つの手抜き法として,先頭行・末尾行以外の行の縦罫線は TeX の \vrule で処理するオプション [vrule] を用意しました。
#ref(): File not found: "vrule01.png" at page "breakpsrectbox環境"
- 上の例では,枠内は6行あります。
[vrule] オプションをつけない場合は,それらを一行ずつ切り出して,それぞれの罫線部を EPSファイルに仕立てます。
すなわち,6個のEPSファイルができます。
一方 [vrule] オプションをつけた場合は,一行ずつ切り出すのは break... の仕様通りです。
ただし,先頭行と末尾行の罫線は EPS ファイルが作られますが,途中の行については \vrule で罫線を引きます。
すなわちこの場合 EPS ファイルは2個で済むことになります。
もっとも,いいことばかりではありません。
木に竹を接いでいるのですから,場面によっては,罫線が乱れることが起こりえます。
その場合は,[vrule] オプションは使えません。
- このオプションは,次のオプションとは併用できません。
framecolor, backgroundcolor
枠内のテキスト部と枠線との間隔 --[hsep=..,vsep=..,hvsep=..] オプション †
枠内のテキスト部と枠線との間隔は \fboxsep に従います。
- これを変更するには,\fboxsep を変更すればよいわけではありますが,
枠内テキストに含まれる \fbox などにも影響を及ぼしますから,EMpsrectbox環境独自の変更法を用意してあります。
- まずは,左右の罫線とテキスト部との間隔です。[hsep=..]の右辺値は単位つきの長さです。
- 上下の罫線との間隔変更は [vsep=..] オプションです。
- もちろん,両者を併用することも出来ますが
- 両者が同じ長さのときは [hvsep=..] オプションでまとめて指定できます。
段落先頭のインデント -- [rectboxparindent=..]オプション †
EMpsrectbox環境は,実質 minipage環境です。したがって段落先頭のインデントはつきません。
- 必要な場合は[rectboxparindent=..]オプションを用います。
- このオプションは,当該環境に対してのみ働く局所的オプションです。
もっと広範囲に有効とするには,\rectboxparindentコマンドを用います。
見出し †
枠線上に見出し文字列を配置します。
上見出し -- [item=..,itempos=..] オプション †
罫線枠上辺に見出し文字列を配置するためのオプションが
[item=..]です。右辺値は,見出し文字列です。
下見出し -- [bitem=..,bitempos=..] オプション †
罫線枠下辺に見出し文字列を配置するためのオプションが
[bitem=..]です。
- 下見出し配置位置を変更するオプションが [bitempos=.] です。
デフォルトの位置は,r(右)です。
- 上下に見出しをつけることも可能です。
枠線の修飾 †
枠線の太さ指定 --[framethickness=..] オプション †
枠線の太さを指定するオプションが [framethickness=..] オプションです。
右辺値は 単位を伴う長さです。
- デフォルト値は 1pt です。
- linethickness も同義の key として使用可能ではありますが,
枠内の記述部に対しても働きますから,枠内に zahyou環境があったりすると影響が出ます。
枠線色指定 --[framecolor=..] オプション †
枠線に色をつけるオプションです。
枠の形状 †
デフォルトでは,枠罫線は長方形で,四隅は直角の折れ線です。
この形状を変更するオプションを紹介します。
コーナーを丸く --[rectboxoval=..] オプション †
まずは,四隅を四分円にするのオプションが [rectboxoval=..] です。
右辺値は四分円の半径(単位を伴った長さ)です。
- このとき,左右・上下罫線とテキスト部の間隔は,
rectboxoval=.. の右辺値となります。
ただし,hsep=.., vsep=.., hvsep=.. オプションが指定されたときは,その指定が優先されます。
- 見出しをつける item=.. オプションなどとも併用できることは当然です。
[rectboxoct=..] オプション − 枠の斜め切り †
次に,四隅から直角二等辺三角形を切り取るオプションが [rectboxoct=..] です。
左右の罫線のみ --[LRonly] オプション †
[LRonly] オプションは左右の罫線のみを描画します。
(天地の罫線は描画されません。)
左罫線のみ --[Lonly] オプション †
[Lonly] オプションは左罫線のみを描画します。
- rectboxoval オプションとの併用も可能です。
- 左罫線で小括弧もどきができていますが,これを大括弧もどきにするのが
[rectboxoct=..] オプションです。
- [kagi]オプションの方が大括弧らしいでしょうか。
上下両端で,水平方向の短い線分の長さは,hsep で指定した値の 3/4 です。
二重枠 (breakpsrectbox環境のネスト) †
breakpsrectbox環境の中に breakpsrectbox環境を配置することで,二重枠線の囲みを作ることが出来ます。
- 外側の罫線枠を太くしています。そのためのオプション
[framethickness=1pt]
を外側の rectbox環境に附加していますが,これが内側の rectbox環境にも影響を及ぼします。
従って,内側の breakpsrectbox環境に対しても [framethickness=..] オプションが必要です。
背景色指定 --[backgroundecolor=..] オプション †
テキスト部に背景色をつけるオプションです。
注意事項 †
- この環境は,1行ごとに分割して処理をします。
(break... 環境はすべてそうです)
ページをまたぐ必要がなければ,psrectbox環境を使用します。
- 極端な使用法として,
中身が1行だけの文を breakpsrectbox環境で囲むとおかしくなる
などというクレームは論外です。
( psrectbox環境を使えばよい,ということ。)
- emathPsbb.sty では,「EMbreakpsrectbox環境」の名前で定義されています。
他のスタイルファイルと競合しない限り,「breakpsrectbox環境」の名前で使用することができます。
1767