From: Hironori Kitagawa Date: Fri, 7 Oct 2011 00:51:13 +0000 (+0900) Subject: Support 'parbdd' in JFM. X-Git-Tag: 20120419.0~57 X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=fc32774ad3ea1628c94eef6631d361736fc433ad;p=luatex-ja%2Fluatexja.git Support 'parbdd' in JFM. - Changed ltjclasses for compatibility with pTeX. (jfm-min.lua では段落始めの括弧は全角二分下がりになる) - Also supported `charatcer -1' in JFM; this is boundary of math formulas. - 要検討:pdf 内における実際の和文文字の出力上下位置(参考:min10.pdf) --- diff --git a/doc/man-en.pdf b/doc/man-en.pdf index 1217ed1..f4cd1eb 100644 Binary files a/doc/man-en.pdf and b/doc/man-en.pdf differ diff --git a/doc/manual.dtx b/doc/manual.dtx index 45d5aeb..4bb6b6e 100644 --- a/doc/manual.dtx +++ b/doc/manual.dtx @@ -11,7 +11,7 @@ % \def\headfont{\sffamily\gtfamily} is needed in ordinal documents % -\usepackage{amsmath,amssymb,xcolor,pict2e} +\usepackage{amsmath,amssymb,xcolor,pict2e,multienum} \usepackage{booktabs,listings,lltjlisting,showexpl,multicol} \usepackage{luatexja-otf} \usepackage[unicode=true]{hyperref} @@ -177,18 +177,12 @@ We say `alphabetic fonts' for fonts used in \textbf{ALchar}, and `Japanese fonts This project is hosted by SourceForge.JP. \paragraph{Members}\ -% \begin{multicols}{2} -% \begin{itemize} -% \item Hironori KITAGAWA -% \item Kazuki MAEDA -% \item Takayuki YATO -% \item Yusuke KUROKI -% \item Noriyuki ABE -% \item Munehiro YAMAMOTO -% \item Tomoaki HONDA -% \par\ -% \end{itemize} -% \end{multicols} +\begin{multienumerate} +\def\labelenumi{$\bullet$} +\mitemxxx{Hironori KITAGAWA}{Kazuki MAEDA}{Takayuki YATO} +\mitemxxx{Yusuke KUROKI}{Noriyuki ABE}{Munehiro YAMAMOTO} +\mitemxx{Tomoaki HONDA}{}{} +\end{multienumerate} % \paragraph{Acknowledgments} -- 挿入するならここ @@ -783,7 +777,7 @@ The followings are JFMs shipped with Lua\TeX-ja: (乙部さんのmin10.pdfの例を使う?) \end{description} -\item[jfmvar=] ... +\item[jfmvar=] Sometimes there is a need that \end{list} @@ -864,6 +858,15 @@ This field is a list of characters which are in this character In addition to those `real' characters, the following `imaginary characters' can be specified in the list: +\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['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. +\end{list} \item[width=, height=, depth=, italic=]\ (required) diff --git a/src/jfm-jis.lua b/src/jfm-jis.lua index 94746dc..642a247 100644 --- a/src/jfm-jis.lua +++ b/src/jfm-jis.lua @@ -86,7 +86,7 @@ luatexja.jfont.define_jfm { }, [99] = { -- box末尾 - chars = {'boxbdd'}, + chars = {'boxbdd', 'parbdd'}, }, } \ No newline at end of file diff --git a/src/jfm-min.lua b/src/jfm-min.lua index 23c8ace..7b89006 100644 --- a/src/jfm-min.lua +++ b/src/jfm-min.lua @@ -257,5 +257,9 @@ 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/jfm-ujis.lua b/src/jfm-ujis.lua index 0569384..59b763e 100644 --- a/src/jfm-ujis.lua +++ b/src/jfm-ujis.lua @@ -1,6 +1,6 @@ -- -*- coding: utf-8 -*- -- jfm-ujis.lua: LuaTeX-ja 標準 JFM --- besed on upnmlminr-h.tfm (a metric in UTF/OTF package used by upTeX). +-- based on upnmlminr-h.tfm (a metric in UTF/OTF package used by upTeX). luatexja.jfont.define_jfm { dir = 'yoko', @@ -133,7 +133,7 @@ luatexja.jfont.define_jfm { }, [99] = { -- box末尾 - chars = {'boxbdd'}, + chars = {'boxbdd', 'parbdd'}, }, } \ No newline at end of file diff --git a/src/ltjclasses/ltjarticle.cls b/src/ltjclasses/ltjarticle.cls index 24e3320..a157f90 100644 --- a/src/ltjclasses/ltjarticle.cls +++ b/src/ltjclasses/ltjarticle.cls @@ -148,6 +148,9 @@ \ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} \ProcessOptions\relax \input{ltjsize1\@ptsize.clo} +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} \if@stysize \setlength\columnsep{2\Cwd} \else diff --git a/src/ltjclasses/ltjbook.cls b/src/ltjclasses/ltjbook.cls index 62d414b..991534c 100644 --- a/src/ltjclasses/ltjbook.cls +++ b/src/ltjclasses/ltjbook.cls @@ -156,6 +156,9 @@ \ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} \ProcessOptions\relax \input{ltjbk1\@ptsize.clo} +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} \if@stysize \setlength\columnsep{2\Cwd} \else diff --git a/src/ltjclasses/ltjclasses.dtx b/src/ltjclasses/ltjclasses.dtx index bc8f650..a58fd97 100644 --- a/src/ltjclasses/ltjclasses.dtx +++ b/src/ltjclasses/ltjclasses.dtx @@ -10,7 +10,7 @@ % % \fi % -% \CheckSum{4465} +% \CheckSum{4468} %% \CharacterTable %% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z %% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -510,6 +510,26 @@ % % \section{フォント} % +% Lua\LaTeX-jaの標準では,OTFパッケージ由来のメトリックが使われるようになっています. +% 本クラスでは,「p\TeX の組版と互換性をできだけ持たせる」例を提示するため, +% \begin{itemize} +% \item メトリックを\texttt{min10.tfm}ベースの\texttt{jfm-min.lua}に変更. +% \item 明朝とゴシックは両方とも\texttt{jfm-min.lua}を用いるが, +% 和文処理用グルー挿入時には「違うメトリックを使用」として思わせる. +% \item p\TeX と同様に,「異なるメトリックの2つの和文文字」の間には,両者から定める +% グルーを両方挿入する. +% \item \texttt{jfm-min.lua}では,段落始めの括弧が全角二分下がりになるようになっている. +% +% \end{itemize} +% +% \begin{macrocode} +%<*article|report|book> +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} +% +% \end{macrocode} +% % ここでは、\LaTeX{}のフォントサイズコマンドの定義をしています。 % フォントサイズコマンドの定義は、次のコマンドを用います。 % diff --git a/src/ltjclasses/ltjclasses.pdf b/src/ltjclasses/ltjclasses.pdf index 432771f..113d107 100644 Binary files a/src/ltjclasses/ltjclasses.pdf and b/src/ltjclasses/ltjclasses.pdf differ diff --git a/src/ltjclasses/ltjreport.cls b/src/ltjclasses/ltjreport.cls index 1e28360..5c1a6d4 100644 --- a/src/ltjclasses/ltjreport.cls +++ b/src/ltjclasses/ltjreport.cls @@ -154,6 +154,9 @@ \ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} \ProcessOptions\relax \input{ltjsize1\@ptsize.clo} +\DeclareFontShape{JY3}{mc}{m}{n}{<-> s * [0.924872] psft:Ryumin-Light:jfm=min}{} +\DeclareFontShape{JY3}{gt}{m}{n}{<-> s * [0.924872] psft:GothicBBB-Medium:jfm=min;jfmvar=goth}{} +\ltjglobalsetparameter{differentjfm=both} \if@stysize \setlength\columnsep{2\Cwd} \else diff --git a/src/luatexja/jfmglue.lua b/src/luatexja/jfmglue.lua index 5a44060..4da6f2a 100644 --- a/src/luatexja/jfmglue.lua +++ b/src/luatexja/jfmglue.lua @@ -646,13 +646,17 @@ end local function get_OA_skip() if not ihb_flag then - return new_jfm_glue(Np, find_char_class('jcharbdd',Np.met), Np.class) + local c + if Nq.id == id_math then c = -1 else c = 'jcharbdd' end + return new_jfm_glue(Np, find_char_class(c,Np.met), Np.class) else return nil end end local function get_OB_skip() if not ihb_flag then - return new_jfm_glue(Nq, Nq.class, find_char_class('jcharbdd',Nq.met)) + local c + if Np.id == id_math then c = -1 else c = 'jcharbdd' end + return new_jfm_glue(Nq, Nq.class, find_char_class(c,Nq.met)) else return nil end end @@ -765,7 +769,12 @@ end 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 = new_jfm_glue(Np, find_char_class('boxbdd',Np.met), Np.class) + local g + if mode 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) + end if g then set_attr(g, attr_icflag, BOXBDD) if g.id==id_glue and #Bp==0 then diff --git a/test/test04-jfm.pdf b/test/test04-jfm.pdf index fc02997..5a957ef 100644 Binary files a/test/test04-jfm.pdf and b/test/test04-jfm.pdf differ diff --git a/test/test04-jfm.tex b/test/test04-jfm.tex index 7a98ce5..e9b190b 100644 --- a/test/test04-jfm.tex +++ b/test/test04-jfm.tex @@ -296,5 +296,16 @@ \setbox0=\hbox{あ\hbox{(}あ\setbox3=\hbox{(}\unhbox3あ} \dumplist0} +\vfill\eject +\noindent{\gt\bf paragraph, hbox and math boundary} + +\setbox1=\vbox{\parindent19.2pt \rmlh\hsize=100pt\parfillskip=30pt +かエ\par\global\setbox0=\lastbox} +\dumplist0 +\setbox0=\hbox{\rmlh かエ} +\dumplist0 + +\setbox0=\hbox{\rmlh あ$a$さ$a$か} +\dumplist0 \end diff --git a/test/test12-ltjartile.pdf b/test/test12-ltjartile.pdf new file mode 100644 index 0000000..26eb25c Binary files /dev/null and b/test/test12-ltjartile.pdf differ diff --git a/test/test12-ltjartile.tex b/test/test12-ltjartile.tex new file mode 100644 index 0000000..52c8c34 --- /dev/null +++ b/test/test12-ltjartile.tex @@ -0,0 +1,26 @@ +%#!lualatex +\documentclass{ltjarticle} +\begin{document} +\noindent 漢字漢字 + +「漢字←全角二分下がり?\\ +「あいうえお」\textgt{「かきくけこ」}{\Large 「} + +次の例は「\texttt{min10}フォントについて」(乙部厳己)中のp.~8から拝借. + +\def\g#1#2#3{\leavevmode\vbox{\hsize=100pt% +\hrule height 1pt depth 0pt +\vskip#3pt\hbox{\jfont\e=file:#1:jfm=#2 at 20pt\e あいうえお}\vskip-#3pt +\hrule height 0pt depth 1pt}: #1, jfm=#2, yjabaselineshift=#3pt\par\bigskip} + +\g{KozGoPr6N-Medium.otf}{ujis}{0} +\g{KozGoPr6N-Medium.otf}{jis}{0.7563636} +\g{KozGoPr6N-Medium.otf}{jis}{0} +\g{ipaexg.ttf}{ujis}{0} +\g{ipaexg.ttf}{jis}{0.7563636} +\g{ipaexg.ttf}{jis}{0} +\g{hgrgm.ttc}{ujis}{0} +\g{hgrgm.ttc}{jis}{0} +\g{hgrgm.ttc}{jis}{0.7563636} + +\end{document} \ No newline at end of file