From c09ff5c4525ea6acf25d2d0e5fea53ed88202754 Mon Sep 17 00:00:00 2001 From: Hironori Kitagawa Date: Sat, 8 Oct 2011 09:16:59 +0900 Subject: [PATCH] 'parbdd' should be effective if the paragraph is indented. --- doc/man-en.pdf | Bin 503522 -> 504387 bytes doc/manual.dtx | 126 +++++++++++++++++++++++++++++++++++++++++++---- src/jfm-min.lua | 10 ++-- src/luatexja/jfmglue.lua | 5 +- test/jfm-test.lua | 16 +++++- test/jfm-ujiso16.lua | 65 +++++++++++++++++------- test/jfm-ujiso25.lua | 65 +++++++++++++++++------- test/jfm-ujisx50.lua | 63 ++++++++++++++++++------ test/test02-latex.pdf | Bin 311081 -> 311081 bytes test/test04-jfm.pdf | Bin 484142 -> 484260 bytes test/test04-jfm.tex | 4 ++ 11 files changed, 286 insertions(+), 68 deletions(-) diff --git a/doc/man-en.pdf b/doc/man-en.pdf index f4cd1ebe1232d4380e2a065acb88e4948116dcc8..9847a1a0ed20f65db8fe7bc846f97b3d26994d10 100644 GIT binary patch delta 36811 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 diff --git a/doc/manual.dtx b/doc/manual.dtx index 4bb6b6e..8ea5b72 100644 --- a/doc/manual.dtx +++ b/doc/manual.dtx @@ -861,8 +861,8 @@ In addition to those `real' characters, the following `imaginary \begin{list}{}{\def\makelabel{\ttfamily}\def\{{\char`\{}\def\}{\char`\}}} \item['lineend'] An ending of a line. \item['diffmet'] Used at a boundary between two \textbf{JAchar}s whose JFM or size is different. -\item['boxbdd'] The beginning/ending of a horizontal box. -\item['parbdd'] The beginning of a paragraph. +\item['boxbdd'] The beginning/ending of a horizontal box, and the beginging of a noindented paragraph. +\item['parbdd'] The beginning of an (indented) paragraph. \item['jcharbdd'] A boundary between \textbf{JAchar} and anything else (such as \textbf{ALchar}, kern, glue, ...). \item[$-1$] The left/right boundary of an inline math formula. @@ -1335,8 +1335,7 @@ This problem is resolved by using \section{Linebreak after Japanese Character}\label{sec-lbreak} \subsection{Reference: Behavior in \pTeX} -(NOT COMPLETED) - +%<*en> In~\pTeX, a linebreak after a Japanese character doesn't emit a space, since words are not separated by spaces in Japanese writings. However, this feature isn't fully implemented in \LuaTeX-ja due to the @@ -1358,8 +1357,36 @@ processor. State~$K$ is similar to state~$M$, and is entered after Japanese characters. The diagram of state transitions are indicated in Figure~\ref{fig-ptexipro}. Note that \pTeX\ doesn't leave state~$K$ after `beginning/ending of a group' characters. +% + +%<*ja> +欧文では文章の改行は単語間でしか行わない.そのため,\TeX では,(文字の直後の)改行は +空白文字と同じ扱いとして扱われる.一方,和文ではほとんどどどこでも改行が可能なため, +\pTeX では和文文字の直後の改行は単純に無視されるようになっている. + +このような動作は,\pTeX が\TeX からエンジンとして拡張されたことによって可能になったことである. +\pTeX の入力処理部は,\TeX におけるそれと同じように,有限オートマトンとして記述することができ, +以下に述べるような4状態を持っている. + +\begin{itemize} +\item State~$N$: 行の開始. +\item State~$S$: 空白読み飛ばし. +\item State~$M$: 行中. +\item State~$K$: 行中(和文文字の後). +\end{itemize} +また,状態遷移は,図\label{fig-ptexipro}のようになっており,図中の数字は +カテゴリーコードを表している.最初の3状態は\TeX の入力処理部と同じであり, +図中から状態$K$と「$j$」と書かれた矢印を取り除けば,\TeX の入力処理部と同 +じものになる. + +この図から分かることは, +\begin{quote} +行が和文文字(とグループ境界文字)で終わっていれば,改行は無視される +\end{quote} +ということである. +% + \begin{figure}[tb] -\label{fig-ptexipro} \begin{gather*} \def\sp{\text{\tt\char32}} \xymatrix{&& @@ -1382,10 +1409,12 @@ after `beginning/ending of a group' characters. \item Category codes 9~(ignored), 14~(comment)~and~15~(invalid) are omitted in above diagram. \end{itemize} \caption{State transitions of \pTeX's input processor.} +\label{fig-ptexipro} \end{figure} \subsection{Behavior in \LuaTeX-ja} +%<*en> States in the input processoe of \LuaTeX\ is the same as that of \TeX, and they can't be customized by any callbacks. Hence, we can only use \verb+process_input_buffer+ and \verb+token_filter+ callbacks for to @@ -1397,11 +1426,11 @@ token \emph{in the input processor}. So we can use only the \verb+process_input_buffer+ callback. This means that suppressing a space must be done \emph{just before} an input line is read. -Considering these situations, handling of a end-of-line in \LuaTeX-ja are as follows: +Considering these situations, handling of an end-of-line in \LuaTeX-ja are as follows: \begin{quote} A character U+FFFFF (its category code is set to 14~(comment) by -\LuaTeX-ja) is appended to an input line, before \LuaTeX\ actually -process it, if and only if the following two conditions are satisfied: +\LuaTeX-ja) is appended to an input line, \emph{before \LuaTeX\ actually +process it}, if and only if the following two conditions are satisfied: \begin{enumerate} \item The category code of the character $\langle${return}$\rangle$ (whose character code is 13) is 5~(end-of-line). @@ -1411,11 +1440,88 @@ process it, if and only if the following two conditions are satisfied: \bigl(\{\text{catcode}=1\}\cup\{\text{catcode}=2\}\bigr)^* \] \end{enumerate} +\end{quote} + +\paragraph{Remark} +The following example shows the major difference from the behavior of \pTeX: +\begin{LTXexample} +\ltjsetparameter{autoxspacing=false} +\ltjsetparameter{jacharrange={-6}}xあ +y\ltjsetparameter{jacharrange={+6}}zあ +u +\end{LTXexample} +\begin{itemize} +\item There is no space between `x' and `y', since the line~2 ends with a \textbf{JAchar} `あ' +(this `あ' considered as an \textbf{JAchar} at the ending of line~1). +\item There is no space between `あ' (in the line~3) and `u', since the + line~3 ends with an \textbf{ALchar} +(the letter `あ' considered as an \textbf{ALchar} at the ending of line~2). +\end{itemize} +% +%<*ja> +\LuaTeX の入力処理部は\TeX のそれと全く同じであり,callbackによりユーザが +カスタマイズすることはできない.このため,改行抑制の目的でユーザが利用で +きそうなcallbackとしては,\verb+process_input_buffer+や +\verb+token_filter+に限られてしまう.しかし,\TeX の入力処理部をよく見る +と,後者も役には経たないことが分かる:改行文字は,入力処理部によってトー +クン化される時に,カテゴリーコード10の32番文字へと置き換えられてしまうた +め,\verb+token_filter+で非標準なトークン読み出しを行おうとしても,空白文 +字由来のトークンと,改行文字由来のトークンは区別できないのだ. + +すると,我々のとれる道は,\verb+process_input_buffer+を用いて +\LuaTeX の入力処理部に引き渡される前に入力文字列を編集するというものしかない. +以上を踏まえ,\LuaTeX-jaにおける「和文文字直後の改行抑制」の処理は,次のようになっている: + +\begin{quote} +各入力行に対し,\textbf{その入力行が読まれる前の内部状態で} +以下の2条件が満たされている場合,\LuaTeX-jaはU+FFFFF番の文字 +\footnote{この文字はコメント文字として扱われるように\LuaTeX-ja内部で設定をしている.} +を末尾に追加する.よって,その場合に改行は空白とは見做されないこととなる. +\begin{enumerate} +\item 改行文字(文字コード13番)のカテゴリーコードが5~(end-of-line)である. +\item 入力行は次の「正規表現」にマッチしている: +\[ + (\text{any char})^*(\textbf{JAchar}) + \bigl(\{\text{catcode}=1\}\cup\{\text{catcode}=2\}\bigr)^* +\] +\end{enumerate} \end{quote} +この仕様は,前節で述べた\pTeX の仕様にできるだけ近づけたものとなっている.最初の条件は, +\texttt{verbatim}系環境などの日本語対応マクロを書かなくてすませるためのものである. +しかしながら,完全に同じ挙動が実現できたわけではない. +差異は,次の例が示すように,和文文字の範囲を変更した行の改行において見られる: +\begin{LTXexample} +\ltjsetparameter{autoxspacing=false} +\ltjsetparameter{jacharrange={-6}}xあ +y\ltjsetparameter{jacharrange={+6}}zあ +u +\end{LTXexample} +もし\pTeX とまったく同じ挙動を示すならば,出力は +「\hbox{\ltjsetparameter{autoxspacing=false}x yzあu}」となるべきである.しかし,実際には +上のように異なる挙動となっている. +\begin{itemize} +\item 2行目は「あ」という和文文字で終わる(2行目を処理する前の時点では, + 「あ」は和文文字扱いである)ため,直後の改行文字は無視される. +\item 3行目は「あ」という欧文文字で終わる(2行目を処理する前の時点では, + 「あ」は欧文文字扱いである)ため,直後の改行文字は空白に置き換わる. +\end{itemize} +このため,トラブルを避けるために,和文文字の範囲を\verb+\ltjsetparameter+で編集した場合, +その行はそこで改行するようにした方がいいだろう. +% + + \section{Insertion of JFM glues, \textsf{kanjiskip} and \textsf{xkanjiskip}} -This is the longest section of the document. +%<*en> +This will be the longest section of the document. +However, ... +% + +%<*ja> +\LuaTeX-ja における和文処理グルーの挿入方法は,\pTeX のそれとは全く異なる.…… + +% + -jfmglue.tex の内容をここに入れる \end{document} diff --git a/src/jfm-min.lua b/src/jfm-min.lua index 7b89006..91a71a4 100644 --- a/src/jfm-min.lua +++ b/src/jfm-min.lua @@ -11,6 +11,9 @@ luatexja.jfont.define_jfm { zw = 1.0, zh = vscale, [0] = { + chars = {'parbdd'}, + -- this line has no effect, but it is useful to note + -- that 'parbdd' is in the character class 0. align = 'left', left = 0.0, down = 0.0, width = 1.0, height = vht, depth = vdp, italic=0.0, glue = { @@ -257,9 +260,4 @@ luatexja.jfont.define_jfm { [99] = { -- box末尾 chars = {'boxbdd'}, }, - [199] = { -- box末尾 - chars = {'parbdd'}, - kern = {[6] = 0.476196} - }, - -} \ No newline at end of file +} diff --git a/src/luatexja/jfmglue.lua b/src/luatexja/jfmglue.lua index 4da6f2a..8aec0fd 100644 --- a/src/luatexja/jfmglue.lua +++ b/src/luatexja/jfmglue.lua @@ -76,6 +76,7 @@ local ltjs_get_skip_table = ltjs.get_skip_table local ltjf_font_metric_table = ltjf.font_metric_table local ltjf_metrics = ltjf.metrics local box_stack_level +local par_indented -- is the paragraph indented? -------------------- Helper functions @@ -770,7 +771,7 @@ local function handle_list_head() if Np.id == id_jglyph or (Np.id==id_pbox and Np.met) then if not ihb_flag then local g - if mode then + if par_indented then g = new_jfm_glue(Np, find_char_class('parbdd',Np.met), Np.class) else g = new_jfm_glue(Np, find_char_class('boxbdd',Np.met), Np.class) @@ -790,6 +791,7 @@ end -- initialize local function init_var() lp = head; Bp = {}; widow_Bp = {}; widow_Np = {first = nil} + par_indented = false box_stack_level = ltjp.box_stack_level kanji_skip=skip_table_to_spec('kanjiskip') xkanji_skip=skip_table_to_spec('xkanjiskip') @@ -808,6 +810,7 @@ local function init_var() -- hbox from \parindent is skipped. while lp and ((lp.id==id_whatsit and lp.subtype~=sid_user) or ((lp.id==id_hlist) and (lp.subtype==3))) do + if (lp.id==id_hlist) and (lp.subtype==3) then par_indented = true end lp=node_next(lp) end last=node.tail(head) else diff --git a/test/jfm-test.lua b/test/jfm-test.lua index aa74647..cd7fe02 100644 --- a/test/jfm-test.lua +++ b/test/jfm-test.lua @@ -12,7 +12,7 @@ luatexja.jfont.define_jfm { chars = { 'あ' }, align = 'left', left = 0.0, down = 0.0, width = 1.0, height = 0.88, depth = 0.12, italic=0.0, - glue = { [3] = { 1.41, 0, 0} }, + glue = { [3] = { 1.41, 0, 0}, [399] = {1.25, 0.43, 0.87} }, kern = { [8] = -1.41 , [2] = 2.0, [99] = 1.21 } }, [11] = { @@ -59,6 +59,12 @@ luatexja.jfont.define_jfm { align = 'left', left = 0.0, down = 0.0, width = 1.0, height = 0.88, depth = 0.12, italic=0.0 }, + [4] = { + chars = { 'エ' }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.0, + glue = { [199] = { 0.78, 0, 0} }, + }, [99] = { chars = { 'jcharbdd' }, glue = { [11] = { 1.41, 0, 0} }, @@ -68,6 +74,14 @@ luatexja.jfont.define_jfm { chars = { 'boxbdd' }, glue = { [51] = { 1.03, 0, 0} , [1] = { 0.94, 0.23, 0.45 }}, }, + [299] = { + chars = { 'parbdd' }, + glue = { [51] = { 0.68, 0.02, 0.04} }, + }, + [399] = { + chars = { -1 }, -- math + glue = { [0] = { 0.68, 0.02, 0.04} }, + }, [8] = { chars = { 'lineend' }, } diff --git a/test/jfm-ujiso16.lua b/test/jfm-ujiso16.lua index 4994d61..a9f5082 100644 --- a/test/jfm-ujiso16.lua +++ b/test/jfm-ujiso16.lua @@ -13,8 +13,8 @@ luatexja.jfont.define_jfm { [1] = { -- 開き括弧類 chars = { - 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, - 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F + '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', + '〘', '〝', '(', '[', '{', '⦅' }, align = 'right', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, @@ -25,8 +25,8 @@ luatexja.jfont.define_jfm { [2] = { -- 閉じ括弧類 chars = { - 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, - 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60 + '’', '”', '、', '〉', '》', '」', '』', '】', '〕', + '〗', '〙', '〟', ')', ',', ']', '}', '⦆' }, align = 'left', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, @@ -35,12 +35,13 @@ luatexja.jfont.define_jfm { [1] = { 0.5 , 0.0, 0.5 }, [3] = { 0.25, 0.0, 0.25 }, [5] = { 0.5 , 0.0, 0.5 }, + [6] = { 0.5 , 0.0, 0.5 }, [7] = { 0.5 , 0.0, 0.5 } } }, [3] = { -- 中点類 - chars = {0x30FB, 0xFF1A, 0xFF1B}, + chars = {'・', ':', ';'}, align = 'middle', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, glue = { @@ -50,12 +51,13 @@ luatexja.jfont.define_jfm { [3] = { 0.5 , 0.0, 0.5 }, [4] = { 0.25, 0.0, 0.25 }, [5] = { 0.25, 0.0, 0.25 }, + [6] = { 0.25, 0.0, 0.25 }, [7] = { 0.25, 0.0, 0.25 } } }, [4] = { -- 句点類 - chars = {0x3002, 0xFF0E}, + chars = {'。', '.'}, align = 'left', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, glue = { @@ -63,12 +65,13 @@ luatexja.jfont.define_jfm { [1] = { 0.5 , 0.0, 0.0 }, [3] = { 0.75, 0.0, 0.25 }, [5] = { 0.5 , 0.0, 0.0 }, + [6] = { 0.5 , 0.0, 0.0 }, [7] = { 0.5 , 0.0, 0.0 } } }, [5] = { -- ダッシュ - chars = { 0x2015, 0x2025, 0x2026 }, + chars = { '―', '‥', '…' }, align = 'left', left = 0.0, down = 0.0, width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.16, glue = { @@ -80,19 +83,42 @@ luatexja.jfont.define_jfm { } }, - [6] = { -- box末尾 - chars = {'boxbdd'}, + [6] = { -- 感嘆符・疑問符 + chars = { '?', '!' }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.16, + glue = { + [0] = { 0.5 , 0.0, 0.5 }, + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 }, + [7] = { 0.5 , 0.0, 0.5 }, + }, + kern = { + [5] = 0.0 + } }, [7] = { -- 半角カナ chars = { - 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, - 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, - 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, - 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, - 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, - 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, - 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F + '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', + 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', + 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', + 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', + 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', + 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', + 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚', + "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522", + "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529", + "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536", + "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543", + "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550", + "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557", + "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564", + "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571", + "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578", + "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585", + "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592", + "AJ1-593", "AJ1-594", "AJ1-595", "AJ1-596", "AJ1-597", "AJ1-598", }, align = 'left', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.16, @@ -101,4 +127,9 @@ luatexja.jfont.define_jfm { [3] = { 0.25, 0.0, 0.25 } } }, -} \ No newline at end of file + + [99] = { -- box末尾 + chars = {'boxbdd', 'parbdd'}, + }, + +} diff --git a/test/jfm-ujiso25.lua b/test/jfm-ujiso25.lua index 4c1e088..73bac71 100644 --- a/test/jfm-ujiso25.lua +++ b/test/jfm-ujiso25.lua @@ -13,8 +13,8 @@ luatexja.jfont.define_jfm { [1] = { -- 開き括弧類 chars = { - 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3025, - 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F + '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', + '〘', '〝', '(', '[', '{', '⦅' }, align = 'right', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, @@ -25,8 +25,8 @@ luatexja.jfont.define_jfm { [2] = { -- 閉じ括弧類 chars = { - 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, - 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60 + '’', '”', '、', '〉', '》', '」', '』', '】', '〕', + '〗', '〙', '〟', ')', ',', ']', '}', '⦆' }, align = 'left', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, @@ -35,12 +35,13 @@ luatexja.jfont.define_jfm { [1] = { 0.5 , 0.0, 0.5 }, [3] = { 0.25, 0.0, 0.25 }, [5] = { 0.5 , 0.0, 0.5 }, + [6] = { 0.5 , 0.0, 0.5 }, [7] = { 0.5 , 0.0, 0.5 } } }, [3] = { -- 中点類 - chars = {0x30FB, 0xFF1A, 0xFF1B}, + chars = {'・', ':', ';'}, align = 'middle', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, glue = { @@ -50,12 +51,13 @@ luatexja.jfont.define_jfm { [3] = { 0.5 , 0.0, 0.5 }, [4] = { 0.25, 0.0, 0.25 }, [5] = { 0.25, 0.0, 0.25 }, + [6] = { 0.25, 0.0, 0.25 }, [7] = { 0.25, 0.0, 0.25 } } }, [4] = { -- 句点類 - chars = {0x3002, 0xFF0E}, + chars = {'。', '.'}, align = 'left', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, glue = { @@ -63,12 +65,13 @@ luatexja.jfont.define_jfm { [1] = { 0.5 , 0.0, 0.0 }, [3] = { 0.75, 0.0, 0.25 }, [5] = { 0.5 , 0.0, 0.0 }, + [6] = { 0.5 , 0.0, 0.0 }, [7] = { 0.5 , 0.0, 0.0 } } }, [5] = { -- ダッシュ - chars = { 0x2015, 0x2025, 0x2026 }, + chars = { '―', '‥', '…' }, align = 'left', left = 0.0, down = 0.0, width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.25, glue = { @@ -80,19 +83,42 @@ luatexja.jfont.define_jfm { } }, - [6] = { -- box末尾 - chars = {'boxbdd'}, + [6] = { -- 感嘆符・疑問符 + chars = { '?', '!' }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.88*0.25, + glue = { + [0] = { 0.5 , 0.0, 0.5 }, + [1] = { 0.5 , 0.0, 0.5 }, + [3] = { 0.25, 0.0, 0.25 }, + [7] = { 0.5 , 0.0, 0.5 }, + }, + kern = { + [5] = 0.0 + } }, [7] = { -- 半角カナ chars = { - 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, - 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, - 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, - 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, - 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, - 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, - 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F + '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', + 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', + 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', + 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', + 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', + 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', + 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚', + "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522", + "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529", + "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536", + "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543", + "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550", + "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557", + "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564", + "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571", + "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578", + "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585", + "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592", + "AJ1-593", "AJ1-594", "AJ1-595", "AJ1-596", "AJ1-597", "AJ1-598", }, align = 'left', left = 0.0, down = 0.0, width = 0.5, height = 0.88, depth = 0.12, italic=0.88*0.25, @@ -101,4 +127,9 @@ luatexja.jfont.define_jfm { [3] = { 0.25, 0.0, 0.25 } } }, -} \ No newline at end of file + + [99] = { -- box末尾 + chars = {'boxbdd', 'parbdd'}, + }, + +} diff --git a/test/jfm-ujisx50.lua b/test/jfm-ujisx50.lua index 1dfa16d..9c20dd4 100644 --- a/test/jfm-ujisx50.lua +++ b/test/jfm-ujisx50.lua @@ -13,8 +13,8 @@ luatexja.jfont.define_jfm { [1] = { -- 開き括弧類 chars = { - 0x2018, 0x201C, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3025, - 0x3018, 0x301D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F + '‘', '“', '〈', '《', '「', '『', '【', '〔', '〖', + '〘', '〝', '(', '[', '{', '⦅' }, align = 'right', left = 0.0, down = 0.0, width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, @@ -25,8 +25,8 @@ luatexja.jfont.define_jfm { [2] = { -- 閉じ括弧類 chars = { - 0x2019, 0x201D, 0x3001, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, - 0x3017, 0x3019, 0x301F, 0xFF09, 0xFF0C, 0xFF3D, 0xFF5D, 0xFF60 + '’', '”', '、', '〉', '》', '」', '』', '】', '〕', + '〗', '〙', '〟', ')', ',', ']', '}', '⦆' }, align = 'left', left = 0.0, down = 0.0, width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, @@ -35,12 +35,13 @@ luatexja.jfont.define_jfm { [1] = { 0.5*1.5 , 0.0, 0.5 }, [3] = { 0.25*1.5, 0.0, 0.25 }, [5] = { 0.5*1.5 , 0.0, 0.5 }, + [6] = { 0.5*1.5 , 0.0, 0.5 }, [7] = { 0.5*1.5 , 0.0, 0.5 } } }, [3] = { -- 中点類 - chars = {0x30FB, 0xFF1A, 0xFF1B}, + chars = {'・', ':', ';'}, align = 'middle', left = 0.0, down = 0.0, width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, glue = { @@ -50,12 +51,13 @@ luatexja.jfont.define_jfm { [3] = { 0.5*1.5 , 0.0, 0.5 }, [4] = { 0.25*1.5, 0.0, 0.25 }, [5] = { 0.25*1.5, 0.0, 0.25 }, + [6] = { 0.25*1.5, 0.0, 0.25 }, [7] = { 0.25*1.5, 0.0, 0.25 } } }, [4] = { -- 句点類 - chars = {0x3002, 0xFF0E}, + chars = {'。', '.'}, align = 'left', left = 0.0, down = 0.0, width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, glue = { @@ -63,12 +65,13 @@ luatexja.jfont.define_jfm { [1] = { 0.5*1.5 , 0.0, 0.0 }, [3] = { 0.75*1.5, 0.0, 0.25 }, [5] = { 0.5*1.5 , 0.0, 0.0 }, + [6] = { 0.5*1.5 , 0.0, 0.0 }, [7] = { 0.5*1.5 , 0.0, 0.0 } } }, [5] = { -- ダッシュ - chars = { 0x2015, 0x2025, 0x2026 }, + chars = { '―', '‥', '…' }, align = 'left', left = 0.0, down = 0.0, width = 1.0*1.5, height = 0.88, depth = 0.12, italic=0.0, glue = { @@ -80,19 +83,42 @@ luatexja.jfont.define_jfm { } }, - [6] = { -- box末尾 - chars = {'boxbdd'}, + [6] = { -- 感嘆符・疑問符 + chars = { '?', '!' }, + align = 'left', left = 0.0, down = 0.0, + width = 1.0, height = 0.88, depth = 0.12, italic=0.0, + glue = { + [0] = { 0.5*1.5 , 0.0, 0.5 }, + [1] = { 0.5*1.5 , 0.0, 0.5 }, + [3] = { 0.25*1.5, 0.0, 0.25 }, + [7] = { 0.5*1.5 , 0.0, 0.5 }, + }, + kern = { + [5] = 0.0 + } }, [7] = { -- 半角カナ chars = { - 0xFF61, 0xFF62, 0xFF63, 0xFF64, 0xFF65, 0xFF66, 0xFF67, 0xFF68, 0xFF69, - 0xFF6A, 0xFF6B, 0xFF6C, 0xFF6D, 0xFF6E, 0xFF6F, 0xFF70, 0xFF71, 0xFF72, - 0xFF73, 0xFF74, 0xFF75, 0xFF76, 0xFF77, 0xFF78, 0xFF79, 0xFF7A, 0xFF7B, - 0xFF7C, 0xFF7D, 0xFF7E, 0xFF7F, 0xFF80, 0xFF81, 0xFF82, 0xFF83, 0xFF84, - 0xFF85, 0xFF86, 0xFF87, 0xFF88, 0xFF89, 0xFF8A, 0xFF8B, 0xFF8C, 0xFF8D, - 0xFF8E, 0xFF8F, 0xFF90, 0xFF91, 0xFF92, 0xFF93, 0xFF94, 0xFF95, 0xFF96, - 0xFF97, 0xFF98, 0xFF99, 0xFF9A, 0xFF9B, 0xFF9C, 0xFF9D, 0xFF9E, 0xFF9F + '。', '「', '」', '、', '・', 'ヲ', 'ァ', 'ィ', 'ゥ', + 'ェ', 'ォ', 'ャ', 'ュ', 'ョ', 'ッ', 'ー', 'ア', 'イ', + 'ウ', 'エ', 'オ', 'カ', 'キ', 'ク', 'ケ', 'コ', 'サ', + 'シ', 'ス', 'セ', 'ソ', 'タ', 'チ', 'ツ', 'テ', 'ト', + 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'ヒ', 'フ', 'ヘ', + 'ホ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ヤ', 'ユ', 'ヨ', + 'ラ', 'リ', 'ル', 'レ', 'ロ', 'ワ', 'ン', '゙', '゚', + "AJ1-516", "AJ1-517", "AJ1-518", "AJ1-519", "AJ1-520", "AJ1-521", "AJ1-522", + "AJ1-523", "AJ1-524", "AJ1-525", "AJ1-526", "AJ1-527", "AJ1-528", "AJ1-529", + "AJ1-530", "AJ1-531", "AJ1-532", "AJ1-533", "AJ1-534", "AJ1-535", "AJ1-536", + "AJ1-537", "AJ1-538", "AJ1-539", "AJ1-540", "AJ1-541", "AJ1-542", "AJ1-543", + "AJ1-544", "AJ1-545", "AJ1-546", "AJ1-547", "AJ1-548", "AJ1-549", "AJ1-550", + "AJ1-551", "AJ1-552", "AJ1-553", "AJ1-554", "AJ1-555", "AJ1-556", "AJ1-557", + "AJ1-558", "AJ1-559", "AJ1-560", "AJ1-561", "AJ1-562", "AJ1-563", "AJ1-564", + "AJ1-565", "AJ1-566", "AJ1-567", "AJ1-568", "AJ1-569", "AJ1-570", "AJ1-571", + "AJ1-572", "AJ1-573", "AJ1-574", "AJ1-575", "AJ1-576", "AJ1-577", "AJ1-578", + "AJ1-579", "AJ1-580", "AJ1-581", "AJ1-582", "AJ1-583", "AJ1-584", "AJ1-585", + "AJ1-586", "AJ1-587", "AJ1-588", "AJ1-589", "AJ1-590", "AJ1-591", "AJ1-592", + "AJ1-593", "AJ1-594", "AJ1-595", "AJ1-596", "AJ1-597", "AJ1-598", }, align = 'left', left = 0.0, down = 0.0, width = 0.5*1.5, height = 0.88, depth = 0.12, italic=0.0, @@ -101,4 +127,9 @@ luatexja.jfont.define_jfm { [3] = { 0.25*1.5, 0.0, 0.25 } } }, + + [99] = { -- box末尾 + chars = {'boxbdd', 'parbdd'}, + }, + } \ No newline at end of file diff --git a/test/test02-latex.pdf b/test/test02-latex.pdf index 053648143bba52c14df58e5b6aade10ca631460f..99b93a2b64250bda93d8bea839011d9a4ab82df6 100644 GIT binary patch delta 138 zcmZ4aPiW;op@tU57N!>FEiAelHO&nzOiT<7v<)oP4Gh#Z^?mbGToOxC6*OF|j0_A7 z4Gj#SDz=AhWckhQ4I?>0)MTYGml-X6a<%;$~=JW~X37K*{#W Jds(J20sxAdB=-OS delta 138 zcmZ4aPiW;op@tU57N!>FEiAelHBAi6OihiSkbOr(i=s$@a;6 IS*9@p0Bv(5Hvj+t diff --git a/test/test04-jfm.pdf b/test/test04-jfm.pdf index 5a957efccd879d1d4884883981ba1d9231d70f88..15c8eab22c10287b59253c3b29b16280d3b49eb1 100644 GIT binary patch delta 1601 zcmV-H2EO^O#vP=`9k2&60x>j~q5TFXf5ll%Z{s!)z2{fxwlcP6Ne+h}MX^8wYz_f> zDC*mG58Ab}c5Tb9Kd{Na??{v)Dwb@^wvYsYDO!9p>X#-OEu$~-I@u&YHpzPW%U}o=;^_cH{EgZoUS-YatXsxOI?fs@e_kfL zsedzjNye*vI!-n(gRi4UvWce2rr^k|fk+$4jL7Z&&H>e@q0pRD^AGjOj|UzhbH<>p zjkm~W3m|te=KtjJT@YRfWj{r(N z!az^Lr$M}*=xGU*>vT_)3(Yjb)szP?9YilQ-koypSeYm<(>yLIf1R1jMGr}|1*oe; zFViQ@^^HYOQGMwG(K}o1&>DssF4iX`U%~dIPiTNiakV~$Fz4%2&3Na{ij+mTg7;Gq zL|S&!6E8@`L$Tei;U$1MUqougyYr${{&{r2oBYVq9>NrD&fP481p_KK=!i++-?wqgEuP*lt#cB1@b8jg>Q%2sBm1Cn_aZg+UcD zGFPX!5koGtX_j=%n7%Yi%3R;Cjg0^%+z%&WBQ)MUHbjO}XjYL8=aWrZ#BrGNUcn5C0RI{x4vXQ}^ueE73{wP>NsQs+n&cS#M0e_SwLDxhlFPqf(ja6_ra z4Mj(;=6N5RprUl|M7?D2H%Z=$#xYhiQ{MJ8@1VRdDb%X+i5%yM>Xm9_(xP?ER*a*} zU$3Vs&st_fCpK`Z7rqp!t1Pd0)U7U)y3$2ilb1#2t))RBC57^`=5lEWVL}llzN zP6iXnEf@X75~mWTyq$SJx@d3d@@#SIV1n$P$6Xss0m}I&gV1#6NCFaf5T;h<93)x$ zTDvqBpjmxoy5F0LrkV|?mPGFIe^rP=_*`lFf5iZ)0Wp*DHxq+CHHSVm0f#;{0*5{| z1BX5}1cyE~1&2O02Dd&n2l^leF*r0eFf*4vRtFpgF*r0eFf+GcRtF*rQAR^KGBG$t zHa9piMnOb0H8VLhF+)T&FhVv(K{Po+H9jCbMngF=F*rsxH#jjyK}0k)GdVOdLqs$% zLN-M~G&w>wK3y+NWo~D5Xdp5+H6W7#3?+Xh(91FdK^O(#b0$4KNF>B9;}Vw$B0)rk z;X&Anva#|Ac?C;*4`8hhq#~rT59k2&6128f&li?C3e^^Uz+ei$)=U3=f8C`Q{NX~0f6lj3v5MU3B z^{wqet)1HI=lX#r|9&Zt97(ZcNA((w5qLDxeB{hWex!UmxcU7KISCLfT22NJiB6P! zbmA~^M&{8agL(2PU1jU+`#M{Vf9v(hQ#$UEPQS`nr^|f!m``JxEr$7k(|NWXf5#{D zhcI347Q<}))cZ2H7n{a4+0@E_ca&I%;Pl?^J4J@y_qA0@h9CHSTu&-75S%l6t9^eoAcv_7kIvRUmnVVQb zv_M#ci7cO@7RdmUtsA#gI$dKR-%g|J+5x+QfnxD$w8&=Lry2 z-kEmmJvdKswQr|gEBR|d&|vF=QZlPeoT12V<9f%k57z<^s-clD|2Vk$x5Ti55yD;- zg9^#F`OT*VwF#K;>tAQlz*otF;4hO-v#X+=me^n&vr)!JS>~tfh zr4d7XX~%p#X$K{8I@%G6Jkyb#S89;9faZ(_g)#xkT*19Az04H`)23D`fb!Q;E2a0k zeraM!fv@Fd|BhKol7FT>`kX+Vv$?Yc$H*g(N#_17xTp~?-J~FvWfGb zl@5)`&u3E==Jl@yHRGMLiKUygSnG6->a2fmUm6=xwhT(%xVko?x~Xv^=_!r04f!v2 zx=599u>BuG1H_IegQqozr!@hGr!@kHr!@nIr!@qJr!@tKr!@w*r!@x+AqFrxG&VFj zm%3I590o8sG&VFjx7=0-A`4JAMKVS-Hbq7m)MPtQeZsiO5$zop!w+FLG(cm)&2G!lsziFAdrL7vRD^YF(;-(BF4msh{Yzu{cpP#h!l}dTTKf` zWInBi!V~#ttKFiDDBW7!5E;=!lrL=7e