typeset 0.1.0
縦書き・横書きの日本語組版ライブラリ(JLReq 水準、ラスタ / PDF / SVG)
読み取り中…
検索中…
一致する文字列を見つけられません
paragraph.hpp ファイル
#include <map>
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "typeset/dl/display_list.hpp"
#include "typeset/font/font_set.hpp"
#include "typeset/inl/annotation.hpp"
#include "typeset/inl/line_breaker.hpp"
#include "typeset/inl/shaped.hpp"
#include "typeset/style.hpp"
#include "typeset/writing_mode.hpp"

[ソースコード]

クラス

struct  typeset::inl::ObjectRef
 外部ハンドラで生成するオブジェクトの指定(組版時に obj::ObjectRegistry で解決する) [詳解]
 
struct  typeset::inl::InlineRun
 スタイルの付いたテキスト片。image / object / objectRef が付いていれば行内オブジェクト(text は U+FFFC 1 文字) [詳解]
 
struct  typeset::inl::Paragraph
 
struct  typeset::inl::LineBox
 確定した 1 行(論理座標) [詳解]
 
struct  typeset::inl::StyleMetrics
 スタイルごとの、描くときに要るメトリクス(ParagraphFragment::styleMetrics。styles と同じ添字) [詳解]
 
struct  typeset::inl::ParagraphFragment
 
class  typeset::inl::ParagraphLayouter
 
struct  typeset::inl::CharBox
 組んだあとの 1 文字(クラスタのグリフ 1 つ)の箱。注記のグリフは含めない [詳解]
 
struct  typeset::inl::PlaceholderRect
 プレースホルダの位置(id と物理矩形)。id 未指定のものは "" [詳解]
 
struct  typeset::inl::HitResult
 点 → 文字 [詳解]
 
struct  typeset::inl::FitResult
 自動縮小: 行数上限に収まるまで文字サイズ(と linePitch)を段階的に縮めて組み直す [詳解]
 
struct  typeset::inl::TextMetrics
 1 行計測(折り返さない) [詳解]
 

名前空間

namespace  typeset
 geom — 単位と幾何
 
namespace  typeset::inl
 inl/annotation — 行内に組み込む注記
 

関数

TextStyle typeset::inl::superscriptStyle (TextStyle s)
 上付き(脚注記号・指数用): 0.6 倍にして注記側へ 0.6em ずらす
 
dl::Group typeset::inl::objectGroup (const obj::ObjectResult &ob, const Rect &box, bool sideways)
 オブジェクトの描画命令を物理矩形 box に置く Group を作る(sideways: 時計回り 90° で横倒し)
 
Point typeset::inl::lineOrigin (WritingMode wm, Point origin, int lineOffset, Pt linePitch, Pt indent)
 行 i の行頭(中心線上の点)の物理位置
 
Point typeset::inl::lineOriginAt (WritingMode wm, Point origin, Pt adv, Pt indent)
 行送り方向に adv 進んだ行頭
 
void typeset::inl::emitParagraph (dl::DisplayList &out, const ParagraphFragment &frag, WritingMode wm, Point origin, int lineOffset=0, size_t maxChars=static_cast< size_t >(-1))
 段落を表示リストへ出す
 
std::vector< CharBoxtypeset::inl::charBoxes (const ParagraphFragment &frag, WritingMode wm, size_t lineIndex)
 行 lineIndex の文字の箱(送り方向の順。注記のグリフは含めない。wm は画像の箱の向きに使う)
 
Point typeset::inl::lineOriginOf (const ParagraphFragment &frag, WritingMode wm, Point origin, size_t lineIndex, int lineOffset=0)
 行 lineIndex の行頭(物理)。emitParagraph と同じ origin / lineOffset を渡す
 
std::vector< Recttypeset::inl::rectsFor (const ParagraphFragment &frag, WritingMode wm, Point origin, size_t charStart, size_t charEnd, int lineOffset=0)
 文字範囲 [charStart, charEnd) を覆う矩形(行ごとに 1 つ。物理座標。縦組みは縦長)。 リンクの当たり判定・選択範囲の描画用。範囲に文字が無い行は出ない
 
std::vector< PlaceholderRecttypeset::inl::placeholderRects (const ParagraphFragment &frag, WritingMode wm, Point origin, int lineOffset=0)
 
std::optional< HitResulttypeset::inl::hitTest (const ParagraphFragment &frag, WritingMode wm, Point origin, Point p, int lineOffset=0)
 行送りの箱の範囲に無い点は nullopt。行の前後の余白は最も近い文字(行頭/行末)に丸める
 
std::optional< Recttypeset::inl::caretRect (const ParagraphFragment &frag, WritingMode wm, Point origin, size_t charIndex, int lineOffset=0, Pt thickness=1.0f)
 キャレット矩形: charIndex の文字の始端(charIndex が行末なら最後の文字の終端)に、行送り方向の em の高さで thickness 幅の矩形。文字が無い(範囲外)なら nullopt。行またぎの位置は前の行の行末側
 
Point typeset::inl::originInBox (const ParagraphFragment &frag, WritingMode wm, const Rect &box, BlockAlign blockAlign=BlockAlign::Start, Align align=Align::Start)
 箱の中での段落の位置: 行送り方向に blockAlign、行の方向に align(Justify は Start 扱い)で揃えた origin (emitParagraph に渡す 1 行目の行頭)を返す。段落は箱の行長で組んであること
 
FitResult typeset::inl::fitParagraph (ParagraphLayouter &layouter, const Paragraph &para, WritingMode wm, const LineShapeProvider &shape, int maxLines, float minScale=0.5f, float step=0.05f)
 
TextMetrics typeset::inl::measureText (font::FontSet &fonts, const std::u16string &text, const TextStyle &style, WritingMode wm=WritingMode::HorizontalTb, TextOrientation orientation=TextOrientation::Mixed)