テクニック > CCalendarで非等幅フォントを使う

この項目を読む前に。


  • この項目は既に半分以上過去のものです。
ColorCalendarのv1.00で、日付の区切りにスペースではなくtabが採用された関係で、ここで解説しているような面倒な作業をしなくても非等幅フォントでも普通にボックス型や横一列のカレンダーが作れるようになりました。正直こっちの方が作成もメンテナンスも桁違いに楽なので、こだわり無い方は最初から ColorCalendarを導入することをお勧めします。
一応こちらの方法ならtodayに画像が扱えたりもするんですが、それならtk_jpcalenderを導入した方が楽だと思います。どうしてもCCalendarでやりたいという方のみ読み進めてください。

CCalendarで非等幅フォントを使う。


  • CCalendarを使ったカレンダーの作成方法については既に解説されていますのでそちらを参考に。
ここでは通常等幅フォントしか扱えないはずのCCalendarで非等幅フォント(プロポーショナルフォント)を使う方法を解説。
  • なお通常作成に比べて必要なメーター数が膨大になる関係で、PC環境によっては描画が重くなります。また、作業も細かく非常に面倒になるので時間をかけてじっくり進めてください。
  • 正規の方法ではないので問題も多いです。特に行足らずで後半テキストが一周してしまう場合、一応通知機能使った回避方法もあるんですが、武蔵使ってるとそれもままならず。まぁこんなこと出来るよと言う知識だけでも。
  • ColorCalendarでも同様のことができます。CCalendarより月最終日以降の空白処理がこの手法に向いているようなので、予定日等の機能がいらないのであればこっちで作成する方が楽でお勧め。

解説


  • 作業を一言でいうと、 「縦一列にカレンダーを排出し、該当テキストを一行ずつ参照させたメーターを順に貼り付ける」 です。
こう書くと楽そうですが、実際単純作業の連続になるのでイライラすること間違いなし。それだけに完成するとちょっとした達成感に浸れます。

Box型カレンダーを作る


  • まずCCalendar側の設定を変更します。
CCalendar.preferences.jsをテキストエディタで開き、16~17行目を
var cfmt = 1;
var start = 0;
としてください。これで出力開始日のある週の日曜日を基点に出力されます。
以上でCCalendarの設定は終了です。その他の設定に関しては各人の自由で構いません。

設定ファイル作成


  • 01.解説通りCCalendar.wsfを一度実行して、カレンダー作成に必要なテキストファイルを作成させます。
  • 02.Config.exeを起動して「メーターの追加」→「テキストファイル」でメーターを追加したら、先ほどの手順で作成された「SUNDAY.txt」を参照させ、「表示行」は「1」、「表示行数」も「1」とします。
メーターのサイズは適当に設定してください。表示位置も自由です。色も適当に決めて下さい。
細かい設定はあとからでも出来ますが、あとから設定を直そうとするとメーターの数が数なだけに非常に煩雑ですので、ある程度形が見えたらさっさと直すことを勧めます。

  • 03.次いでさらにメーターを追加します。
先ほどは「SUNDAY.txt」でしたが、こんどは「WEEKDAY.txt」を参照させます。そして先ほど作成したメーターの右隣に配置します。「表示行」は「2」、「表示行数」は「1」と、表示行を一行ずらしてください。
平日は月~金と五回続くので、この作業を五回繰り返しします。
そして最後に土曜日です。「参照先」は「SATURDAY.txt」、「表示行」は「7」、「表示行数」は「1」です。これでとりあえず一週間分完成です。あとはこの作業を繰り返し、五週間+二日分(一日が土曜日で大の月の場合に必要な最大値)で37個のメーターを作成します。

  • 04.Today表示を作ります。TODAY.txtを参照し、表示行を一つずつずらしたメーターを同様に37個用意し重ねます。
この辺からイライラしてきます。
  • 05.必要ならば休日用の表示を作ります。
HOLIDAY.txtで同様に37個のメーターを作り重ねてください。
  • 06.必要ならば個人予定用の表示を作ります。
LOCALDAY.txtで同様に37個のメーターを作り重ねてください。
  • 以上で完成です。単調な作業が連続するため、ちょっとしたトランス状態になり、いつの間にか表示行がずれてたり表示行数の方を一個ずつ増やしてたりします。ちゃんと表示されているか確認して下さい。
Box_Sample.jpg

横一列型カレンダーを作る


  • やることはBOX型の時と一緒ですが、CCalendarの設定がちょっと違います。
CCalendar.preferences.jsをテキストエディタで開き、16~17行目を
var cfmt = 1;
var start = -1;
として下さい。これで出力開始日を基点にテキストが排出されます

設定ファイル作成


  • 通常どおりCCalendar.wsfを実行してカレンダー作成に必要なテキストを排出させます。
そしてまたしても一行ずつ配置していくわけですが、横一列型はBOX型と違い曜日が定まっていませんので、 WEEKDAY.txtだけで横一列に31個のメーターを配置する必要があります。
そして同様にSUNDAY.txt、SATURDAY.txt、TODAY.txtで31個メーターを作り、配置します。その後必要ならHOLIDAY.txt、LOCALDAY.txtを追加して下さい。
Hor_Sample.jpg

補記


  • CCalendar280bのバグで、縦出力の時にHEADSUN、HEADWEEK、HEADSATが正常に出力されません。
幸いBOX型は配置が決まってるので自分で追加して下さい。横一列の時は諦めて下さい。
  • 休日や今日の表示は要らんと言う方はCCalendar.preferences.js内のvar priorityを弄って項目の優先度を変えて下さい。
  • TODAYで画像を使いたい方は、CCalendar.preferences.js内のvar dfmtに任意の数字(ここでは例として'TODAY' : '1')を割り当て、 TODAYのメーターを追加するときに「表示タイプ」を「画像」にし、「通知機能」にチェックを入れ、「通知のタイミング」で「値になったとき」、「値」を「1」とし「通知画像」に用意した画像を指定して下さい。
HOLIDAYやLOCALDAYでも同じ事が出来ます。
  • 表示可能行を越えてテキストが一周してしまい、月後半の本来空白であるべき箇所に月初めの数字が表示されてしまう場合があります。通常描画の場合、後半部分のメーターで「通知機能」を使って「通常時は透過度0で不可視、値が20以上の時は透過度255で可視」のような設定をすることで回避可能。ただ武蔵使ってる人は…ごめんなさい。

タグ:

+ タグ編集
  • タグ:
最終更新:2010年11月16日 19:03
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。