過去の桐井戸端BBS (桐ver.8)
9029 −(全角ハイフン)を縦書きするには? xeno 2000/12/20-20:07
季節柄、年賀状の作成に桐を使っている(というかもう作成し終わっている)方も多いと思いますが、
標記の件でよい方法がありましたら教えて下さい。

ごく普通の事だと思いますが、住所録のデータには長音記号(ー)とハイフン(−)が混在しています。(ex ○○アパートA−1号 など)

桐のテンプレート(葉書−郵便はがき(個人住所))で作成したレポートを先の住所録の表ファイルを
対象表とするよう改造してみたのですが、
住所に関するテキストオブジェクトのうち、マンション名の方には
    #文字置換(#全角([マンション名]),"ー","|")
という計算式が設定されています。
ところがこのままだと、見た目は縦書きで出力されるにもかかわらず、
・長音記号が単なる縦棒となる
・ハイフンが横棒のまま
となってしまうので、縦書きの指定にして計算式を
    #全角([マンション名])
とすると今度はハイフンが横棒のまま出力されます。
    #文字置換(#全角([マンション名]),"−","|")
としても同じです。

縦棒をJISコード2821の横棒にすると縦長に出力されますが、もともと文字罫線なので全長が長すぎて違和感があるのです。
基本的にはハイフン含む文字列を縦書きにしたときはハイフンが縦長に出力されればよいだけなのですが...。

なにかよい方法はありませんでしょうか?

9031 Re:−(全角ハイフン)を縦書きするには? 宮城 2000/12/20-20:35
記事番号9029へのコメント
xenoさん、テキストの書式で「縦書き」にしての表示でもだめですか。

となると、添付 Readme.TXTにある

>----------------------------------------
>12−6.文字列の回転
>----------------------------------------
>文字列を90度単位で回転する機能を追加しました。
>はがきなどを印刷するときに使用すると便利です。

を使い、「ー」を回転させたテキストをそこだけ貼り付けることはでき
るでしょうが、私ならやりません。(^^;;

9033 Re:−(全角ハイフン)を縦書きするには? xeno 2000/12/20-21:18
記事番号9031へのコメント
うゎっ、もうコメントがついた(感激)。

>を使い、「ー」を回転させたテキストをそこだけ貼り付けることはでき
>るでしょうが、私ならやりません。(^^;;

試しにテンプレートからレポートを作ってもらうとわかるのですが、
住所やあて名など、縦書きで出力されるべきオブジェクトがなぜか
横書きの指定になっていてDOS桐の時によくやった全角1文字分の
幅で複数行印刷するというオブジェクトになっているようなんです。

これが気にくわなくて、縦書きを指定すると、ハイフンが縦書きされないという・・・。
文字列の一部分だけを回転できるなら解決しそうですが、
さすがに私も回転させたハイフンだけのオブジェクトを作って
張り付けるという力技は御免こうむりたいところです。

それにしても、テンプレートの長音記号を単なる縦棒(JISコード2143)に置き換えるっていうのは
印刷時のみとはいえ無謀だと思えてなりません。
長音記号とハイフンの区別はデータベースを扱う上では基本的なことだと思うのですが。

9034 Re:−(全角ハイフン)を縦書きするには? 宮城 2000/12/20-21:23
記事番号9033へのコメント
>それにしても、テンプレートの長音記号を単なる縦棒(JISコード2143)
>に置き換えるっていうのは印刷時のみとはいえ無謀だと思えてなりま
>せん。長音記号とハイフンの区別はデータベースを扱う上では基本的
>なことだと思うのですが。

「だって、ないんだもん。」というのが K3の言い分でしょうね。

え〜と、外字で作ることはできるとは思いますよ。

9036 全角ハイフンを縦書きフォントはないの? xeno 2000/12/20-21:39
記事番号9034へのコメント
上のツリーのコメントを書いていたらこっちにもレスが・・・。

>「だって、ないんだもん。」というのが K3の言い分でしょうね。

全角ハイフンの縦書きフォントというのは無いのですか。
たしかに、もともとは縦書きの必要が無いところからきたものなのですから仕方ないのかも知れませんね。

たとえば、登記等では書類が縦書きだったとおもいますが、この様な場合はどうするのでしょうか?
やっぱり本来は「ノ」を使うものなのでしょうかね。
(あっ、これは「問い」ではありません。)
9039 Re:全角ハイフンを縦書きフォントはないの? Ogo 2000/12/20-22:23
記事番号9036へのコメント

>>「だって、ないんだもん。」というのが K3の言い分でしょうね。
>全角ハイフンの縦書きフォントというのは無いのですか。
>たしかに、もともとは縦書きの必要が無いところからきたものなので
>すから仕方ないのかも知れませんね。

何言ってんだか。
@が先頭についている日本語フォントは全て縦書きフォントです。
勿論、ハイフンは縦書きになります。

# しかし、桐ではこれを選択できない…… (^^;


9040 Re:全角ハイフンを縦書きフォントはないの? toshi-chan 2000/12/20-22:33
記事番号9039へのコメント
xenoさん、こんばんは。
直接の答にはなりませんが、参考までにどうぞ。

私も年賀状の表書きを桐ver8で作成しましたが、テンプレートがあることを知らず、一から作りました。
住所部分のオブジェクトの属性の設定の際、
   書式タブ   で  文字の方向  を  縦書き
   印字属性タブ で  文字変換   を  →漢数字1
としました。
そうすると、「横書きの長音記号」「横書きのハイフン」のいずれもが、「縦書きの長音記号」に変換されました。
縦書きのハイフンて無いのかな?
9045 Re:全角ハイフンを縦書きフォントはないの? 佐田 守弘 2000/12/21-01:13
記事番号9036へのコメント
xenoさん
>(あっ、これは「問い」ではありません。)
と書いても遅いです。ちゃんとレスが付きます。

さて、私の場合ですが、長音記号は「ー」、ハイフォンは半角で「-」に統一します。
もちろん自分で入力する場合以外に、例えば会社の社員名簿からダウンロードした場合など、
よそのデータを取り込んだ場合には、この点をまずきちんとチェックし、
長音記号とハイフォンの混同がないかを予め確認し、データの訂正をしておきます。

以上の上で、番地表記の区切りのハイフォンは、「の」に置換する方法を採用しております

佐田守弘(KS-00119)

9046 Re:全角ハイフンを縦書きフォントはないの? xeno 2000/12/21-08:01
記事番号9039へのコメント
>何言ってんだか。
>@が先頭についている日本語フォントは全て縦書きフォントです。
>勿論、ハイフンは縦書きになります。

そうなんですか。桐で使えない(指定できない)のは残念です。
ただし、他のアプリでも使うかも知れませんので縦書きフォントを導入してみようと思うのですが、
Ogo さんはどのようにして縦書きフォントを導入されたのでしょうか?

確かに Win3.1 の時は@がついた縦書きフォントがあったのは記憶していますが、
現在の私の環境(Win95 OSR2.1)では桐のオブジェクトのプロパティーは勿論のことながら、
コントロールパネル−フォントにも@が付いた縦書きフォントが出てこないのです。
(市販のフォントなどは入れていません)
また、職場のノートPC(Win98SE)でも同様で検索をかけても引っ掛かりませんでした。

うろ覚えですが、Win95 からは縦書き専用のフォントはなく、横書きのフォント
を縦書き用に変換して使うようになったというのをどこかで聞いたことがあります。
それとも、Win3.1 からのアップグレードなら縦書きフォントが残るようになっていたのでしょうか?

考えられるとするとあとは、カスタムインストールしたためにそのあたりが
インストールされなかったということくらいなのですが・・・。

9047 Re:全角ハイフンを縦書きフォントはないの? Ogo 2000/12/21-08:31
記事番号9046へのコメント

>そうなんですか。桐で使えない(指定できない)のは残念です。
>ただし、他のアプリでも使うかも知れませんので縦書きフォントを導入して
>みようと思うのですが、Ogo さんはどのようにして縦書きフォントを導入
>されたのでしょうか?

(^^;;;

わざわざ別のフォントがあるわけではありません。
例えば「MSゴシック」がインストールされていれば、
自動的に「@MSゴシック」も「選択できるべきフォント」としてリストに含まれるのです
(要するに、日本語フォントは通常の横書きのデザインとは別に、縦書きにする場合のデザイン補足追加情報も持っている)。

確認したければ、そうねぇ〜、コントロールパネルから「画面のプロパティ」で「デザイン」タブを開きます。
「指定する部分」で「フォント」項目に設定が存在する内容、例えば「アイコン」を指定し、
その「フォント」をリストボックス1番上の選択肢にズラッと並んでいる@付きのフォントに変更して「適用」を押してみます。

もちろん、デスクトップにあるショートカットアイコンを何でもいいから全角ハイフンを含む名前に変更すれば、その効果も確認できます。

9048 フォントに関する TIPS Ogo 2000/12/21-09:01
記事番号9047へのコメント

>確認したければ、そうねぇ〜、コントロールパネルから「画面の
>プロパティ」で「デザイン」タブを開きます。
>「指定する部分」で「フォント」項目に設定が存在する内容、例
>えば「アイコン」を指定し、その「フォント」をリストボックス
>1番上の選択肢にズラッと並んでいる@付きのフォントに変更し
>て「適用」を押してみます。

こういう「とんでもないこと」をしていると、エクスプローラー・マイコンピューター等ではアイコンが全て無茶苦茶になる場合があります。 (^^;;;

また、全く別の件ですが、 Window 右上欄外の【_□X】というボタンが無茶苦茶になる場合が時々あります
(あのボタンは「絵」ではなく「文字」です。)。

コレ、どちらもフォントキャッシュが壊れたんですね。

一番簡単な解決方法(教える側にとって)は、一旦セーフモードで起動してみるということです
(セーフモードで起動すると、自動的に Windows はフォントキャッシュを一旦削除する)。
画面が異常な表示になったときに、一番ポピュラーな解決策です。

一番早い解決方法(使っている側にとって)は、Windows フォルダにある ShellIconCache (拡張子なし)という Hidden 属性の
ファイルを削除してからログアウト・再ログインすることです。
勿論、 hidden (隠し属性)出スから、Windows の設定が「全てのファイルを表示する」になっていなければ見えません。

9049 Re:フォントに関する TIPS Ogo 2000/12/21-09:10
記事番号9048へのコメント
>一番早い解決方法(使っている側にとって)は、Windows フォル
>ダにある ShellIconCache (拡張子なし)という Hidden 属性の
>ファイルを削除してからログアウト・再ログインすることです。

ShellIconCache (拡張子なし)はアイコンのキャッシュだって。

ttfCache(拡張子なし)がフォントのキャッシュです。

勿論、 hidden 属性。

9056 Re:全角ハイフンを縦書きフォントはないの? xeno 2000/12/21-17:26
記事番号9047へのコメント
>例えば「MSゴシック」がインストールされていれば、自動的に
>「@MSゴシック」も「選択できるべきフォント」としてリスト
>に含まれるのです(要するに、日本語フォントは通常の横書きの
>デザインとは別に、縦書きにする場合のデザイン補足追加情報も
>持っている)。

ということは、ハイフンに関しては、縦書きにする場合の補足追加情報が含まれていないため、
縦書きでの出力が出来ないということですね。(実際、他のアプリでも縦書き時に縦長では出力されないようです)

>「指定する部分」で「フォント」項目に設定が存在する内容、例
>えば「アイコン」を指定し、その「フォント」をリストボックス
>1番上の選択肢にズラッと並んでいる@付きのフォントに変更し
>て「適用」を押してみます。

早速職場のノートPC(Win98SE)で試してみたのですが、フォントのリストボックスに@付きのフォントはリストアップされませんでした。
他にも職場にあるPCを手あたり次第調べたところ、NT WorkstationがインストールされているPCでは縦書きフォントがありましたが、
Win95・98・98SE では見つかりませんでした。

Ogo さんは WinNT 系をお使いなのではないでしょうか?

9059 全角ハイフンを縦書きで印刷するには Ogo 2000/12/21-19:01
記事番号9056へのコメント
>他にも職場にあるPCを手あたり次第調べたところ、NT Workstation
>がインストールされているPCでは縦書きフォントがありましたが、
>Win95・98・98SE では見つかりませんでした。
>Ogo さんは WinNT 系をお使いなのではないでしょうか?

あぁ、ホントだ。 95/98 では@付きフォントはリストアップされないですね。

じゃぁ、別の手段で確認してみましょう。

アクセサリの「外字エディタ」を起動して下さい。
「ファイル」メニューから「フォントの選択」で「標準の外字」を選びます
(最後には破棄終了しますから、なんでもいいのです)。

次に同じメニューから「コードの選択」で任意のコードを選びます
(最後には破棄終了しますから、なんでもいいのです)。

ここで「ウィンドウ」メニューから「参照」を選び、「フォント」ボタンでリストアップされるフォントの種類を確認して下さい。
「フォント名」の最上部には「@」付きの日本語フォント名がずらりと並んでいると思いますが?

さて、@MSゴシックを選んで、(冒頭の1画面分は半角フォントなので縦書き文字ではありません)
第2画面以降の全角文字を見て見ます。
「全角ハイフン」とは Shift JIS コードで 815D ですね。
Shift JIS コードで 817C の文字は数値計算用の記号の「マイナス」ですから縦書きにはなり得ませんね
(あれが縦書きになってしまったら、次の 817D の「±」はどうにもならん)。

で、これを見てて気がついたんですが、桐はちゃんとレポート定義の時に「テキストオブジェクト」の「書式」タブで「文字の方向」
を「縦書き」にしておけば自動的に「@付きフォント」で印刷する仕様になっているんですね。

ただし、普通みんなが「ハイフン」だと思っている全角文字は実は「マイナス」だから、
縦書きという発想自体が無理難題なんです。

ここまで判れば、印刷したいデータを「マイナスをハイフンで置換する」ことで全て解決がつきますね。
テキストオブジェクトにはこのように設定します。

#文字置換(【本来印刷したかった内容】,"−","‐")

なお、「ハイフン」の文字コードが「Shift JIS コードで 815D」という件ですが、「Shift JIS コードで 815C」は「ダッシュ」で、
「Shift JIS コードで 815B」は「長音」ですね。
この3つはどれも「縦書き字形」が存在するので、印刷物の体裁を少しいじりたい場合は、どのコードで印刷しても良いでしょう。


9060 「ハイフン」と「マイナス」の区別 Ogo 2000/12/21-19:21
記事番号9059へのコメント

>ただし、普通みんなが「ハイフン」だと思っている全角文字は実は
>「マイナス」だから、縦書きという発想自体が無理難題なんです。

以前、「〜(波ダッシュ)」の半角が「~(チルダ)」なんておかしいのじゃないか――という話題をここでやりましたが、
この件でも同じですよね。

「−(マイナス)」の半角は「-」ですが、「‐(ハイフン)」の半角文字は存在しない。

「‐(ハイフン)」に対して #半角("‐") をかけても返って来る値は「‐(全角のハイフン)」です。


9062 やっと判りました。 xeno 2000/12/21-21:42
記事番号9060へのコメント
>「フォント名」の最上部には「@」付きの日本語フォント名がずら
>りと並んでいると思いますが?

やっと縦書きフォントが見えました。

また、Ogo さんの書かれたとおり、「Shift JIS コード 815D」のハイフンならきちんと縦書きで出力される事も確認しました。

また、ハイフンには半角は無いのですね。1バイト圏で使われている文字だと思っていましたのでびっくりしました。

携帯電話のアドレス帳などで英数カナは半角で入力していたのですが、
半角ハイフンだと思っていたのが実は半角マイナスだったとは・・・。

いろいろと勉強になりました。ありがとうございました。

9067 Re:「ハイフン」と「マイナス」の区別 Ogo 2000/12/22-01:38
記事番号9062へのコメント

>また、ハイフンには半角は無いのですね。1バイト圏で使われている
>文字だと思っていましたのでびっくりしました。

う〜ん、それがまた面倒な話で……
全角文字( JIS 規格)では「ハイフン」と「マイナス」は明らかに違う文字として定義されています。
縦書きになる/ならないの区別もこれ故です。

しかし、1バイト圏では元々「縦書き字形」とか「全角文字」という概念はないので「共用」しても問題が健在化しにくいいのです
(逆に、違う文字と認定してしまったら、画面上でどちらの文字かの判別が極めて困難になるでしょう)。

日本語では全角/半角の両字体があるため、可逆的に変換するためのルールを作る必要があります。

「‐」(全角ハイフン)を半角化したら「-」(半角マイナス=半角ハイフン)になるのに、
その「-」(半角マイナス=半角ハイフン)を再び全角化したら「−」(全角マイナス)ということでは、ナンセンスもいいところです(勿論、その逆も言えます)。

それでどちらか一方を選ぶなら、本来「電子計算機」であるコンピューターで「マイナス」を優先して「ハイフン」を特殊文字として扱う
ことは極めて自然な事ですよね。

だから、1バイト圏では(コンピューターの世界では)「ハイフン」=「マイナス」というのは正しい認識なのでしょう。

ということで「ハイフンには半角は無い」という表現が正しいか否か。
つまり「半角のハイフンは無い」が「1バイト文字のハイフン」なら存在する(=1バイト文字のマイナス)という線か。

#ユニコードと既存文字コード間でなかなか変換が理想的に行えない#理由はこの辺りにもあるんでしょう。
#「〜」と「 ̄」や「¥」と「\」等、既存の1バイト文字コードは#各国語間で別字形でありながら、
文字コードが同じという矛盾した#現象を収束させる方法が無い(日本語に限った話ではないのです)。


9069 Re:「ハイフン」と「マイナス」の区別 hidetake 2000/12/22-07:52
記事番号9067へのコメント
>#ユニコードと既存文字コード間でなかなか変換が理想的に行えない
>#理由はこの辺りにもあるんでしょう。

あと、拡張文字である IBM拡張漢字の取り扱いで、字形が全く同じであるにも関わらず、Windows では IBM自身が
設定したコード領域と、NEC が PC-9801 で設定したコード領域に設定したコード領域の2つにダブって登録されて
いるため、これをユニコードに変換し、また Shift_JISに戻す際はどのようにするとかの問題もあります。

実際に Windows 自身も長い名前の取り扱いで、現実に抱えている問題でもありますよね・・・


戻る