過去の桐井戸端BBS (桐ver.9)
26709 一覧表印刷であふれ改行した2行目以降を字下げして印刷したい 空っ風地蔵 2004/06/18-11:48
初めてお世話になります。
・書籍の巻末索引を作っていますが、組み方がやや入り組んでいて思うように印刷できません。
(小生、一括処理やレポートは殆ど経験なし、印刷は一覧表印刷を使用)

・データと組み方は下記のとおりです。
*長文ですみません。
*丸数字があります。文字化けしたらごめんなさい。

・そこで、もし標記のことが可能なら、結合表で「見出し語+全角空白2倍+出所頁」
(*副見出しは頭に全角空白1倍を付け足す)としたデータを作って単一項目にして印刷するのが最も簡単なので、お尋ねした次第です。

・改行字下げが出来ない場合、ほかの方法(レポートを含む)のヒントをご教示頂けたら幸いです。

■データの概念

  主見出し語   副見出し語   出所頁
  −−−−−−−−−−−−−−−−−−−−−−−
R1:ああああ   (なし)     C5771,6390,6425
R2:いいいいい   イイイイ    B4249,4281 E7801 F8042 G9305,9462
R3:いいいいい   イイイイイ   @320 C
6153,6203,6270,6324,6425,6435 G9411,9432 H9513,9527,9570,9573,9642
R4:ううう    (なし)     G9468 H9590
R5:ううう     ウウウ     @27,59,125,140,444,485,1422 A
1923,2341

・レコード1は、見出しが主見出し語のみで出所頁がある場合
・レコード2・3は、一つの主見出し語に対して副見出し語が複数あり、副見出しごとに出所頁がある場合
・レコード4・5は、一つの主見出し語に対して副見出し語があり(単複)、主見出し
・副見出しの両方に出所頁がある場合
・丸数字は巻数を表し、巻数間は半角あき

■印刷イメージ

1:ああああ  C5771,6390,6425
2:いいいい
3: イイイイ  B4249,4281 E7801
4:  F8042 G9305,9462
5: イイイイイ  @320 C6153,6203,
6:  6270,6324,6425,6435 G9411,
7:  9432 H9513,9527,9570,9573,9642
8:ううう  G9468 H9590
9: ウウウ  @27,59,125,140,444,
10:  485,1422 A1923,234

・主見出し語は行頭から組む
・主見出し語+副見出し語セットの場合は、グループ化風に配置する(2〜7行、9〜10行)
・副見出し語は1字下げ(3、5、9行)
・出所頁は主見出し語・副見出し語に2字あけで追い込む
・出所頁が2行以上にわたる場合は、2行目以降は2字下げ(4、6、7、10行目)
・出所頁の改行位置は、コンマ・巻数間とする(頁番号の途中では改行しない)

26734 Re:一覧表印刷で、あふれ改行した2行目以降を字下げできますか 佐田 守弘 2004/06/21-23:38
記事番号26709へのコメント
空っ風地蔵さん
書籍の巻末索引で、見出し後がある行以下の行は字下げしたいとの要望ですが、
これは簡単ではなさそうですね。
桐自体には、1行目と2行目以降で横の割付けを変更する機能はありますが、
選択できるのは左寄せ、中央揃え、右寄せなどの中から選べるだけで、
1文字ないし数文字の字下げをする機能はありません。

もしどうしてもこの様な形の形式のものをるとなると、一括処理で文字数を
計算しながら適当な位置で分割して複数行に分けて行くしかなさそうですね。
印字する文字が固定ピッチであれば文字数をカウントするのは可能でしょうが、
もしプロポーショナル書体を使うとなると、文字数のカウントがかなり難しそうです。

佐田守弘(KS-00119)
26735 Re:一覧表印刷で、あふれ改行した2行目以降を字下げできますか 幅田 2004/06/21-23:55
記事番号26709へのコメント
空っ風地蔵さん
こんにちは。

思いつきですが、一覧表印刷ではなくレポートということであれば、
その文字列の1文字目と2文字以降を分割して2つのオブジェクトで印刷すればいかがでしょう。

分割方法はテキストオブジェクトで、
#部分列([該当項目],1,1)とすれば、1文字目の1文字。
#部分列([該当項目],2)とすれば、2文字以降。

1文字目のオブジェクトのすぐ右側に2文字目以降のオブジェクトをくっつけて印刷します。
1文字目のオブジェクトの大きさはちょうど1文字分で1行。
(左寄せすればいいと思います。)
2文字目のオブジェクトは、右寄せして、大きく、何行にもわたった大きさにします。

罫線などは引かないようにして、必要であれば直線オブジェクトなどで対応します。

空っ風地蔵さんの例題ではもっと複雑そうで、こんな単純なわけにはいかないのかもしれませんが・・・


26742 Re:一覧表印刷で、あふれ改行した2行目以降を字下げできますか 空っ風地蔵 2004/06/22-21:24
記事番号26734へのコメント
佐田さん、コメントありがとうございます。

>これは簡単ではなさそうですね。
>桐自体には、1行目と2行目以降で横の割付けを変更する機能はありますが、
>選択できるのは左寄せ、中央揃え、右寄せなどの中から選べるだけで、1文字
>ないし数文字の字下げをする機能はありません。

少々細かすぎる要望ではないかということは、自覚しておりました。
字下げ機能の有無を確認できれば、別の考えに移れます。

>もしどうしてもこの様な形の形式のものをるとなると、一括処理で文字数を
>計算しながら適当な位置で分割して複数行に分けて行くしかなさそうですね。
>印字する文字が固定ピッチであれば文字数をカウントするのは可能でしょうが、
>もしプロポーショナル書体を使うとなると、文字数のカウントがかなり難し
>そうです。

この方法を、私なりに考えてみたいと思います。
ただ、固定ピッチとして「文字数」は全角・半角が混在するので#桁数[]として計算できるか、
とまでは考えますが、頁番号の途中で分割しない方法等々、ちょっと難題か。

(でもやはりテキストを書き出し、ワープロで読み込み一々インデントをかけていくの
も量的に手間が大きすぎます。「あふれ改行」という便利な機能も使えませんし。
桐のほれぼれするような印刷機能は捨て切れません。)

またの機会に、よろしくおねがいします。
26744 Re:一覧表印刷で、あふれ改行した2行目以降を字下げできますか 空っ風地蔵 2004/06/22-22:38
記事番号26735へのコメント
幅田さん、コメントありがとうございます。
少々贅沢な要望であることは、内心承知していたのですが。

>2文字目のオブジェクトは、右寄せして、大きく、何行にもわたった
>大きさにします。

1字下げとして、次のような形になると理解してよいでしょうか。

「1字目」・「2字目以降   」
      「2字目以降残り1」
      「2字目以降残り2」…

この場合、「レポート」ですと行数不定の場合、最大行数を想定して確保しておくことになるでしょうか。
もしそうならば、この件のデータでは一寸無理かと思います。
とすると、やはり1レコードを、1行ずつに納めるようにオブジェクト幅で分割することになりましょうか。
分割のヒントは佐田さんからいただきましたので、それはそれで可能な限りトライしてみるつもりです。

また、よろしくお願いします。
26745 Re:一覧表印刷で、あふれ改行した2行目以降を字下げできますか 幅田 2004/06/22-22:42
記事番号26744へのコメント
空っ風地蔵さん
こんにちは。

>この場合、「レポート」ですと行数不定の場合、最大行数を想定して確保しておくことになる
>でしょうか。もしそうならば、この件のデータでは一寸無理かと思います。

一覧表形式のレポートだと、最大行数を想定する必要はなく、
データがある分だけ改行されると思います。

(・・思いつきで試してませんが。)
26766 Re:できました。 空っ風地蔵 2004/06/23-23:58
記事番号26745へのコメント
幅田さん、お陰様でほぼ思い通りの形で印刷できました。

>一覧表形式のレポートだと、最大行数を想定する必要はなく、
>データがある分だけ改行されると思います。

これならば、一覧表印刷と同じようにできそうと考え、トライしてみましたところ、なんとか達成しました。

基本的な方法は、字下げ相当分だけ別項目に分離するというヒントをお借りしました。
データは、初発投稿で書きましたように、主見出し・副見出し・出所頁を、条件選択を使ってつなげ、
全角空白、半角空白、コンマをあふれ改行文字としました。

序でながら、2段組としたので、印刷頁番号は過去のBBS桐Ver8#13537を参考に、複合としました。

持つべきものは先達と改めて了解し、佐田さんへ共々、感謝いたします。
この井戸端BBSは、たとえて言えば実戦将棋を、詰め将棋に変換してくれる場のようですね。
解答があることがわかっている詰め将棋なら粘れます。

今後も、時々拝見させて頂きます。
26771 Re:できました。 幅田 2004/06/24-08:39
記事番号26766へのコメント
空っ風地蔵さん
こんにちは。
解決したようでよかったですね。

>基本的な方法は、字下げ相当分だけ別項目に分離するというヒントをお借りしました。

別項目を作って分離する必要はなく、レポートのテキストオブジェクトに直接計算式を書けば、
よけいな項目を作らないですむと思います。

戻る