JP2016024643A - ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム - Google Patents

ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム Download PDF

Info

Publication number
JP2016024643A
JP2016024643A JP2014148527A JP2014148527A JP2016024643A JP 2016024643 A JP2016024643 A JP 2016024643A JP 2014148527 A JP2014148527 A JP 2014148527A JP 2014148527 A JP2014148527 A JP 2014148527A JP 2016024643 A JP2016024643 A JP 2016024643A
Authority
JP
Japan
Prior art keywords
character
style
hypertext document
characters
vertical writing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014148527A
Other languages
English (en)
Inventor
三木 克彦
Katsuhiko Miki
克彦 三木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kuiega kk
Original Assignee
Kuiega kk
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kuiega kk filed Critical Kuiega kk
Priority to JP2014148527A priority Critical patent/JP2016024643A/ja
Publication of JP2016024643A publication Critical patent/JP2016024643A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】現行のインターネットの仕組みやHTMLの仕様を何ら改変することなく完全にそのまま利用しつつ、横書きにしか対応できていないハイパーテキスト文書を、特別なプラグイン等を用いずにブラウザで表示する際に縦書きで表示させることができ、且つ閲覧者がブラウザ上で縦書きの文書中の文字の検索や選択、閲覧を可能とする。
【解決手段】ハイパーテキスト文書の中で縦書きにする箇所を指定し、指定された箇所内の実際の文字、及び実際の文字1文字毎のスタイルを取得し、指定された箇所内の文字の1文字毎に、取得したスタイルを定義づけするか又は別のスタイルを必要に応じて付加して定義づけし、定義づけされた文字を1文字ずつ縦方向に配置したハイパーテキスト文書を作成する。
【選択図】図1

Description

本発明は、横書きのハイパーテキスト文書を縦書きに変換する方法及びプログラムに関する。
ウェブサイト上で標準的に使用されているHTML(HyperText Markup Language)で記述されたHTML文書は、横書きのレイアウトに用いられることを前提としている。
したがって、縦書きの文書をウェブサイト上で表示させるための提案が従来からなされている。
特許文献1の縦書き日記型ウェブサイト提供システムによれば、縦書きレイアウトのHTMLデータの代わりに代替データを送信する構成が開示されている。
特許文献2の情報処理装置によれば、テキストをXML文書に変換する際に、テキスト内の文字列が縦書きか横書きかを解析し、解析した結果に基づいて設定画面を生成して設定画面を通じて指定される個々の条件に基づいて、個々の条件を示す情報にそれぞれタグが付された文字列を含む解析情報を作成することが開示されている。
特開2007−256997号公報 特開2009−59110号公報
特許文献1の構成によれば、閲覧者が任意で別途インストールを行う必要がある無料配布されたプラグイン上での縦書き表示が可能となるだけである。すなわち、特別なプラグインをインストールした閲覧者が、実際には横書きで構成されているウェブサイトを閲覧する際に、縦書きで表示された内容を閲覧できるのみである。
このため、閲覧者がブラウザを用いて文字を選択したり、また選択した文字を用いてインターネット上で検索をかけようとしても、文字の選択及び検索ができないという課題がある。
また、特許文献2の構成においては、テキストを縦書きに対応したXML文書に変換するために所定の操作が記載されているが、この構成も上記の特許文献1と同様に、閲覧者がブラウザを用いて文字を選択したり、また選択した文字を用いてインターネット上で検索をかけようとしても、文字の選択及び検索ができないという課題がある。
そこで本発明は上記課題を解決すべくなされ、その目的とするところは、現行のインターネットの仕組みやHTMLの仕様を何ら改変することなく完全にそのまま利用しつつ、横書きにしか対応できていないハイパーテキスト文書を、特別なプラグインのインストール等を用いずにブラウザで表示する際に縦書きで表示させることができ、且つ閲覧者がブラウザ上で縦書きの文書中の文字の検索や選択、閲覧を可能とする方法及びプログラムを提供することにある。
本発明にかかるハイパーテキスト文書の縦書きへの変換方法は、ハイパーテキスト文書を縦書きのハイパーテキスト文書に変換する方法であって、ハイパーテキスト文書の中で縦書きにする箇所を指定し、指定された箇所内の実際の文字、及び実際の文字1文字毎のスタイルを取得し、指定された箇所内の文字の1文字毎に、取得したスタイルを定義づけするか又は別のスタイルを必要に応じて付加して定義づけし、定義づけされた文字を1文字ずつ縦方向に配置したハイパーテキスト文書を作成することを特徴としている。
この方法によれば、取得したスタイルが定義づけされた文字を1文字ずつ縦方向に配置しているので、縦書きとなったハイパーテキスト文書の中で文字の検索や選択、閲覧を可能とすることができる。
また、前記スタイルを定義づけする際に、該当する文字の文字占有領域と文字枠との間の横方向の間隔を計測し、該当する文字の文字占有領域と文字枠との間の横方向の間隔の左右両側が等しくなるようにスタイルを定義づけすることを特徴としてもよい。
この方法によれば、縦書きにした場合に文字が横方向にずれることなく、見た目よく整列させることができる。
また、前記スタイルを定義づけする際に、該当する文字が半角英数字及び通常括弧の場合には、該当する半角英数字又は通常括弧を文字占有領域の四隅のうちのいずれか1点を中心に90°回転させ、回転させた後の横方向の位置を他の文字の横方向の位置に合わせるように移動させるように、スタイルを定義づけすることを特徴としてもよい。
この構成によれば、半角英数字及び通常括弧を縦書きにする場合でも違和感なく縦書きに変換することができる。
また、前記スタイルを定義づけする際に、該当する文字が句読点及び拗促音の場合には、該当する句読点又は拗促音の位置を右上にシフトした位置となるように、スタイルを定義づけすることを特徴としてもよい。
この構成によれば、句読点及び拗促音を縦書きにする場合でも違和感なく縦書きに変換することができる。
本発明によれば、横書きのハイパーテキスト文書を縦書きに変換することができ且つ変換後の縦書きのハイパーテキスト文書中の文字に対して文字の検索や選択、閲覧を行うことができる。
HTML文書を縦書きへ変換する際の概略方法を示す説明図である。 HTML文書を縦書きへ変換する際の他の概略方法を示す説明図である。 変換プログラムの動作を説明するフローチャートである。 変換プログラムのタグの再配置時の動作について説明するフローチャートである。 各文字の相対的描画位置の設定を説明する説明図である。 プロポーショナルフォントの横方向位置を設定する際の説明図である。 半角英数字の配置を設定する際の説明図である。 起こし括弧の配置を設定する際の説明図である。 閉じ括弧の配置を設定する際の説明図である。 句読点の配置を設定する際の説明図である。 拗促音の配置を設定する際の説明図である。 リーダーの配置を設定する際の説明図である。 音引きの配置を設定する際の説明図である。 特殊起こし括弧の配置を設定する際の説明図である。 特殊閉じ括弧の配置を設定する際の説明図である。 段落頭の処理について説明する説明図である。 段落頭の処理について説明する説明図である。 行頭の処理について説明する説明図である。 括弧と句読点が連続して配置された場合の処理について説明する説明図である。 括弧と句読点が連続して配置された場合の処理について説明する説明図である。 括弧と句読点が連続して配置された場合の処理について説明する説明図である。 行内文字列の追い込みの処理について説明する説明図である。 行内文字列の追い出しの処理について説明する説明図である。 行内文字列の追い込みの処理について説明する説明図である。 行内文字列の追い出しの処理について説明する説明図である。 行内文字列のぶら下がりの処理について説明する説明図である。
本発明のハイパーテキスト文書の縦書きへの変換方法及びプログラムの全体構成について説明する。
なお、本発明でいうハイパーテキスト文書とは、HTML(HyperText Markup Language)、XHTML(Extensible HyperText Markup Language)などを含む。また、XHTMLにCSS(Cascading Style Sheets)等のスタイルシートを適用させた文書も含まれる。
なお、以下に説明する実施形態は、ハイパーテキスト文書の一例としてのHTMLの場合について説明している。
図1及び図2に、本発明の概略の概念図を示す。webサイトなどでHTML文書を公開しようとする公開者は、一般的なワープロソフト(wordなど)を用いて文書を作成してからHTML変換するか、またはHTML文書作成用ソフト(Dreamweaverなど)から、又はHTMLを直接入力して文書を作成する。HTML文書を直接作成する場合はもちろん、ワープロソフトで作成した文書を作成した場合も作成されたHTML文書は横書きとなっている。
図1の場合は、公開者がwebサーバー20に、本発明にかかる変換プログラムへのリンクを記述した横書きのHTML文書10を記憶させており、HTML文書10をブラウザで表示する際に本発明にかかる変換プログラムpを実行させて横書きのHTML文書10を縦書きのHTML文書12に変換させている。
図2の場合は、本発明にかかる変換プログラムを実行させる記述がされた横書きのHTML文書10が公開されているwebサイトにアクセスした閲覧者が、縦書きのHTML文書に変換する場合についての概略説明図である。
この場合、公開された横書きのwebサイト上に、本発明にかかる変換プログラムを実行させるためのインターフェイス用タグ14(図2では縦書と表示)を表示させるようにしておくとよい。閲覧者がこのタグ14をクリックすると、変換プログラムpが起動し、公開されたwebサイトが縦書きに変換される。
図1及び図2では、変換プログラムpは、公開するHTML文書が記憶されているwebサーバー20とは別のサーバー22に記憶されている例を図示したが、変換プログラムpは横書きのHTML文書を開示しているwebサーバー20内に記憶されていてもよい。
別のサーバー22としては、PC24と通信可能であるサーバーであればよく、例えばクラウド上で共有化されていてもよい。
次に、変換プログラムの概略動作について説明する。
変換プログラムは、まず指定されたHTML文書の中の構文を解析する動作を実行する。構文の解析動作は、実際の文字、及び実際の文字1文字毎のスタイルを取得することにある。
次に、変換プログラムは、指定された箇所内の文字の1文字毎に、取得したスタイルを定義づけする。
そして、変換プログラムは、取得したスタイルが定義づけされた文字を1文字ずつ縦方向に配置したHTML文書を作成する。
次に、図3〜図4に基づいて、変換プログラムの具体的動作について説明する。
まず、構文解析には、各ブラウザによって実装されているDOM(Document Object Model)API(Application Programming Interface)を用いて行うことができる。
例えば、縦書きへの変換を行いたいブロックレベル要素のidが「content」の場合、DOMAPIを用いてこのブロックレベル要素を取得する(ステップS100)。
このためにはjavascriptでは、
var elem=docment.getElementById(“content”)
という記載等により実行することができる。
次に、変換プログラムは、上記の構文解析によって取得したブロックレベル要素の、階層構造を取得する(ステップS102)。
DOMAPIを用いてこのブロックレベル要素の階層構造を取得するためにはjavascriptでは、
var children =elem.childNodes;
という記載により実行することができる。
このような階層構造の取得によって、純粋な文字列及び子階層のタグの情報の配列を取得することができる。
次に、変換プログラムは、取得した純粋な文字列について、そこに適用されているスタイル(書式)を取得する(ステップS104)。
DOMAPIを用いて純粋な文字列と、その文字に適用されているスタイルを取得するためにはjavascriptでは、
var ownerDocument=elem.ownerDocument;という記載で、このHTML文書構造の最上位のノードが取得できる。
また、var defaultView=ownerDocument.defaultView;という記載で、このHTMLファイルの基本VIEWの取得が実行できる。
また、var style=defaultView.getComputedStyle(elem,null);という記載でelemに適用されているスタイルの取得が実行できる。
なお、古いMicrosoft Internet Explorerでは、defaultViewプロパティやgetComputedStyle()メソッドが存在しない。
ただし、Internet Explorerでは要素それぞれがcurrentStyleというプロパティを保持していて、これによってそのスタイル(書式)を取得できるため、
var style = elem. currentStyle;
で同様のことが可能である。
このため、本発明におけるプログラム実行時に、そのプログラムが実行されているブラウザを判別して別々の方法でスタイル(書式)を取得するようにするとよい。
上記の記述により、上記(0023)で取得したelemのスタイルが取得できる。したがって、純粋な文字列についてはすべてこのスタイルが適用されているということがわかる。
一方、上記(0024)で取得した子階層のタグについては、var children=子階層のタグへの参照.childNodes;で、やはり内部の純粋な文字列及び子階層のタグ情報を取得でき、
var style=defaultView.getComputedStyle(子階層のタグへの参照,null);で、同様にスタイル取得ができる。
これらを再帰的に行うことで、ブロックレベル要素内の全ての文字と、その文字に対するスタイル(書式)とを取得できる。
上述してきた工程により、指定範囲内の文字、文字のスタイルが取得できたとする。次いで、変換プログラムは取得した文字及び文字のスタイルに基づいて、これを縦書きに変換する作業を実行する。
最初に縦書きへの変換作業の概略と要点について説明する。
まず、フォントについてであるが、ブラウザで表示されている文字に使用されているフォントは、横書きを想定して策定されているものである。このため、このフォントをそのまま縦書きの文書に組み替えただけでは、縦書きのルールにそぐわない結果となる。
例えば、括弧類、句読点類、音引き、外国語文章などは横書き用に表示されるべき文字列であることから、これらについては変換プログラムにおいて、縦書き用に適正な文字列となるように処理がなされる。具体的な処理の方法については後述するが、例えば回転、反転、引き伸ばし、妥当な文字への置き換えなどによる。
続いて、変換プログラムによる縦書きへの変換作業の具体的方法について説明する。
変換プログラムは、文字コード1文字に対し、この文字コードに該当するスタイルを定義したタグを生成する(ステップS106)。
つまり、横書きの状態では、複数の文字列としてまとまった状態で定義づけされていたものに対し、縦書きに変換する際には、これらを1文字ずつバラバラにして定義づけをするところに本発明の大きな特徴がある。なお、連続する同一のスタイル(書式)要素については、それらを包含するHTMLタグを生成して一括で指定しても良い。
1文字ずつタグを生成する際には、複数種類のタグが利用可能であるが、<span>タグが最も望ましいと考えられる。<span>タグは、HTML及びXHTMLで規定されるタグであって、このタグで囲まれた範囲を1つのまとまりとして取り扱うことができるインライン要素のタグである。このタグ自体は特定の意味を持たないため、HTMLの規格に準拠しつつ本発明を実行するには最適と考えられる。
このタグの内部テキストとして、実際の文字、そこに適用するスタイルシートとして位置情報、書体、文字サイズ、色、フォントウェイトなどを記述することによって、該当する文字1文字の定義づけが行える。例えば、1文字ずつ次のような記述をすることにより、1文字ずつ定義づけする。
<span style=”position:absolute; left:10px; top:20px; font-family:serif; font-size:24px; color:red; font-weight:normal;”>日</span>
変換プログラムは、上述したように、縦書きに変換する文字列に対して1文字ずつタグによって定義づけを行った後、生成された複数のタグを、文書内での出現順序と同じ順序で配置する(ステップS108)。
この点も、変換プログラムにおける特徴点である。
つまりブラウザは通常HTMLを読み込んで解析する際に、そのHTML文書を左から右方向に読み込み、次に下段に下がって左から右に読み込みを行う。
このように、左から右へ、その後下に下がって左から右へという順番での読み込み順序は、HTMLやXHTMLの仕様であって、世の中に存在するいずれのブラウザを用いても変わらないものである。
したがって、たとえ本発明の変換プログラム無しでHTMLによって見かけ上縦書きになる文書を作成し、文章の順番としては上から下へ、次に左へ移動して上から下に読むことができるような状態であったとしても、ブラウザによる文書の解析は、左から右方向に読み込み、次に下段に下がって左から右に読み込みを行う。このため、その文字情報は、人間が理解可能な文書としての意味をなさなくなる。
ただし、一部の日本語表現についてのみ特別な日本語対応がなされているブラウザは存在するが、その対応は十分とは言い難く、またその数も少ない。日本語が世界的にみて特異な言語であることを考慮すると、これらのブラウザによる日本語表現が今後十分に改良される可能性は低いと考えられる。
これらのことから、本発明の変換プログラムは、各文字のタグを文書内での出現順序と同じ順序で配置することにより、縦書きに配置された文字列であってもブラウザは縦書きの読み順序と同じ順序で文字列を解析することを可能とし、現在において利用されているブラウザでも特別な対応を必要とせずに日本語の縦組みを実現する。
次に、上述したように1文字ずつ生成したタグを再配置する際(図3のステップS108)の変換プログラムの動作を、図4に基づいてさらに具体的に説明する。
まず変換対象となる元のブロックレベル要素の領域を取得する(ステップS200)が、これは構文解析として最初に行った動作(図3のステップS100)と同じ動作であるので、ここではその説明を省略する。
次に、元のブロックレベル要素をコピーし、その内部に含まれている要素をすべて削除する(ステップS202)。
DOMAPIを用いて元のブロックレベル要素をコピーし、その内部の要素をすべて削除するにはjavascriptでは、
var copy=elem.cloneNode(false);という記載で実行できる。
次に、コピーしたブロックレベル要素のidを別の名称に設定する(ステップS204)。ここでは、layoutと設定する。この設定は、javascriptでは、copy.id=”layout”;という記載で実行できる。
次に、元のブロックレベル要素の前にコピーしたブロックレベル要素を挿入する(ステップS206)。この動作は、javascriptでは、
Document.body.insertBefore(copy,elem);という記載で実行できる。
コピーしたブロックレベル要素の挿入は、元のブロックレベル要素の後ろでもよく、この場合javascriptでは、
Document.body.insertBefore(copy,elem.nextSibling);という記載で実行できる。
次に、元のブロックレベル要素を非表示にする(ステップS208)。この動作は、javascriptでは、
elem.style.display=”none”という記載で実行できる。
変換対象のHTML文書の解析はすでに行われているので、元のブロックレベル要素を削除してしまっても構わないが、縦書きでは都合が悪かった場合に元の文書を復元することを考慮して非表示にしておくことが望ましい。
そして次に、変換プログラムは、実際の文字配置領域を定義する(ステップS210)。
文字配置領域の定義は、変換プログラム実行時に渡された1行の文字数、行数、上下左右のマージン、描画可能段数、段間幅、複製されたブロックレベル要素の領域によって行われる。
1行の文字数、行数、上下左右のマージン、描画可能段数、段間幅については、HTML文書を公開する公開者があらかじめ設定してもよいし、閲覧者が設定できるようにしておいても、どちらでもよい。
次に、変換プログラムは、各文字の相対的描画位置を設定する動作を行う(ステップS212)。
この動作については図5〜図26に示し、以下に詳細に説明する。ただし、これらは複雑な日本語組版ルールの一例であり、必ずしもこの通りでなくとも構わない。
図5は、通常文字の相対的描画位置の設定の基本例である。通常文字の周囲に所定範囲の正方形状の全角文字枠を設定する。この全角文字枠の大きさは、通常文字の種類にかかわらずすべて同一とする。また、全角文字枠の基準位置は左上隅とする。
また、ここでいう通常文字とは、漢字、ひらがな、カタカナ、全角英数字、記号類をいう。
本発明においては以下の処理を行うにあたり、これらの文字を含有するタグについて、
line-height: lem;
というスタイルをあらかじめ適用することを推奨する。これはその行高を1文字分に制限するための書式であり、回転を正しく行うにあたって重要な要素である。
なお、通常ブラウザ上で表示されるフォントは、プロポーショナルフォントと呼ばれるフォントがデフォルトである。このプロポーショナルフォントは、その文字デザインによって、文字占有領域の幅が変わるものである。
そこで、変換プログラムは、図6に示すように、該当する文字の文字占有領域と文字枠との間の横方向の間隔を計測し、該当する文字の文字占有領域と文字枠との間の横方向の間隔の左右両側が等しくなるようにしている。
図6に示す例では、「り」というプロポーショナルフォントについて、文字占有領域と文字枠との間の横方向の間隔の左右両側が等しくなるようにしている。
横書きの「り」は、実際の文字占有領域は全角文字枠に対して左に偏って配置されており、右側に隙間が空いている。これをこのまま縦書きにすると、「り」の文字は他の文字よりも左側にずれた位置になってしまうので、これを真ん中に位置させる必要がある。
そこで、変換プログラムは、実際の文字占有領域の横方向の幅Yと全角文字枠の横方向の幅Xの差X−Yを算出する。次いで変換プログラムは、(X−Y)/2を算出し、「り」の文字占有領域を(X−Y)/2だけ右へシフトする。
これにより、「り」の字は、縦書きに変換した場合であっても縦方向の中心に位置することができる。
次に、変換プログラムは、該当する文字が半角英数字の場合には、半角英数字の文字占有領域の四隅のうちのいずれか1点を中心に90°回転させ、その後横方向に移動させて、当該半角英数字を他の文字の横方向の位置に合わせる。
なお、半角英数字には、ASCII文字列のほか、他の外国語文字も含まれるものとする。
図7には、半角英数字の例として「i」の字の処理について示している。
まず、「i」の字を、文字占有領域の左上隅を中心に時計周りに90°回転させる。そして、その後右方向へ1文字分シフトする。
これにより、「i」の字は、縦書きに変換した場合であっても、半角英数字として横向きで読めるように処理される。
次に変換プログラムは、該当する文字が通常起こし括弧の場合には、通常起こし括弧の文字占有領域の四隅のうちのいずれか1点を中心に90°回転させ、その後横方向に移動させて、当該通常起こし括弧を他の文字の横方向の位置に合わせる。
なお、通常起こし括弧には、「({等の括弧類のほか、環境異存文字も含めるものとする。
図8には、通常起こし括弧の例として「の処理について示している。
まず、「を文字占有領域の右下隅を中心に時計周りに90°回転させる。そして、その後左方向へ1文字分シフトする。
これにより、「は、縦書きに変換した場合であっても、通常起こし括弧として縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字が通常閉じ括弧の場合には、通常閉じ括弧の文字占有領域の四隅のうちのいずれか1点を中心に90°回転させ、その後横方向に移動させて、当該通常閉じ括弧を他の文字の横方向の位置に合わせる。
なお、通常閉じ括弧には、」)}等の括弧類のほか、環境異存文字も含めるものとする。
図9には、通常閉じ括弧の例として」の処理について示している。
まず、」を文字占有領域の左上隅を中心に時計周りに90°回転させる。そして、その後右方向へ1文字分シフトする。
これにより、」は、縦書きに変換した場合であっても、通常閉じ括弧として縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字が句読点の場合には、その位置を右上にシフトさせる。
句読点には、、。,.などが含まれる。
図10には、句読点の例として句点「。」の処理について示している。
まず、「。」は横書きの状態では、全角文字枠の左下に位置している。これを全角文字枠内の右上にシフトする。具体的には、上に1/2文字分、右に1/2文字分シフトすればよい。
これにより、句点「。」は、縦書きに変換した場合であっても、縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字が拗促音の場合には、その位置を右上にシフトさせる。
拗促音には、ぁぃぅぇぉっなどが含まれる。
図11には、拗促音の例として「っ」の処理について示している。
まず、「っ」は横書きの状態では、全角文字枠の左下に位置している。そこで変換プログラムは、実際の文字占有領域の横方向の幅Yと全角文字枠の横方向の幅Xの差X−Yを算出する。次いで変換プログラムは、X−Yだけ「っ」を右へシフトする。そして、変換プログラムは、「っ」を上へ所定の距離だけシフトする。この所定距離は、あらかじめ設定しておく距離であるが、1文字分の距離の10〜15%程度の距離をシフトすればよい。
これにより、拗促音「っ」は、縦書きに変換した場合であっても、縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字がリーダー類の場合には、リーダー類を横方向の中心位置で90°回転させる。
リーダー類には、… ・・ − ― 〜などが含まれる。
図12には、リーダー類の例として「…」の処理について示している。
「…」の横方向の中心は3つの点の中止の点であるので、この点を中心に90°回転させる。すると、「…」は縦方向に伸びる3つの点となる。
これにより、リーダー類「…」は、縦書きに変換した場合であっても、縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字が音引きの場合には、音引きを横方向の中心位置で左右反転させた後、横方向の中心位置で90°回転させる。
音引きとは、ーのことである。
図13には、音引き「ー」の処理について示している。
まず、変換プログラムは「ー」の横方向の中心で左右反転させる。次いで、横方向の中心を回転中心として90°回転させる。すると、「ー」は縦方向に音引きとなる。
これにより、音引き「ー」は、縦書きに変換した場合であっても、縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字が特殊起こし括弧の場合、他の文字に置き換えをして、その後左右反転し、右下にシフトさせる。なお、以下特殊起こし括弧及び特殊閉じ括弧は、明細書で適切に表現できないので、図面を参照。
特殊起こし括弧とは、横書きでは“であるが、縦書きでは"となるべき文字のことをいう。
図14には、特殊起こし括弧の処理について示している。
まず横書きの特殊起こし括弧「“」を縦書きの「"」に置き換える。次に、横方向の中心位置を基準に置き換え後の「"」を左右反転する。そして、左右反転により「″」となった特殊起こし括弧を、右下にシフトする。具体的には、下に1/2文字分、右に1/2文字分シフトすればよい。
これにより、特殊起こし括弧は、縦書きに変換した場合であっても、縦書きに適した状態で読めるように処理される。
次に変換プログラムは、該当する文字が特殊閉じ括弧の場合、他の文字に置き換えをして、その後左右反転し、左上にシフトさせる。
特殊閉じ括弧とは、横書きでは”であるが、縦書きでは"となるべき文字のことをいう。
図15には、特殊閉じ括弧の処理について示している。
まず横書きの特殊閉じ括弧「”」を縦書きの「"」に置き換える。次に、横方向の中心位置を基準に置き換え後の「"」を左右反転する。そして、左右反転により「″」(本明細書は横書きであり、適切なフォントは存在していない)となった特殊閉じ括弧を、左上にシフトする。具体的には、上に1/2文字分、左に1/2文字分シフトすればよい。
これにより、特殊閉じ括弧は、縦書きに変換した場合であっても、縦書きに適した状態で読めるように処理される。
図6〜図15までの説明は、各文字において横書きを縦書きにする際に必要な処理であった。
以下、縦書きになったときの行頭及び行末における処理について説明する。
まず、縦書きの場合、段落頭は1文字分開けることが原則となっている。このため、段落頭に起こし括弧が配置された場合の処理を説明する。
図16に示すように、段落頭起こし括弧半角のルールが指定されている場合において、変換プログラムは、段落頭に起こし括弧半角が配置された場合には、起こし括弧半角を全角1文字分下へシフトし、半角分上へシフトする。
図17に示すように、段落頭起こし括弧全角のルールが指定されている場合において、変換プログラムは、段落頭に起こし括弧全角が配置された場合には、起こし括弧全角を全角1文字分下へシフトする。
また、段落頭起こし括弧半角のルールが指定されている場合において段落頭ではなく、単なる行頭に起こし括弧半角が配置されている場合には、図18に示すように、起こし括弧半角を半角分上へシフトする。
ただし、段落頭起こし括弧全角のルールが指定されている場合において単なる行頭に起こし括弧全角が配置されている場合には、シフト等の処理をせずそのままである。
なお、行末に閉じ括弧が配置された場合は、閉じ括弧が半角、全角いずれであっても、シフト等の処理をせずそのままである。行末の閉じ括弧を半角にするルールが適用されている場合の処理は、(0069)以降で示す処理によって調整が行われる。
次に括弧と句読点が連続して配置された場合の処理について説明する。
起こし括弧と閉じ括弧が連続して配置された際には、シフト等の処理をせずそのままである。
起こし括弧と読点が連続して配置された際には、シフト等の処理をせずそのままである。
図19に示すように、起こし括弧と起こし括弧が連続して配置された場合には、下側の起こし括弧を半角分上へシフトする。
図20に示すように、閉じ括弧と起こし括弧が連続して配置された場合、閉じ括弧と読点が連続して配置された場合、及び閉じ括弧と閉じ括弧が連続して配置された場合には、下側の文字を半角分上へシフトする。
また、図21に示すように、読点と起こし括弧が連続して配置された場合、読点と閉じ括弧が連続して配置された場合、及び読点と句点が連続して配置された場合には、下側の文字を半角分上へシフトする。
次に、行内文字列の定義について説明する。
各文字の定義づけが完了したのち、行内での規則に基づいて縦方向の占有幅の調整が行われる。
例えば、図22に示すように、次の行頭に、行頭禁止文字である起こし括弧が位置する場合、起こし括弧を行末に追い込む必要が出てくる。
変換プログラムは、行全体の中で文字詰めが可能であるかどうか、文字と縦方向の占有幅を確認する。図22の例では、読点の下が半角分文字詰め可能な隙間がある。このため、変換プログラムは、読点の後の複数の文字を半角分上へシフトし、閉じ括弧を行末に収納させる。
図23のように、次の行頭に、行頭禁止文字が2つ連続で位置する場合、当該行の行末の文字を次の行頭に移動させる処置が必要となる。
変換プログラムは、行末の文字を次の行頭に移動させるとともに、当該行において余った隙間部分を埋めるように、各文字間の隙間をあける。図23の例では、行末の「字」という字を次の行に移動したので、行末に全角1文字分の隙間が空いている。そこで、縦方向の余り幅(全角1文字分)を全文字数―1で除算して得られた値だけ各文字間の隙間を開けるようにする。
図24のように、当該行末において、半角分の文字がはみ出しており、はみ出した次の文字が行頭可能文字である場合、変換プログラムは、行全体の中で文字詰めが可能であるかどうか、文字と縦方向の占有幅を確認する。図24の例では、読点の下に半角分文字詰め可能な隙間がある。このため、変換プログラムは、読点の後の複数の文字を半角分上へシフトし、行末のはみ出した字を行末に収納させる。
図25のように、当該行末において、半角分の文字がはみ出しており、はみ出した次の文字が行頭禁止文字である場合、変換プログラムは、はみ出した文字及び次の文字の2文字を次の行に移動させる。
変換プログラムは、行末の2文字を次の行頭に移動させるとともに、当該行において余った隙間部分を埋めるように、各文字間の隙間をあける。図25の例では、行末に半角分の隙間が空いている。そこで、縦方向の余り幅(半角1文字分)を全文字数―1で除算して得られた値だけ各文字間の隙間を開けるようにする。
図26に、行頭禁止文字をはみ出させる処理(ぶら下がり)について説明する。図26では、次の行頭に行頭禁止文字と読点が連速して配置される例を示している。
変換プログラムは、行全体の中で文字詰めが可能であるかどうか、文字と縦方向の占有幅を確認する。図26の例では、読点の下に半角分文字詰め可能な隙間がある。このため、変換プログラムは、読点の後の複数の文字を半角分上へシフトし、行頭禁止文字である閉じ括弧を行末に収納させる。また、句読点も行頭禁止であるが、行末ぶら下がりが許容される文字のため、このルールが適用される場合においては、図26の読点は閉じ括弧の下にはみ出す位置に配置する。
上述してきた工程を実行することにより、横書きの文字列を縦書きの文字列に変換した際の、日本語として通常の形態に変換することができる。
また、上述してきた実施形態では、純粋なjavascriptの記述を例に挙げたが、jQuery(javascriptコードをより容易に記述できるように設計されたjavascriptライブラリ)を利用することにより、実装が容易となり、またjQueryプラグインとして本発明に関わるプログラムを提供することにより、HTML文書作成者が特別な知識を必要とせずに容易に本発明を導入できる。また、必ずしも本発明に使用するプログラム言語はjavascriptでなくても良い。
10 HTML文書
12 HTML文書
14 タグ
20 サーバー
22 サーバー
24 PC
p 変換プログラム

Claims (8)

  1. ハイパーテキスト文書を縦書きのハイパーテキスト文書に変換する方法であって、
    ハイパーテキスト文書の中で縦書きにする箇所を指定し、
    指定された箇所内の実際の文字、及び実際の文字1文字毎のスタイルを取得し、
    指定された箇所内の文字の1文字毎に、取得したスタイルを定義づけするか又は別のスタイルを必要に応じて付加して定義づけし、
    定義づけされた文字を1文字ずつ縦方向に配置したハイパーテキスト文書を作成することを特徴とするハイパーテキスト文書の縦書きへの変換方法。
  2. 前記スタイルを定義づけする際に、該当する文字の文字占有領域と文字枠との間の横方向の間隔を計測し、該当する文字の文字占有領域と文字枠との間の横方向の間隔の左右両側が等しくなるようにスタイルを定義づけすることを特徴とする請求項1記載のハイパーテキスト文書の縦書きへの変換方法。
  3. 前記スタイルを定義づけする際に、該当する文字が半角英数字及び通常括弧の場合には、該当する半角英数字又は通常括弧を文字占有領域の四隅のうちのいずれか1点を中心に90°回転させ、回転させた後の横方向の位置を他の文字の横方向の位置に合わせるように移動させるように、スタイルを定義づけすることを特徴とする請求項2記載のハイパーテキスト文書の縦書きへの変換方法。
  4. 前記スタイルを定義づけする際に、該当する文字が句読点及び拗促音の場合には、該当する句読点又は拗促音の位置を右上にシフトした位置となるように、スタイルを定義づけすることを特徴とする請求項2又は請求項3記載のハイパーテキスト文書の縦書きへの変換方法。
  5. ハイパーテキスト文書を縦書きのハイパーテキスト文書に変換するプログラムであって、
    指定された範囲内のハイパーテキスト文書中の実際の文字、及び実際の文字1文字毎のスタイルを取得する機能と、
    指定された箇所内の文字の1文字毎に、取得したスタイルを定義づけする機能と、
    取得したスタイルが定義づけされた文字を1文字ずつ縦方向に配置したハイパーテキスト文書を作成する機能とをコンピュータに実行させることを特徴とするハイパーテキスト文書の縦書きへの変換プログラム。
  6. 前記スタイルを定義づけする機能は、
    該当する文字の文字占有領域と文字枠との間の横方向の間隔を計測し、該当する文字の文字占有領域と文字枠との間の横方向の間隔の左右両側が等しくなるようにスタイルを定義づけすることを特徴とする請求項5記載のハイパーテキスト文書の縦書きへの変換プログラム。
  7. 前記スタイルを定義づけする機能は、
    該当する文字が半角英数字及び通常括弧の場合には、該当する半角英数字又は通常括弧を文字占有領域の四隅のうちのいずれか1点を中心に90°回転させ、回転させた後の横方向の位置を他の文字の横方向の位置に合わせるように移動させるように、スタイルを定義づけすることを特徴とする請求項6記載のハイパーテキスト文書の縦書きへの変換プログラム。
  8. 前記スタイルを定義づけする機能は、
    該当する文字が句読点及び拗促音の場合には、該当する句読点又は拗促音の位置を右上にシフトした位置となるように、スタイルを定義づけすることを特徴とする請求項6又は請求項7記載のハイパーテキスト文書の縦書きへの変換プログラム。
JP2014148527A 2014-07-22 2014-07-22 ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム Pending JP2016024643A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014148527A JP2016024643A (ja) 2014-07-22 2014-07-22 ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014148527A JP2016024643A (ja) 2014-07-22 2014-07-22 ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム

Publications (1)

Publication Number Publication Date
JP2016024643A true JP2016024643A (ja) 2016-02-08

Family

ID=55271351

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014148527A Pending JP2016024643A (ja) 2014-07-22 2014-07-22 ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム

Country Status (1)

Country Link
JP (1) JP2016024643A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238706A (zh) * 2021-05-10 2021-08-10 北京字跳网络技术有限公司 一种视图展示方法、装置、设备及介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238706A (zh) * 2021-05-10 2021-08-10 北京字跳网络技术有限公司 一种视图展示方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
JP4344693B2 (ja) ブラウザの文書編集のためのシステムおよびその方法
US10185782B2 (en) Mode identification for selective document content presentation
US7051276B1 (en) View templates for HTML source documents
US8539342B1 (en) Read-order inference via content sorting
US20060117051A1 (en) Method of displaying data in a table
Sorge et al. Towards making mathematics a first class citizen in general screen readers
Sikos Web Standards: Mastering HTML5, CSS3, and XML
US7620903B1 (en) Simplified implementation of adaptable user interfaces
US9727537B2 (en) Application of a system font mapping to a design
Powers Beginning Css3
JP2016024643A (ja) ハイパーテキスト文書の縦書きへの変換方法及びハイパーテキスト文書の縦書きへの変換プログラム
Wyke-Smith Stylin'with CSS: a designer's guide
Sharma et al. Differences between HTML and HTML 5
Weyl What's new in CSS3
Olsson et al. The Ultimate CSS Reference
Teague CSS3: Visual QuickStart Guide
Hassan et al. The browser as a document composition engine
Bowers Pro CSS and HTML Design Patterns
Hammond Can LATEX profiles be rendered adequately with static CSS?
Chen et al. Transforming web pages to become standard-compliant through reverse engineering
Ramasamy Html & Css Programming Guide
Nuttayasakul MathML without Plugins using VML
Nolan et al. Scalable Vector Graphics
Dhital Design and Implementation of a CSS-based CODEML Viewer
Gandy et al. JavaScript: Creating Dynamic Web Pages