IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アマゾン テクノロジーズ インコーポレイテッドの特許一覧

特許7425214リフロー型コンテンツの動的レイアウト調整
<>
  • 特許-リフロー型コンテンツの動的レイアウト調整 図1A
  • 特許-リフロー型コンテンツの動的レイアウト調整 図1B
  • 特許-リフロー型コンテンツの動的レイアウト調整 図2
  • 特許-リフロー型コンテンツの動的レイアウト調整 図3
  • 特許-リフロー型コンテンツの動的レイアウト調整 図4
  • 特許-リフロー型コンテンツの動的レイアウト調整 図5A
  • 特許-リフロー型コンテンツの動的レイアウト調整 図5B
  • 特許-リフロー型コンテンツの動的レイアウト調整 図5C
  • 特許-リフロー型コンテンツの動的レイアウト調整 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-22
(45)【発行日】2024-01-30
(54)【発明の名称】リフロー型コンテンツの動的レイアウト調整
(51)【国際特許分類】
   G06F 40/103 20200101AFI20240123BHJP
   G06F 3/0483 20130101ALI20240123BHJP
【FI】
G06F40/103
G06F3/0483
【請求項の数】 15
(21)【出願番号】P 2022547742
(86)(22)【出願日】2021-02-03
(65)【公表番号】
(43)【公表日】2023-04-03
(86)【国際出願番号】 IB2021000383
(87)【国際公開番号】W WO2021176278
(87)【国際公開日】2021-09-10
【審査請求日】2022-08-04
(31)【優先権主張番号】16/782,659
(32)【優先日】2020-02-05
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】506329306
【氏名又は名称】アマゾン テクノロジーズ インコーポレイテッド
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】ウェンチオン リウ
(72)【発明者】
【氏名】プラノイ チャッコ バルギス
(72)【発明者】
【氏名】ヂーシュアン ワン
(72)【発明者】
【氏名】アーユシュ チャブラ
【審査官】成瀬 博之
(56)【参考文献】
【文献】特開2002-197088(JP,A)
【文献】特開平04-113453(JP,A)
【文献】特開2013-235379(JP,A)
【文献】特開2009-233908(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 40/00-40/58
G06F 3/048-3/04895
(57)【特許請求の範囲】
【請求項1】
電子書籍を格納する非一時的データストアと、
コンピュータ実行可能命令を含む少なくとも1つのコンピューティングデバイスと、
を備えたシステムであって、
前記電子書籍は、表示可能コンテンツおよびフォーマット情報を含む1つ以上のファイルとして格納され、前記表示可能コンテンツは、複数のリフロー型オブジェクトを含み、前記複数のリフロー型オブジェクトの少なくとも部分集合のうちの各リフロー型オブジェクトは、前記1つ以上のファイルのうちの1つのファイルで文字により表され、
前記コンピュータ実行可能命令は、実行されるとき、前記少なくとも1つのコンピューティングデバイスに、
前記電子書籍の前記表示可能コンテンツの一部を表示する要求を受信することと、
前記表示可能コンテンツの前記一部の開始位置を特定することと、
前記開始位置を含む現在の行のコンテンツをレイアウトするのに使用可能な幅または高さの量を表す使用可能な行表示の長さを特定することであって、前記使用可能な行表示の長さは、(a)水平書き込みモードの場合は表示領域の幅、または、(b)垂直書き込みモードの場合は前記表示領域の高さ、のうちの1つであることと、
前記電子書籍で定義された間隔プロパティに少なくとも部分的に基づいて、前記表示可能コンテンツの前記一部を表示用にレイアウトするときに前記現在の行に含めるべきと前記電子書籍が示す間隔の量を特定することであって、前記間隔プロパティは、前記現在の行に対するパディング、マージン、境界またはインデントのうちの1つ以上を含むことと、
前記現在の行に含めるべきと前記電子書籍が示す前記間隔の量が、前記使用可能な行表示の長さの閾値パーセンテージを超えることを特定することと、
前記間隔の量が前記閾値パーセンテージを超えると特定したことに応じて、前記現在の行は、前記電子書籍で定義された前記間隔プロパティにより示される様式とは異なる様式でレイアウトされるべきであると判断することであって、前記異なる様式では、表示対象である個々のリフローオブジェクトの表示サイズは変更されないことと、
前記異なる様式において、前記現在の行の所与の文字の前に複数の単位の空白が挿入されていない場合、スケーリング係数に基づいて前記現在の行の前記間隔プロパティを縮小するべきであると選択し前記現在の行の所与の文字の前に複数の単位の空白が挿入されている場合、前記現在の行の位置揃えプロパティを変更するべきであると選択することであって、前記異なる様式の選択は、前記電子書籍が示す前記間隔の量と最小値との比較に少なくとも部分的に基づき、前記最小値は、(a)水平書き込みモードの場合は右揃え、または、(b)垂直書き込みモードの場合は下揃え、のうちの1つをトリガーするルールに事前に関連付けられることと、
前記現在の行をレイアウトするために前記選択された異なる様式に従って、前記表示可能コンテンツの前記一部からの1つ以上のリフローオブジェクトのレイアウト位置を決定することであって、前記表示可能コンテンツの前記1つ以上のリフローオブジェクトの後に表示される追加のリフローオブジェクトは、前記現在の行に続く次の行の位置に割り当てられることと、
前記レイアウト位置に従って、表示する前記1つ以上のリフローオブジェクトをレンダリングすることと、
を実行させる、
システム。
【請求項2】
前記レイアウト位置は、グリッドを参照して配置され、前記グリッド内のリフローオブジェクトの相対位置は、表示用のリフローオブジェクトをレンダリングする際のそれぞれの相対表示位置を表す、
請求項1に記載のシステム。
【請求項3】
前記1つ以上のリフローオブジェクトのそれぞれは、表示時にグリフで表される、
請求項1に記載のシステム。
【請求項4】
前記現在の行は、垂直読み出しモードで表示され、
前記垂直読み出しモードでは、前記現在の行の第1の文字は、前記現在の行の第2の文字の上に配置される、
請求項1に記載のシステム。
【請求項5】
リフロー型ファイルの表示可能コンテンツを表示する要求を受信することと、
前記表示可能コンテンツの開始位置を特定することと、
表示対象である、前記開始位置を含む現在の行の使用可能な行表示の長さを特定することと、
前記リフロー型ファイルで定義された間隔プロパティに少なくとも部分的に基づいて、前記現在の行に含めるべきと前記リフロー型ファイルが示す間隔の量を特定することであって、前記間隔プロパティは、前記現在の行に対するパディング、マージン、境界またはインデントのうちの1つ以上を含むとと、
前記現在の行に含めるべきと前記リフロー型ファイルが示す前記間隔の量が、前記使用可能な行表示の長さに少なくとも部分的に基づいて設定された閾値を超えることを特定することと、
前記間隔の量が前記閾値を超えると特定したことに応じて、前記現在の行は、前記リフロー型ファイルで定義された前記間隔プロパティにより示される様式とは異なる様式でレイアウトされるべきであると判断することと、
前記現在の行のリフロー型コンテンツをレイアウトする前記異なる様式を選択することであって、前記異なる様式は、(a)前記現在の行の所与の文字の前に複数の単位の空白が挿入されていない場合、前記リフロー型ファイルにより示される前記間隔の量に対して代替の間隔の量を使用すること、または、(b)前記現在の行の所与の文字の前に複数の単位の空白が挿入されている場合、前記リフロー型ファイルにより示される位置揃えタイプよりも代替位置揃えタイプを適用すること、のうちの1つを含み、前記異なる様式では、表示対象である個々のリフローオブジェクトの表示サイズは変更されないことと、
前記現在の行をレイアウトするために前記選択された異なる様式に従って、前記表示可能コンテンツの一部からの1つ以上のリフローオブジェクトのレイアウト位置を決定することと、
前記レイアウト位置に従って、表示する前記1つ以上のリフローオブジェクトをレンダリングすることと、
を含むコンピュータ実施方法。
【請求項6】
前記使用可能な行表示の長さは、(a)水平書き込みモードの場合は表示領域の幅、または、(b)垂直書き込みモードの場合は前記表示領域の高さ、のうちの1つに基づく、
請求項5に記載のコンピュータ実施方法。
【請求項7】
前記使用可能な行表示の長さは、表示領域のサイズおよびem単位のサイズに少なくとも部分的に基づいて特定され、前記em単位の前記サイズは、現在の読み出し設定による個々の文字の表示サイズに関連付けられ、前記レイアウト位置は、グリッドを参照して配置され、前記グリッド内の個々のエントリにはそれぞれ、単一のリフローオブジェクトが割り当てられ、前記グリッド内のリフローオブジェクトの相対位置は、表示用のリフローオブジェクトをレンダリングする際のそれぞれの相対表示位置を表す、
請求項5に記載のコンピュータ実施方法。
【請求項8】
表示用にレンダリングされる前記1つ以上のリフロー型オブジェクトのそれぞれは、前記リフロー型ファイルで識別された個々のアジア言語文字であり、前記個々のアジア言語文字を表すグリフとしてレンダリングされる、
請求項5に記載のコンピュータ実施方法。
【請求項9】
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記代替の間隔の量が選択され、前記コンピュータ実施方法は、
事前定義されたスケーリング係数および前記現在の行の前記間隔プロパティに基づいて、前記代替の間隔の量を特定することをさらに含む、
請求項5に記載のコンピュータ実施方法。
【請求項10】
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記位置揃えプロパティの変更が選択され、前記コンピュータ実施方法は、
前記現在の行の所与の文字の前に複数の単位の空白が挿入されている場合、前記リフロー型ファイルで定義された前記間隔プロパティから、前記リフロー型ファイルの作成者は、前記リフロー型ファイルで定義された位置揃えプロパティにより示される位置揃えとは異なる位置揃えで前記現在の行が表示されるように意図した可能性が高いと、判断することと、
前記現在の行に対し、前記リフロー型ファイルで定義された前記間隔プロパティを適用するのではなく、前記異なる位置揃えを適用することと、
をさらに含む、
請求項5に記載のコンピュータ実施方法。
【請求項11】
前記リフロー型コンテンツは、(a)前記異なる位置揃えが右揃えである水平書き込みモード、または、(b)前記異なる位置揃えが下揃えである垂直書き込みモード、のうちの1つでレイアウトされる、
請求項10に記載のコンピュータ実施方法。
【請求項12】
前記現在の行をレイアウトする前記異なる様式は、前記現在の行に隣接して表示されるようにレンダリングされる後続の行には適用されない、
請求項5に記載のコンピュータ実施方法。
【請求項13】
コンピュータ実行可能命令を含む非一時的コンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピューティングシステムにより実行されるとき、
リフロー型ファイルの表示可能コンテンツを表示する要求を受信することと、
前記表示可能コンテンツの開始位置を特定することと、
表示対象である、前記開始位置を含む現在の行の使用可能な行表示の長さを特定することと、
前記リフロー型ファイルで定義された間隔プロパティに少なくとも部分的に基づいて、前記現在の行に含めるべきと前記リフロー型ファイルが示す間隔の量を特定することであって、前記間隔プロパティは、前記現在の行に対するパディング、マージン、境界またはインデントのうちの1つ以上を含むことと、
前記現在の行に含めるべきと前記リフロー型ファイルが示す前記間隔の量が、前記使用可能な行表示の長さに少なくとも部分的に基づいて設定された閾値を超えることを特定することと、
前記間隔の量が前記閾値を超えると特定したことに応じて、前記現在の行は、前記リフロー型ファイルで定義された前記間隔プロパティにより示される様式とは異なる様式でレイアウトされるべきであると判断することと、
前記現在の行のリフロー型コンテンツをレイアウトする前記異なる様式を選択することであって、前記異なる様式は、(a)前記現在の行の所与の文字の前に複数の単位の空白が挿入されていない場合、前記リフロー型ファイルで定義された前記間隔プロパティに対して代替の間隔の量を使用すること、または、(b)前記現在の行の所与の文字の前に複数の単位の空白が挿入されている場合、前記リフロー型ファイルにより示される位置揃えタイプよりも代替位置揃えタイプを適用すること、のうちの1つを含み、前記異なる様式では、表示対象である個々のリフローオブジェクトの表示サイズは変更されないことと、
前記現在の行をレイアウトするために前記選択された異なる様式に従って、前記表示可能コンテンツの一部からの1つ以上のリフローオブジェクトのレイアウト位置を決定することと、
前記レイアウト位置に従って、表示する前記1つ以上のリフローオブジェクトをレンダリングすることと、
を含む動作を前記コンピューティングシステムに実行させる、
非一時的コンピュータ可読媒体。
【請求項14】
2つ以上の前記間隔プロパティの各々は、前記リフロー型ファイルで、少なくとも(a)間隔タイプを表すマークアップタグ、および、(b)対応する間隔タイプの間隔の長さを表す関連単位数により定義され、前記現在の行に含めるべきと前記リフロー型ファイルが示す前記間隔の量を特定することは、
2つ以上の前記間隔プロパティの前記各々の間隔プロパティのem単位の合計を特定することと、
個々のem単位の現在の表示サイズに基づいて、前記合計の表示の長さをピクセルで特定することと、
を含む、
請求項13に記載の非一時的コンピュータ可読媒体。
【請求項15】
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記代替の間隔の量が選択され、前記動作は、
スケーリング係数および前記現在の行の前記間隔プロパティに基づいて、前記代替の間隔の量を特定することをさらに含む、
請求項13に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年2月5日に出願された「DYNAMIC LAYOUT ADJUSTMENT FOR REFLOWABLE CONTENT」と題する米国特許出願第16/782,659号に対する優先権を主張し、その全体が参照により本明細書に組み込まれるものとする。
【背景技術】
【0002】
書籍または他の読み物の発行者を含むコンテンツプロバイダは、ますます多くのコンテンツを電子形態で出版および配布している。このコンテンツには、書籍、雑誌、新聞、ニュースレター、マニュアル、ガイド、参考文献、記事、レポート、文書など、物理的印刷形態でも存在し得る従来の媒体が含まれる。発行者またはコンテンツ作成者は、通常、コンピュータ、携帯電話、タブレット、電子書籍リーダ、または他の電子デバイス上に配布され読まれる電子書籍など、対応する電子版を設計するとき、物理的な書籍(または雑誌、またはその他の出版物)の印刷デザインを参照する。
【0003】
電子書籍ファイルを設計および作成するときに、多くの発行者またはコンテンツ作成者は、様々な読書ユーザが多くの場合、印刷書籍の固定型レイアウトと比べて、潜在的に広範囲に異なる画面サイズ、表示解像度、デバイスの向き(縦向きや横向きなど)および読み出し設定(様々なフォントおよびフォントサイズなど)のデバイスにわたり、電子書籍または同様のコンテンツを読み得ることを、十分に考慮していない。その結果、発行者は、電子書籍ファイルにおける間隔およびテキストプロパティを指定し得、これにより、特定サイズの画面において、特定の読み出し設定(電子コンテンツの作成時に参照された印刷書籍ページまたは特定の表示サイズに、閲覧画面のスペースおよび寸法を近づける読み出し設定など)で、閲覧ユーザに対し適切な表示が行われるが、他のデバイスのユーザまたは他の読み出し設定を使用するユーザに表示されたとき、使用可能表示スペースの使用効率の低下、またはコンテンツの損失(コンテンツがディスプレイの閲覧領域外に落ちるなど)が生じる。
【0004】
様々な発明的特徴の実施形態が、以下の図面を参照して説明される。図面は、本明細書で説明される例示的な実施形態を示すために提供され、本開示の範囲を限定することは意図されていない。
【図面の簡単な説明】
【0005】
図1A】電子書籍リーダデバイスにおける、既存の方法を使用した、2つの異なる解像度または読み出し設定による、リフロー型ファイルのコンテンツのサンプル表示を示す。
図1B】電子書籍リーダデバイスにおける、既存の方法を使用した、2つの異なる解像度または読み出し設定による、リフロー型ファイルのコンテンツのサンプル表示を示す。
図2】2つの異なるサイズおよび向きの表示領域でのリフローオブジェクトのサンプルグリッドレイアウトを示す。
図3】電子書籍などのリフロー型ファイルからのコンテンツを表示するための例示的な方法の流れ図である。
図4】リフロー型ファイル内のリフローオブジェクトのレイアウト情報を決定するための例示的な方法の流れ図であり、リフローオブジェクトの個別の行の間隔プロパティを調整することを含む。
図5A】電子書籍リーダデバイスにおける、既存の方法を使用したリフロー型ファイルからのコンテンツのサンプル表示を示し、リフロー型ファイルで定義された間隔プロパティに部分的に起因して、コンテンツは表示されない。
図5B図5Aと同じデバイス設定での同じリフロー型ファイルのコンテンツのサンプル表示を示し、コンテンツのレイアウトを依然としてリフロー型ファイルの作成者の本来の意図と厳密に一致させながら、コンテンツ損失を防ぐように、本明細書で説明される方法が適用されている。
図5C】電子書籍リーダデバイスにおけるリフロー型ファイルからのコンテンツのサンプル表示を示し、本来意図されたレイアウトと厳密に一致させるために、コンテンツ損失を防ぎ、リフロー型ファイルで定義された間隔プロパティの分析に基づいて行の位置揃えを変更するように、コンテンツレイアウトが調整されている。
図6】本明細書に説明される特徴のうちの1つ以上を実施し得るコンピューティングシステムの例示的なアーキテクチャを描くブロック図である。
【発明を実施するための形態】
【0006】
概して説明すると、本開示の態様は、電子書籍などのリフロー型ファイルを表示するときに、間隔プロパティを動的に調整することに関する。いくつかの実施形態によれば、リフロー型ファイルで定義された間隔を適用すると、リフロー型ファイルの作成者の意図と一致する可能性が低いコンテンツレイアウト、および/またはコンテンツが出力媒体の可視表示領域外に表示されるコンテンツレイアウトになる可能性が高いと、システムが判断した状況では、間隔は調整され得る。例えば、上記で論述されたように、発行者は、通常、対応する電子書籍の間隔プロパティを設定するとき、印刷書籍のデザインおよびフォーマットを参照する。これにより、特定の表示サイズおよび読み出し設定では適切に表示される、インデント、パディング、または他の間隔を指定した電子書籍が作成されることがあるが、他の表示状況では劣ったレイアウトまたはコンテンツ損失が生じる(例えば表示可能領域外にコンテンツが配置される)。これらおよび他の問題に対処するために、本開示の態様は、電子書籍または他のリフロー型ファイルの現在の表示設定および指定された間隔プロパティの分析に基づいて、表示時に、テキストまたはオブジェクトの特定の行に関して、間隔の動的縮小または位置揃え設定の変更を行う方法を含む。
【0007】
下記でさらに説明されるように、本明細書で説明されるシステムは、表示するリフロー型コンテンツの所与の行を、対応するリフロー型ファイルで本来定義された間隔プロパティとは異なり得る様式で、レイアウトし得る。例えば、所与の行に含まれるべきとリフロー型ファイルが示す間隔の量が、使用可能な行表示の長さに少なくとも部分的に基づいて設定され得る閾値を超える場合(間隔の量が、使用可能な行表示の長さの90%を超えるなど)、行内のリフローオブジェクトの表示サイズを調整することなく、行の合計間隔を減らすように、行のレイアウトが調整され得る。調整レイアウトを決定することは、リフロー型ファイルで定義された間隔プロパティに対して縮小されたスペースの量を利用すること、またはリフロー型ファイルにより示される位置揃えタイプとは異なる位置揃えタイプを適用することを含み得る。動的間隔調整および/または位置揃え変更に対するこれらおよび他の手法が、本明細書でさらに説明される。
【0008】
電子出版およびタイポグラフィの分野で知られているように、リフロー型ファイルは、例えば所与の事例における使用可能表示スペースに基づいて、出力媒体の異なる寸法およびサイズに適応した様式でレイアウトおよび表示することができるコンテンツを含み得る。周知のように、リフロー型ファイルは、リフローオブジェクトを含み得、これは、所与のサイズのウィンドウまたはディスプレイに提示されるように「リフロー」され得る。コンテンツをリフローさせることは、概して、ファイル内の次のリフローオブジェクトが現在の行に収まらないとき、表示領域内の新たな行に配置するなど、リフローオブジェクトの行分割を変更することを指し得る。通常、リフローオブジェクトは、表示に提供され得る1つ以上の文字(letters)、文字(characters)、記号、数字、グラフィックスなどの選択を含み得る。
【0009】
下記で論述されるように、本開示の態様は、それぞれが異なる数の文字(英語の単語など)を含み得るリフローオブジェクトとは対照的に、各リフローオブジェクトが単一の文字(アジアのスクリプトまたは言語の文字など)である実施形態で、特に有用であり得る。リフロー型ファイルは通常、テキストデータとして表示される文字または他のコンテンツを特定する(Unicode規格または他のフォーマットを使用してなど)。当技術分野で周知のように、次にこれらの文字は、表示に使用される特定のフォントまたは書体で所与の文字を表すために使用されるグリフなど、対応するグリフとして表示され得る。他の事例では、文字または他のリフローオブジェクトは、「Generating Image-Based Reflowable Files for Rendering on Various Sized Displays」と題する米国特許第7,966,557号に記載されるように、リフロー型ファイルに含まれる、またはリフロー型ファイルに関連付けられた画像データにより、定義され得る。さらなる事例では、リフロー型ファイルは、トークンベースのリフロー型ファイルであり得、「Converting Digital Images Containing Text to Token-Based Files for Rendering」と題する米国特許第7,460,710号に記載されるように、それぞれが数学的に曲線形状を表すベクトル化されたトークンにより、リフローオブジェクトが表される。いくつかの実施形態では、リフロー型ファイルは、フォントベースのコンテンツ(例えばフォントに関連付けられたグリフとしてレンダリングされる文字)と、画像ベースのコンテンツ(例えば一意的な文字、グラフィック、絵文字、および/または他の表示用のビジュアルコンテンツを表す、リフロー型ファイル内で定義された画像データ)と、の混合を含み得る。
【0010】
いくつかの実施形態では、本明細書で説明されるリフロー型ファイルは、電子出版物(「EPUB」)フォーマットのファイル、または同様に少なくとも部分的にマークアップ言語に依存してフォーマットおよび他の表示情報を示す独自仕様のファイルフォーマットであり得る。例えば、このようなファイルフォーマットは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)および/またはカスケードスタイルシート(CSS)に部分的に依存し得る。例えば、リフロー型ファイルは、テキストコンテンツのスタイルおよび/または構造を記述するマークアップ情報と共に、表示を目的としたテキストを含み得る。当技術分野で周知のように、単一の電子書籍または他のリフロー型ファイルは、複数のファイルまたはサブファイルを含み得る。例えば、EPUBファイルは通常、複数のファイル(1つ以上のHTMLファイル、スタイルシート、画像など)を含むアーカイブファイルとして実施される。
【0011】
英語などの多くの言語は、テキスト行内で左から右に連続する文字、および上から下に連続するテキスト行により、水平に書かれるまたは表示されるが、多くのアジアの言語またはスクリプト(中国語、日本語および韓国語のスクリプトなど)は、水平または垂直に書くことができる。例えば、デジタル出版では、このような言語の電子書籍は、水平モード(水平書き込みモードまたは水平読み出しモードと称され得る)または垂直モード(垂直書き込みモードまたは垂直読み出しモードと称され得る)のいずれかで表示され得る。垂直モードでは、テキスト行内の連続する文字は、垂直行内で上から下に進み得、連続するテキスト行は、右から左に進み得る。従って、このような事例では、現在の垂直テキスト行の下部に収まらないリフローオブジェクトは、現在の行の左側に配置された連続する行の上部にリフローされ得る。
【0012】
図1Aおよび図1Bは、電子書籍リーダデバイスにおける、既存の方法を使用した、2つの異なる解像度または読み出し設定による、リフロー型ファイルのコンテンツのサンプル表示を示す。図1Aおよび図1Bのコンテンツが表示される電子書籍または他のリフロー型ファイルは、2つの図で同じであり得るが、異なる表示設定または読み出し設定に従ってレンダリングされ得る。図1Aおよび図1Bは、特定のリフロー型ファイルのコンテンツを表示する典型的な既存の方法により、コンテンツ損失、あるいはコンテンツの望ましくない出力または視覚的配置がどのように生じ得るかを示す。
【0013】
所与の実施例におけるデバイス102Aは、例えば、電子書籍リーダデバイス、携帯電話、またはタブレットコンピューティングデバイスであり得る。デバイス102Aの画面に表示される表示コンテンツ104Aは、垂直書き込みモードで表示される日本の電子書籍のコンテンツである(例えば上記で論述されたように、文字は垂直行で上から下へ読み出され、連続する行は右から左へ配置される)。図1Aに表示されるように、デバイス102Aは、比較的小さいフォントサイズを含む読み出し設定で構成され得る。この小さなフォントサイズでは、コンテンツのレイアウトおよびテキスト配置は適切に表示され、少なくとも発行者(または電子書籍ファイルの他の作成者)のレイアウト意図に近くあり得る。
【0014】
提供される電子書籍のコンテンツは、例えば、フォントサイズに比例する単位(em単位など)の間隔を含み得る。当技術分野で周知のように、通常、1emは現在のフォントサイズに対応し、例えば、8ポイントのフォントサイズの場合、1emは8ポイントに相当する。例えば、電子書籍が所与の行に関して特定の固定数のem単位のパディングを示す場合(例えばファイルが「パディング:5em」などのプロパティを含む場合)、既存の方法に従って、その行の最初に表示される文字の前に含まれるパディングまたは余白の量は、通常、選択されたフォントポイントサイズが大きいほど、合計ピクセルの数が多くなるように、スケーリングされる。所与の行の間隔の合計量は、電子書籍で定義された間隔および/またはテキストプロパティ、数ある中でも、パディング量、マージン量、境界量および/またはインデント量などの組み合わせに、基づき得る。
【0015】
図1Bは、デバイス102Aと同じデバイス102Bにおいて、典型的な既存の表示方法により、図1Aのコンテンツに関してフォントサイズを拡大した効果を示す。示されるように、この比較的大きいフォントサイズでは(図1Aと同じ画面サイズおよび解像度であっても)、電子書籍の間隔プロパティにより、表示コンテンツ104Bにおいてリフロー型テキストがほとんど見えない状態(例えば大部分の垂直行に単一の文字の状態)で、大量の余白または空白が表示される。これは、ファイルで定義されたスケーリング間隔プロパティ(例えばパディング、マージン、境界および/またはインデント)の組み合わせに基づき得る。フォントサイズがさらに拡大されると、下記で説明される図5Aに示されるように、典型的な既存の表示方法に従って、コンテンツ損失が生じる(例えばコンテンツが表示領域の可視部分より下に配置される)。これは、文字が画面または出力媒体に収まらない場合であっても、リフロー型ファイルで指定されたパディングまたはインデントのプロパティに従って、少なくとも1つの文字を含める必要があることに起因し得る。既存のレイアウト手法に伴うこれらおよび他の表示問題は、下記に説明される方法で対処される。
【0016】
図2は、2つの異なるサイズおよび向きの表示領域でのリフローオブジェクトのサンプルグリッドレイアウトを示す。例示のグリッドレイアウト210は、特定のデバイスで縦向きに表示されるように決定されたレイアウトであり得、一方、グリッドレイアウト220は、デバイスで横向きに表示されるように決定されたレイアウトであり得る。表示領域のサイズおよび向きが異なることの他に、レイアウト210とレイアウト220は、フォントサイズ(ポイントサイズ)も異なり、レイアウト220は、レイアウト210よりも大きなフォントサイズを使用する。グリッドマーカ(個々の文字を囲むボックスとして示される)は、表示前に決定されたレイアウト情報を識別するための説明目的のものであり、画面に表示される、あるいはユーザに表示されることはない。
【0017】
図2に示される実施例では、コンテンツはグリッド形式でレイアウトされ、これは、特定のアジア言語の電子書籍で使用され得る。示される実施例210および220では、表示されるグリッド内の各ボックスまたは各エントリは、単一の文字またはリフローオブジェクトを含む。文字は、垂直読み出しモードでレイアウトされ、これにより、垂直行の文字222を読み出す前に、垂直行の文字221が上から下へ読み出される。各グリッドボックスは、1em単位と見なされ得、1emの表示サイズは、表示に使用されるポイントサイズまたはフォントサイズ(例えば閲覧ユーザまたはリーダアプリケーションのプリファレンスにより設定または調整され得る)により、決定される。レイアウト210に示されるように、特定の垂直行の前の空白(例えばグリッドマークが表示されないスペース)は、リフロー型ファイルで示されるパディングまたはインデントなどの間隔パラメータに基づいたレイアウトで、配置され得る。
【0018】
図3は、電子書籍などのリフロー型ファイルのコンテンツを表示するための例示的な方法300の流れ図である。例示的な方法300は、下記に説明されるコンピューティングシステム610などのコンピューティングシステムまたはデバイスにより実行され得る。方法300は、コンピューティングシステムが、電子データストアからファイルを検索することなどにより、リフロー型ファイルを取得し得る、ブロック302から始まる。電子書籍または他のリフロー型ファイルの少なくとも一部を読むというユーザからの要求に応じて、ファイルが取得され得る。ブロック304にて、コンピューティングシステムは、次に、現在の表示要求に関してリフロー型ファイル内の開始位置を特定し得る。いくつかの事例では、開始位置は、ファイルの表示可能コンテンツの始まりであり得、一方、他の実施形態では、開始位置は、ファイルの他の場所であり得る(ユーザが最後に電子書籍を読んだ箇所から読み出しを再開することをユーザが要求している場合など)。
【0019】
ブロック306にて、コンピューティングシステムは、使用可能表示領域のサイズ設定を特定し得る。画面全体または他のディスプレイを使用してリフロー型ファイルのコンテンツを表示する実施形態では、画面全体の寸法(例えばピクセル単位の幅および高さ)が特定され得る。代わりにリフロー型ファイルが画面または他の出力媒体のウィンドウ、コンテナ、または他の部分内に表示される場合、そのスペースの寸法(例えばピクセル単位の幅および高さ)が特定され得る。次に、ブロック308にて、コンピューティングシステムは、複数の水平行または垂直行のそれぞれにおけるリフローオブジェクトの位置を定義するレイアウト情報を決定し得、これは、リフロー型ファイルで定義された表示領域のサイズ設定並びにプロパティ(テキストプロパティおよび間隔プロパティなど)に少なくとも部分的に基づき得る。具体的なレイアウトステップおよび動的間隔調整オプションは、下記で図4に関して詳細に説明される。
【0020】
ブロック310にて、コンピューティングシステムは、決定されたレイアウト情報に基づいて、表示するリフローオブジェクトをレンダリングし得る。当技術分野で周知のように、リフローオブジェクトは、それらの表示位置が決定されると、いくつかの方法でレンダリングされ得る。いくつかの実施形態では、個々のリフローオブジェクト(アジアのスクリプトの文字など)は、電子書籍または他のファイルを表示するために選択された現在のフォントで、その文字に割り当てられた対応するグリフとして、レンダリングされ得る。リフロー型コンテンツをレイアウトおよびレンダリングするいくつかの例示的な既知の方法は、例えば「Systems and Methods for Presenting Reflowable Content on a Display」と題する米国特許第8,499,236号に、さらに詳細に説明されている。
【0021】
図4は、リフロー型ファイル内のリフローオブジェクトのレイアウト情報を決定するための例示的な方法400の流れ図であり、リフローオブジェクトの個別の行の間隔プロパティを調整することを含む。例示的な方法400は、下記に説明されるコンピューティングシステム610などのコンピューティングシステムまたはデバイスにより実行され得る。いくつかの実施形態では、方法400は、図3のブロック308に関して上記で参照されたレイアウト情報の決定の一部として、実施され得る。
【0022】
例示的な方法400は、コンピューティングシステムが、表示領域の寸法および表示設定に基づいて、使用可能な行表示の長さを特定し得る、ブロック402から始まる。使用可能な行表示の長さは、現在の文字行または他のリフローオブジェクトがレイアウトされ得る使用可能な幅または高さのいずれかを指し得る。水平書き込みモードでは、行表示の長さは、表示領域の幅を指し得る(幅は、デバイスで現在使用されている画面配向の左から右の方向を指す)。垂直書き込みモードでは、行表示の長さは、表示領域の高さを指し得る(高さは、デバイスで現在使用されている画面配向の上から下の方向を指す)。
【0023】
ブロック402にて、使用可能な行表示の長さが、フォントサイズ非依存形式で(行に収まる文字数を表すem単位など)、または行でレンダリングできるピクセル総数で、特定され得、ただし、行の間隔の合計量を特定するときには同じ単位が使用される(ブロック404に関して下記で論述される)。垂直書き込みモードに関する一実施形態では、使用可能な表示領域のピクセル高さを、表示に使用されているフォントの現在のポイントサイズで割る(例えば16ポイントのフォントサイズの場合は16で割る)ことにより、使用可能な行表示の長さがem単位で特定される。
【0024】
ブロック404にて、コンピューティングシステムは、現在の行に表示されるべきとリフロー型ファイルが示す間隔の合計量を、ファイルで指定された間隔プロパティに基づいて、特定し得る。いくつかの実施形態では、合計の間隔は、単一の「スペース」文字以外の間隔を指し得る(例えば指定された境界の長さ、インデントの長さ、マージンの長さ、パディングの長さなどを指し得るが、2つの単語または文字の間に現れる単一のスペース文字は指し得ない)。ファイルが示す全ての間隔プロパティの単位を、(上記のブロック402の)表示の長さで特定された単位と同じになるように最初に正規化することにより、例えば現在のフォントサイズ設定および他の設定に基づいてポイントをem単位に(またはその逆に)変換することにより、間隔は特定され得る。次に、現在の行に影響を与えると特定された1つ以上の間隔プロパティは、正規化された形式で合算され得る。例えば、2emの境界および15emのパディングが現在の行に適用可能であるとファイルが示す場合、現在の行の間隔の合計量は、17emと特定され得る。
【0025】
ブロック406にて、コンピューティングシステムは、合計間隔量が許容閾値を超えるか否かを判定し得る。いくつかの実施形態では、許容閾値は、使用可能な行表示の長さの所定のパーセンテージとして設定され得る(例えば一実施形態では、90%)。ファイルで指定された間隔量が閾値パーセンテージまたは他の許容量を超えない場合、方法は、ブロック408に進んで、現在の行のオブジェクトをレイアウトするときに、リフロー型ファイルで定義された間隔を適用し得る。あるいは、閾値を超えた場合、方法は、判定ブロック410に進む。
【0026】
ブロック410にて、コンピューティングシステムは、リフロー型ファイルで定義された合計間隔値は、右揃え(水平書き込みモード)または下揃え(垂直書き込みモード)を生じるように意図された(ファイルの発行者、著者、または他の作成者などにより)可能性が高いか否かを判定し得る。例えば、ファイルは、書籍の本文のテキストに左揃えのデフォルトの位置揃えを使用するべきであることを示し得るが、ファイル作成者が、パディングプロパティまたは他の間隔プロパティを介して、所与の文字の前に多数の単位の空白を挿入している場合がある。アジア言語の書籍の事例、特に書籍の物理的印刷版と同様にレイアウトされるように電子書籍が作成された事例では、多くの場合、行の合計表示可能スペースが書籍の印刷版(例えば標準的な日本の縦型レイアウトの印刷書籍では、行の長さは40em)と一致または類似するという想定の下、大きな間隔プロパティ(例えば35emなど)がファイルに挿入される。手動で指定された、印刷書籍の標準の行の長さに近い間隔プロパティは、行の表示文字が行の終わりに表示される印刷形式(例えば水平モードではテキストの右揃えまたは垂直モードではテキストの下揃え)で表示される可能性が高く、よって、このような位置揃えまたはこのような位置揃えの近似は、多くの場合、これらの状況でのファイル作成者の意図であった。
【0027】
従って、いくつかの実施形態では、ブロック410にて、コンピューティングシステムは、行の合計間隔(ブロック404で特定された)が、右揃え(または垂直モードでは下揃え)をトリガーするように設定された最小閾値を超えるかを、判定し得る。一実施形態では、右揃えまたは下揃えをトリガーする最小閾値は、日本語書籍の場合、32emに設定され得、これは、1行あたり約40文字を含む典型的な日本語印刷書籍に基づいて決定され得る(よって32emは行の長さに近い値として選択され得るが、さらにいくつかの文字スペースの余裕がある)。異なる言語の書籍、異なるタイプの書籍(例えば参考書や児童書など、1行あたりより少ないまたはより多い文字数または他のリフローオブジェクト数で通常印刷される書籍)、書籍が水平書き込みモードで設計されたか、垂直書き込みモードで設計されたか(電子書籍ファイル内のプロパティで示され得る)などに関して、様々な右揃えトリガー閾値が設定され得ることが理解されよう。
【0028】
ブロック410にて、ファイルに示される間隔が右揃えまたは下揃えを生じるように意図された可能性が高いと判定された場合(例えばこのような位置揃えをトリガーする閾値を合計間隔が超えることにより)、方法は、ブロック414に進んで、右揃え(水平書き込みモードの場合)または下揃え(垂直書き込みモードの場合)を適用する。この位置揃え変更は、ファイルの具体的な間隔量を実質的に無視するだけでなく、現在の表示行のみを対象に、ファイルで指定された位置揃えタイプも置き換え得、後続の行はファイルで指定された位置揃えタイプ(左揃えなど)に戻る(コンピューティングシステムが同じ方法400に従って、後続の行に右揃えを適用することを別個に決定しない限り)。
【0029】
代わりに、ブロック410にて、ファイルに示される間隔が右揃えまたは下揃えを生じるように意図された可能性が低いと判定された場合(例えばこのような位置揃えをトリガーする閾値を合計間隔が下回ることにより)、方法は、ブロック412に進んで、リフロー型ファイルで指定される間隔プロパティを縮小する。例えば、ファイルで指定された、現在の行に適用可能な全ての間隔プロパティ(パディング、境界、マージン、インデントおよび/または他を含み得る)は、スケーリング係数により縮小され得る。スケーリング係数は、いくつかの実施形態では、所与の言語および/または所与の書籍タイプの印刷書籍の標準的な行のサイズに基づいて、設定され得る。例えば、前述のように、40emの行の長さは、典型的な日本の縦型レイアウトの印刷書籍でよく使用される。従って、日本語の電子書籍の場合、いくつかの実施形態では、40emは、1行あたりの標準の長さまたは正規化された長さと見なされ得る。スケーリング係数は、現在の行表示の長さ(フォントサイズおよび他の読み出し設定、並びにデバイスの表示設定を所与とした行表示の長さ)を、印刷書籍の対応タイプ(書籍が水平レイアウト用に設計されたか、垂直レイアウト用に設計されたかも考慮し得る)の1行あたりの正規化された長さで割った結果に、設定され得る。
【0030】
よって、一実施形態では、所与の日本語の電子書籍を表示するときに、現在のフォントサイズおよび画面サイズにより、1行あたり最大の表示の長さが20emとなる場合(40emが1行あたりの正規化された長さである)、間隔を縮小するスケーリング係数は、0.5(20/40)に設定され得る。この例では、ファイルが示す現在の行の合計間隔が18emのパディングである場合、パディングは9em(18x0.5)に縮小され得る。この調整は、上記で論述されたように現在の行に対してのみ行われ得、後続の行は、方法400に従って、間隔調整に関して別個に分析される。実施形態に応じて、縮小係数が特定され、em単位またはピクセルカウントのいずれかに適用され得ることが理解されよう。スケーリング係数を適用することで特定された結果の間隔は、概数で表され得、例えば、グリッドレイアウトで最も近いグリッド位置(例えば1em単位)またはグリッドの縁に存在する最も近いピクセルの概数で表される。
【0031】
ブロック416にて、コンピューティングシステムは、上記で特定された間隔および/または位置揃えに従って、現在の行における1つ以上のリフローオブジェクトのレイアウト位置を決定し得る。上記で論述され、図4に示されるように、ブロック416でのレイアウト決定には、ブロック408(ファイルの示す間隔が変更なしで適用される)、ブロック414(下揃えまたは右揃えが適用される)、またはブロック412(縮小された間隔プロパティが使用される)から到達し得る。ブロック416に到達し、間隔および位置揃えが特定されると、修正された間隔および/または位置揃えを参照して適用される既存のレイアウト方法を使用して、ファイルの文字または他のリフローオブジェクトのレイアウト位置が決定され得る。例えば、日本語の文字は、図2に関して前述されたグリッドフォーマットで配置され得る。
【0032】
次に、ブロック418にて、コンピューティングシステムは、現在の表示領域に収まる(例えばデバイスの画面に収まる)リフローオブジェクトの任意の追加行のレイアウト位置を決定し続け得る。これは、現在の行にレイアウトされる最後のリフローオブジェクトに続く1つ以上のリフローオブジェクトを(次の行に)リフローすることだけでなく、ファイルから追加のリフローオブジェクトおよび適用可能な間隔プロパティを取得することも含み得る。図3に関して上記で論述されたように、現在の表示領域(例えばコンテンツの1つの画面またはページ)に表示される全てのリフローオブジェクトがレイアウトされると、コンテンツは、決定されたレイアウトに従って表示されようにレンダリングされ得る。
【0033】
図5Aは、電子書籍リーダデバイス502Aにおける、既存の方法を使用したリフロー型ファイルのコンテンツのサンプル表示を示し、リフロー型ファイルで定義された間隔プロパティに部分的に起因して、コンテンツは表示されない。リフロー型ファイルでは、間隔プロパティは、フォントポイントサイズに合わせて表示サイズをスケーリングするem単位などのスケーラブル単位を参照して定義されるため、図1Bに関して上記で論述されたように、フォントサイズが比較的大きいと、電子書籍または他のリフロー型ファイルでコンテンツ損失が生じ得る。これは、少数の文字のごくわずかな上部のみが画面の底部に表示されるようにレンダリングされたコンテンツ504Aにより示される。
【0034】
図5Bは、図5Aと同じリフロー型ファイルのコンテンツ504Bのサンプル表示を、同じフォントサイズおよび表示設定で(および潜在的にデバイス502Aと同じデバイス502Bで)示し、コンテンツのレイアウトを、リフロー型ファイルの作成者の可能性のある意図によりよく一致させるように、本明細書で説明される方法が適用されている。示されるように、ここでは5行のコンテンツが完全に表示され、読みやすい様式でレイアウトされている。表示されたコンテンツ504Bのいくつかの個々の行は、前述の方法400に従って下揃えが適用済みであり得、他の行は、前述のように間隔が縮小済みであり得る。理解されるように、フォントサイズは図5Aと比べて変更されていないが、間隔は変更されている。これは、例えば、表示画面に収まるようにコンテンツをスケーリングすると、通常、余白および表示テキストまたはグリフが均等にスケーリングされる画像ファイルまたはポータブルドキュメントフォーマット(PDF)ファイルなどの非リフローコンテンツを表示することとは、対照的である。
【0035】
図5Cは、電子書籍リーダデバイス512におけるリフロー型ファイルのコンテンツ514のサンプル表示を示し、コンテンツレイアウトは、リフロー型ファイルで定義された間隔プロパティの分析に基づいて、垂直行516の位置揃えを下揃えに変更するように調整された。前述の方法によれば、電子書籍リーダデバイス512は、行516がファイルで定義された間隔プロパティに従ってレイアウトされた場合、行516は少なくとも部分的に閲覧領域外に(画面底部の下に)配置されると、判断し得た。従って、リーダデバイスは、表示用コンテンツをレイアウトするときに、ファイルで定義された間隔プロパティを適用するのではなく、行516の位置揃えを下揃えに調整するべきことを動的に決定し得た。リーダデバイス512は、コンテンツ514の表示の残りの行を、ファイルで定義された間隔プロパティに従ってレイアウトすることを決定し得た。
【0036】
図6は、本開示の様々な態様を実施するように構成されたコンピューティングシステム(いくつかの実施形態によれば、コンピューティングデバイスまたは電子書籍リーダと本明細書では称され得る)の一般的なアーキテクチャを示す。図6に描かれたコンピューティングシステム610の概略的アーキテクチャは、コンピュータハードウェアおよびソフトウェアコンポーネントの配置を含む。コンピューティングシステム610は、図6に示される要素よりも多い(または少ない)要素を含んでもよい。しかしながら、有効な開示を提供するために、これらの一般的な従来要素が全て示される必要はない。示されるように、コンピューティングシステム610は、処理ユニット640、ネットワークインターフェース645、コンピュータ可読媒体ドライブ650、入力/出力デバイスインターフェース655、ディスプレイ660および入力デバイス665を含み、これらの全ては、通信バスを経由して互いと通信し得る。コンピューティングシステムは、携帯電話、タブレットコンピュータ、デスクトップコンピュータ、専用電子書籍リーダまたは電子書籍リーダおよび/または他のコンピューティングデバイスにおいて具現化され得る。
【0037】
ネットワークインターフェース645は、1つ以上のネットワークまたはコンピューティングシステムへの接続を提供し得る。よって、処理ユニット640は、ネットワークを介して他のコンピューティングシステムまたはサービスから情報および命令を受信し得る。また、処理ユニット640は、メモリ670と双方向通信を行い、さらに、入力/出力デバイスインターフェース655を介してディスプレイ660に出力情報を提供し得る。また、入力/出力デバイスインターフェース655は、キーボード、マウス、デジタルペン、マイクロホン、タッチスクリーン、ジェスチャ認識システム、音声認識システム、ゲームパッド、加速度計、ジャイロスコープ、または他の入力デバイスなどの入力デバイス665から、入力を受け入れ得る。
【0038】
メモリ670は、処理ユニット640が1つ以上の実施形態を実施するために実行するコンピュータプログラム命令(いくつかの実施形態ではモジュールまたはコンポーネントとしてグループ化される)を含み得る。メモリ670は、通常、RAM、ROMおよび/または他の永続的、補助的、または非一時的なコンピュータ可読媒体を含む。メモリ670は、コンピューティングシステム610の一般的な管理および動作で処理ユニット640が使用するコンピュータプログラム命令を提供するオペレーティングシステム674を格納し得る。メモリ670はさらに、本開示の態様を実施するためのコンピュータプログラム命令および他の情報を含み得る。例えば、一実施形態では、メモリ670は、ユーザインターフェースモジュール672を含み、これは、例えばコンピューティングデバイスにインストールされたブラウザまたはアプリケーションなどのナビゲーションインターフェースを介して、コンピューティングデバイス上に表示するユーザインターフェース(および/またはそのための命令)を生成する。さらに、メモリ670は、電子書籍、リフロー型ファイルおよび/または前述の他のデータもしくはファイルを格納し得るコンテンツデータストア636を含み得る、またはコンテンツデータストア636と通信し得る。
【0039】
1つ以上のコンテンツレイアウトおよびレンダリングコンポーネント612は、コンテンツデータストアからリフロー型ファイルデータを取得し、表示用にリフロー型ファイルデータを提供するように構成され得、これには、本明細書で説明されるレイアウトおよびレンダリング機能の適用が含まれる。例えば、いくつかの実施形態では、これらのコンポーネント(複数可)612は、図3および図4に関して前述された方法を実施するように構成され得る。ディスプレイ660に表示するためのレンダリング済みコンテンツを提供するコンテンツレイアウトおよびレンダリングコンポーネントが、同じコンピューティングシステム610の一部として図6に示されるが、他の実施形態では、コンテンツレイアウトおよびレンダリングコンポーネントの全てまたは一部は、別のコンピューティングシステムにより実装され得る。例えば、読書ユーザが利用する電子書籍リーダデバイス、パーソナルコンピュータ、または他のコンピューティングデバイスは、コンテンツレイアウトおよびレンダリングコンポーネント612を実装したサーバまたは他のリモートコンピューティングシステムと通信し得、サーバまたは他のリモートコンピューティングシステムは、コンピューティングシステム610により表示するコンテンツ(画像データの形態など)の指示を返す。このようなサーバまたは他のリモートコンピューティングシステムは、コンピューティングシステム610の一部として示されたハードウェアおよび他のコンポーネントと同様のハードウェアおよび他のコンポーネントを含み得るが、このようなシステムは、このような示されたコンポーネントの全てを含まなくてもよい(例えばディスプレイ、入力デバイスおよび/またはその他を除くことができる)。
【0040】
実施形態によっては、本明細書で説明される処理またはアルゴリズムのうちのいずれかに関する特定の行為、イベント、または機能は、異なる順序で実行することができ、追加する、合体させる、または完全に省くことができる(例えば説明される全ての動作またはイベントがアルゴリズムの実施に必要とは限らない)。さらに、特定の実施形態では、動作またはイベントは、逐次的に実行するのではなく、例えばマルチスレッド処理、割り込み処理、または1つ以上のコンピュータプロセッサもしくはプロセッサコアを介して、または他の並列アーキテクチャで、同時に実行することができる。
【0041】
本明細書に開示される実施形態に関連して説明される様々な例示の論理ブロック、モジュール、ルーチンおよびアルゴリズムステップは、電子ハードウェアとして、または電子ハードウェアと実行可能ソフトウェアとの組み合わせとして、実装され得る。このような相互互換性を明確に例示するために、様々な例示のコンポーネント、ブロック、モジュールおよびステップは、概してその機能に関して上記で説明されている。このような機能が、ハードウェアとして実装されるか、ハードウェアで実行されるソフトウェアとして実装されるかは、特定のアプリケーションおよびシステム全体に課される設計制約による。説明される機能は、それぞれの特定のアプリケーションに関して様々なやり方で実装され得るが、そのような実施態様の決定は、本開示の範囲から逸脱を引き起こすものとして解釈されるべきではない。
【0042】
数ある中でも「得る/できる(can)」、「得た/できた(could)」、「得た(might)」、「得る(may)」および「例えば」などの本明細書で使用される条件的文言には、特に別段の記載がない限り、または使用される文脈内で別段の理解がされない限り、特定の実施形態が特定の特徴、要素および/またはステップを含み、他の実施形態はこれらを含まないことを伝えることが、通常、意図される。よって、このような条件的言語には、特徴、要素および/またはステップが1つ以上の実施形態に何らかの形で必要であること、あるいはこれらの特徴、要素および/またはステップが、任意の特定の実施形態に含まれるか否か、または任意の特定の実施形態で実行されるか否かを、他の入力またはプロンプトの有無に関わらず判断するロジックを、1つ以上の実施形態が必ず含むことを、示唆する意図は通常ない。用語「備える」、「含む」および「有する」などは同義語であり、包括的かつ非限定的に使用され、追加の要素、特徴、行為および動作などを排除しない。また、用語「または」は、(排他的な意味ではなく)包括的な意味で使用されており、よって、例えば要素の一覧をつなぐのに使用された場合、用語「または」は、一覧の要素の1つ、一部、または全てを意味する。
【0043】
句「X、Y、またはZのうちの少なくとも1つ」などの選言的文言は、特に別段の記載がない限り、項目、用語などがX、Y、またはZ、あるいはこれらの任意の組み合わせ(例えばX、Yおよび/またはZ)であり得ることを表すように一般的に使用される文脈で、理解される。よって、このような選言的文言は、特定の実施形態にXの少なくとも1つ、Yの少なくとも1つ、またはZの少なくとも1つがそれぞれ存在する必要があると、暗示する意図は通常なく、暗示するべきものではない。
【0044】
別段に明記されない限り、「a」または「an」などの冠詞は、通常、1つ以上の記載された項目を含むと解釈すべきである。従って、「~するように構成されたデバイス(a device configured to)」などの句は、1つ以上の列挙されたデバイスを含むことが意図される。このような1つ以上の列挙されたデバイスは、記載される列挙を実行するように集合的に構成することもできる。例えば「列挙A、BおよびCを実行するように構成されたプロセッサ」は、列挙Aを実行するように構成された第1のプロセッサであって、列挙BおよびCを実行するように構成された第2のプロセッサと連動する当該第1のプロセッサを含み得る。
【0045】
上記の発明を実施するための形態では、様々な実施形態に適用される新規の特徴が図示され、説明され、指摘されたが、示されたデバイスまたはアルゴリズムの形態および詳細で、本開示の趣旨から逸脱することなく様々な省略、代替および変更を行うことができることが、理解できよう。認識され得るように、いくつかの特徴は他の特徴とは別個に使用または実施することができるため、本明細書で説明される特定の実施形態は、本明細書に明記される特徴および利点の全てを提供しない形態内に具現化することができる。本明細書で開示される特定の実施形態の範囲は、前述の説明ではなく、添付の特許請求の範囲により、示される。特許請求の範囲の意味および均等範囲に入る全ての変更は、特許請求の範囲内に含まれるものとする。
【0046】
本開示の実施形態の例は、以下の条項を考慮して説明され得る。
条項1.
電子書籍を格納する非一時的データストアであって、前記電子書籍は、表示可能コンテンツおよびフォーマット情報を含む1つ以上のファイルとして格納され、前記表示可能コンテンツは、複数のリフロー型オブジェクトを含み、前記複数のリフロー型オブジェクトの少なくとも部分集合のうちの各リフロー型オブジェクトは、前記1つ以上のファイルのうちの1つのファイルで文字により表される、前記非一時的データストアと、
コンピュータ実行可能命令で構成された少なくとも1つのコンピューティングデバイスと、
を備えたシステムであって、前記コンピュータ実行可能命令は、実行されるとき、前記少なくとも1つのコンピューティングデバイスに、
前記電子書籍の前記表示可能コンテンツの一部を表示する要求を受信することと、
現在の行のコンテンツをレイアウトするのに使用可能な幅または高さの量を表す使用可能な行表示の長さを特定することであって、前記使用可能な行表示の長さは、(a)水平書き込みモードの場合は表示領域の幅、または(b)垂直書き込みモードの場合は前記表示領域の高さ、のうちの1つである、前記特定することと、
前記電子書籍で定義された間隔プロパティに少なくとも部分的に基づいて、前記表示可能コンテンツの前記一部を表示用にレイアウトするときに前記現在の行に含めるべきと前記電子書籍が示す間隔の量を特定することであって、前記間隔プロパティは、パディング、マージン、境界、またはインデントのうちの1つ以上を含む、前記特定することと、
前記現在の行に含めるべきと前記電子書籍が示す前記間隔の量が、前記使用可能な行表示の長さの閾値パーセンテージを超えることを特定することと、
前記間隔の量が前記閾値パーセンテージを超えると特定したことに応じて、前記現在の行は、前記電子書籍で定義された前記間隔プロパティにより示される様式とは異なる様式でレイアウトされるべきであると判断することであって、前記異なる様式では、表示対象の個々のリフローオブジェクトの表示サイズは変更されない、前記判断することと、
前記異なる様式において、スケーリング係数に基づいて前記現在の行の前記間隔プロパティを縮小するべきか、前記現在の行の位置揃えプロパティを変更するべきかを、選択することであって、前記異なる様式の選択は、前記電子書籍が示す前記間隔の量と最小値との比較に少なくとも部分的に基づき、前記最小値は、(a)水平書き込みモードの場合は右揃え、または(b)垂直書き込みモードの場合は下揃え、のうちの1つをトリガーするルールに事前に関連付けられる、前記選択することと、
前記現在の行をレイアウトするために前記選択された異なる様式に従って、前記表示可能コンテンツの前記一部からの1つ以上のリフローオブジェクトのレイアウト位置を決定することであって、前記表示可能コンテンツの前記1つ以上のリフローオブジェクトの後に表示される追加のリフローオブジェクトは、前記現在の行に続く次の行の位置に割り当てられる、前記決定することと、
前記レイアウト位置に従って、表示する前記1つ以上のリフローオブジェクトをレンダリングすることと、
を実行させる、前記システム。
【0047】
条項2.前記レイアウト位置は、グリッドを参照して配置され、前記グリッド内のリフローオブジェクトの相対位置は、表示用のリフローオブジェクトをレンダリングする際のそれぞれの相対表示位置を表す、条項1に記載のシステム。
【0048】
条項3.前記1つ以上のリフローオブジェクトのそれぞれは、表示時にグリフで表される、条項1に記載のシステム。
【0049】
条項4.前記現在の行の第1の文字が、前記現在の行の第2の文字の上に配置される垂直読み出しモードで、前記現在の行は表示される、条項1に記載のシステム。
【0050】
条項5.
リフロー型ファイルの表示可能コンテンツを表示する要求を受信することと、
表示対象である現在の行の使用可能な行表示の長さを特定することと、
前記リフロー型ファイルで定義された間隔プロパティに少なくとも部分的に基づいて、前記現在の行に含めるべきと前記リフロー型ファイルが示す間隔の量を特定することであって、前記間隔プロパティは、パディング、マージン、境界、またはインデントのうちの1つ以上を含む、前記特定することと、
前記現在の行に含めるべきと前記リフロー型ファイルが示す前記間隔の量が、前記使用可能な行表示の長さに少なくとも部分的に基づいて設定された閾値を超えることを特定することと、
前記間隔の量が前記閾値を超えると特定したことに応じて、前記現在の行は、前記リフロー型ファイルで定義された前記間隔プロパティにより示される様式とは異なる様式でレイアウトされるべきであると判断することと、
前記現在の行のリフロー型コンテンツをレイアウトする前記異なる様式を選択することであって、前記異なる様式は、(a)前記リフロー型ファイルにより示される前記間隔の量に対して代替の間隔の量を使用すること、または(b)前記リフロー型ファイルにより示される位置揃えタイプよりも代替位置揃えタイプを適用すること、のうちの1つを含み、前記異なる様式では、表示対象である個々のリフローオブジェクトの表示サイズは変更されない、前記選択することと、
前記現在の行をレイアウトするために前記選択された異なる様式に従って、前記表示可能コンテンツの前記一部からの1つ以上のリフローオブジェクトのレイアウト位置を決定することと、
前記レイアウト位置に従って、表示する前記1つ以上のリフローオブジェクトをレンダリングすることと、
を含む、コンピュータ実施方法。
【0051】
条項6.前記使用可能な行表示の長さは、(a)水平書き込みモードの場合は表示領域の幅、または(b)垂直書き込みモードの場合は前記表示領域の高さ、のうちの1つに基づく、条項5に記載のコンピュータ実施方法。
【0052】
条項7.前記使用可能な行表示の長さは、表示領域のサイズおよびem単位のサイズに少なくとも部分的に基づいて特定され、前記em単位の前記サイズは、現在の読み出し設定による個々の文字の表示サイズに関連付けられる、条項5に記載のコンピュータ実施方法。
【0053】
条項8.前記レイアウト位置は、グリッドを参照して配置され、前記グリッド内の個々のエントリにはそれぞれ、単一のリフローオブジェクトが割り当てられ、前記グリッド内のリフローオブジェクトの相対位置は、表示用のリフローオブジェクトをレンダリングする際のそれぞれの相対表示位置を表す、条項5に記載のコンピュータ実施方法。
【0054】
条項9.表示用にレンダリングされる前記1つ以上のリフロー型オブジェクトのそれぞれは、前記リフロー型ファイルで識別された個々のアジア言語文字であり、前記個々のアジア言語文字を表すグリフとしてレンダリングされる、条項5に記載のコンピュータ実施方法。
【0055】
条項10.
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記代替の間隔の量が選択され、前記コンピュータ実施方法はさらに、
事前定義されたスケーリング係数および前記現在の行の前記間隔プロパティに基づいて、前記代替の間隔の量を特定すること、
を含む、条項5に記載のコンピュータ実施方法。
【0056】
条項11.
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記位置揃えプロパティの変更が選択され、前記コンピュータ実施方法はさらに、
前記リフロー型ファイルで定義された前記間隔プロパティから、前記リフロー型ファイルの作成者は、前記リフロー型ファイルで定義された位置揃えプロパティにより示される位置揃えとは異なる位置揃えで前記現在の行が表示されるように意図した可能性が高いと、判断することと、
前記現在の行に対し、前記リフロー型ファイルで定義された前記間隔プロパティを適用するのではなく、前記異なる位置揃えを適用することと、
を含む、条項5に記載のコンピュータ実施方法。
【0057】
条項12.
前記リフロー型コンテンツは水平書き込みモードでレイアウトされ、前記異なる位置揃えは右揃えである、条項11に記載のコンピュータ実施方法。
【0058】
条項13.
前記リフロー型コンテンツは垂直書き込みモードでレイアウトされ、前記異なる位置揃えは下揃えである、条項11に記載のコンピュータ実施方法。
【0059】
条項14.
前記現在の行をレイアウトする前記異なる様式は、前記現在の行に隣接して表示されるようにレンダリングされる後続の行には適用されない、条項5に記載のコンピュータ実施方法。
【0060】
条項15.
コンピュータ実行可能命令を含む非一時的コンピュータ可読媒体であって、前記コンピュータ実行可能命令は、コンピューティングシステムにより実行されるとき、
リフロー型ファイルの表示可能コンテンツを表示する要求を受信することと、
表示対象である現在の行の使用可能な行表示の長さを特定することと、
前記リフロー型ファイルで定義された間隔プロパティに少なくとも部分的に基づいて、前記現在の行に含めるべきと前記リフロー型ファイルが示す間隔の量を特定することと、
前記現在の行に含めるべきと前記リフロー型ファイルが示す前記間隔の量が、前記使用可能な行表示の長さに少なくとも部分的に基づいて設定された閾値を超えることを特定することと、
前記間隔の量が前記閾値を超えると特定したことに応じて、前記現在の行は、前記リフロー型ファイルで定義された前記間隔プロパティにより示される様式とは異なる様式でレイアウトされるべきであると判断することと、
前記現在の行のリフロー型コンテンツをレイアウトする前記異なる様式を選択することであって、前記異なる様式は、(a)前記リフロー型ファイルで定義された前記間隔プロパティに対して代替の間隔の量を使用すること、または(b)前記リフロー型ファイルにより示される位置揃えタイプよりも代替位置揃えタイプを適用すること、のうちの1つを含み、前記異なる様式では、表示対象である個々のリフローオブジェクトの表示サイズは変更されない、前記選択することと、
前記現在の行をレイアウトするために前記選択された異なる様式に従って、前記表示可能コンテンツの前記一部からの1つ以上のリフローオブジェクトのレイアウト位置を決定することと、
前記レイアウト位置に従って、表示する前記1つ以上のリフローオブジェクトをレンダリングすることと、
を含む動作を前記コンピューティングシステムに実行させる、前記非一時的コンピュータ可読媒体。
【0061】
条項16.
前記リフロー型ファイルで定義された、前記現在の行に適用可能な前記間隔プロパティは、パディング、マージン、境界、またはインデントのうちの2つ以上を含む、条項15に記載の非一時的コンピュータ可読媒体。
【0062】
条項17.
2つ以上の前記間隔プロパティの各々は、前記リフロー型ファイルで、少なくとも(a)間隔タイプを表すマークアップタグ、および(b)対応する間隔タイプの間隔の長さを表す関連単位数により、定義される、条項15に記載の非一時的コンピュータ可読媒体。
【0063】
条項18.
前記現在の行に含めるべきと前記リフロー型ファイルが示す前記間隔の量を特定することは、
2つ以上の前記間隔プロパティの前記各々の間隔プロパティのem単位の合計を特定することと、
個々のem単位の現在の表示サイズに基づいて、前記合計の表示の長さをピクセルで特定することと、
を含む、条項17に記載の非一時的コンピュータ可読媒体。
【0064】
条項19.
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記代替の間隔の量が選択され、前記動作はさらに、
スケーリング係数および前記現在の行の前記間隔プロパティに基づいて、前記代替の間隔の量を特定すること、
を含む、条項15に記載の非一時的コンピュータ可読媒体。
【0065】
条項20.
前記現在の行の前記リフロー型コンテンツをレイアウトする前記異なる様式として、前記位置揃えプロパティの変更が選択され、前記動作はさらに、
前記リフロー型ファイルで定義された前記間隔プロパティから、前記リフロー型ファイルの作成者は、前記リフロー型ファイルで定義された位置揃えプロパティにより示される位置揃えとは異なる位置揃えで前記現在の行が表示されるように意図した可能性が高いと、判断することと、
前記現在の行に対し、前記リフロー型ファイルで定義された前記間隔プロパティを適用するのではなく、前記異なる位置揃えを適用することと、
を含む、条項15に記載の非一時的コンピュータ可読媒体。
図1A
図1B
図2
図3
図4
図5A
図5B
図5C
図6