OSDN Git Service

Support 'parbdd' in JFM.
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Fri, 7 Oct 2011 00:51:13 +0000 (09:51 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Fri, 7 Oct 2011 00:51:13 +0000 (09:51 +0900)
 - Changed ltjclasses for compatibility with pTeX.
   (jfm-min.lua では段落始めの括弧は全角二分下がりになる)
 - Also supported `charatcer -1' in JFM; this is boundary of math formulas.
 - 要検討:pdf 内における実際の和文文字の出力上下位置(参考:min10.pdf)

15 files changed:
doc/man-en.pdf
doc/manual.dtx
src/jfm-jis.lua
src/jfm-min.lua
src/jfm-ujis.lua
src/ltjclasses/ltjarticle.cls
src/ltjclasses/ltjbook.cls
src/ltjclasses/ltjclasses.dtx
src/ltjclasses/ltjclasses.pdf
src/ltjclasses/ltjreport.cls
src/luatexja/jfmglue.lua
test/test04-jfm.pdf
test/test04-jfm.tex
test/test12-ltjartile.pdf [new file with mode: 0644]
test/test12-ltjartile.tex [new file with mode: 0644]

index 1217ed1..f4cd1eb 100644 (file)
Binary files a/doc/man-en.pdf and b/doc/man-en.pdf differ
index 45d5aeb..4bb6b6e 100644 (file)
@@ -11,7 +11,7 @@
 % \def\headfont{\sffamily\gtfamily} is needed in ordinal documents
 %</ja>
 
-\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=<string>] ...
+\item[jfmvar=<string>] 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=<length>, height=<length>, depth=<length>, italic=<length>]\ (required)
 
index 94746dc..642a247 100644 (file)
@@ -86,7 +86,7 @@ luatexja.jfont.define_jfm {
    },
 
    [99] = { -- box末尾
-      chars = {'boxbdd'},
+      chars = {'boxbdd', 'parbdd'},
    },
 
 }
\ No newline at end of file
index 23c8ace..7b89006 100644 (file)
@@ -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
index 0569384..59b763e 100644 (file)
@@ -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
index 24e3320..a157f90 100644 (file)
 \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
index 62d414b..991534c 100644 (file)
 \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
index bc8f650..a58fd97 100644 (file)
@@ -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
 %
 % \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}
+%</article|report|book>
+%    \end{macrocode}
+%
 % ここでは、\LaTeX{}のフォントサイズコマンドの定義をしています。
 % フォントサイズコマンドの定義は、次のコマンドを用います。
 %
index 432771f..113d107 100644 (file)
Binary files a/src/ltjclasses/ltjclasses.pdf and b/src/ltjclasses/ltjclasses.pdf differ
index 1e28360..5c1a6d4 100644 (file)
 \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
index 5a44060..4da6f2a 100644 (file)
@@ -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
index fc02997..5a957ef 100644 (file)
Binary files a/test/test04-jfm.pdf and b/test/test04-jfm.pdf differ
index 7a98ce5..e9b190b 100644 (file)
 \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 (file)
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 (file)
index 0000000..52c8c34
--- /dev/null
@@ -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