README export-subst
.gitattributes export-ignore
.gitignore export-ignore
+/tool/release.mak export-ignore
\end{itemize}
Then, the position of glyphs is shifted up by
\[
- \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{825}y= 0.03\dot1\dot5y.
+ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
\]
%</en>
%<*ja>
\end{itemize}
となっていたとする.すると,実際の文字の出力位置は,
\[
- \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{825}y= 0.03\dot1\dot5y
+ \frac{88x}{88x+12x} (28y+5y) - 28y = \frac{26}{25}y= 1.04y.
\]
だけ上にずらされることになる.
%</ja>
%<*en>
Furthermore, \LuaTeX-ja uses several `user-defined' whatsit nodes for
-typesetting. All those nodes store a natural number (hence the node's
-\texttt{type} is 100).
+inrernal processing. All those nodes store a natural number (hence the node's
+\texttt{type} is 100). The following \verb+user_id+s are used:
%</en>
%<*ja>
-さらに,\LuaTeX-ja はいくつかの「ユーザ定義の」whatsit ノードを組版に用いる.
+さらに,\LuaTeX-ja はいくつかの「ユーザ定義の」whatsit ノードを内部処理に用いる.
これらの全てのノードは自然数を格納している(したがってノードの \texttt{type} は
-100 である).
+100 である).次の \verb+user_id+ が使用される:
%</ja>
\begin{description}
\item[30111]
luaotfload won't be applied, and the character code is
stored in the \texttt{value} field. Each node having this
\verb+user_id+ is converted to a `glyph\_node' \emph{after}
- the callback process of luaotfload.
+ the callback process of luaotfload.
+ This \verb+user_id+ is only used by the \Pkg{luatexja-otf} package.
%</en>
%<*ja>
luaotfload のコールバックによる処理が適用されない和文文字のためのノードで,
\texttt{value} フィールドにその文字のコードが格納されている.
この \verb+user_id+ を持つノードはそれぞれが luaotfload のコールバックの処理の
-\textbf{後で} `glyph\_node' に変換される.
+\textbf{後で} `glyph\_node' に変換される.この \verb+user_id+ は %
+\Pkg{luatexja-otf} パッケージでのみ使用される.
%</ja>
+
+\item[30114]
+Nodes for indicating beginning of a paragraph.
+A paragraph which is started by \verb+\item+ in list-like environments has a horizontal box
+for its label before the actual contents. So \dots
\end{description}
%<*en>
These whatsits will be removed during the process of inserting \textbf{JAglue}s.
% -----------------------------------------
%
% \fi
-% \CheckSum{4855}
+% \CheckSum{4976}
%% \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
%<*driver>
\ProvidesFile{ltjsclasses.dtx}
%</driver>
- [2011/10/03 ]
+ [2012/04/24]
%<*driver>
\documentclass{ltjsarticle}
\usepackage{doc}
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa
+ \hskip -\@tempskipa\@inhibitglue
\else
\clubpenalty \@clubpenalty
\everypar{}%
% \end{macrocode}
% \end{macro}
%
+% \section{段落の頭へのグルー挿入禁止}
+%
+% 段落頭のかぎかっこなどを見かけ1字半下げから全角1字下げに直します。
+%
+% [2012-04-24] LuaTeX-ja では JFM に段落開始時の括弧類の字下げ幅をコントロール
+% する機能がありますが,|\item| 直後ではラベル用のボックスが段落先頭になる
+% ため,うまく働きませんでした.形を変えて復活させます.
+%
+% |\item| 命令の直後です。
+%
+% \begin{macrocode}
+\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\def\@item[#1]{%
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+ \if@nobreak
+ \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+ \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi\@inhibitglue}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+% \end{macrocode}
+%
+% |\@gnewline| についてはちょっと複雑な心境です。
+% もともとのp\LaTeXe は段落の頭にグルーが入る方で統一されていました。
+% しかし |\\| の直後にはグルーが入らず,不統一でした。
+% そこで |\\| の直後にもグルーを入れるように直していただいた経緯があります。
+% しかし,ここでは逆にグルーを入れない方で統一したいので,
+% また元に戻してしまいました。
+%
+% しかし単に戻すだけでも駄目みたいなので,ここでも最後にグルーを消しておきます。
+%
+% \begin{macrocode}
+\def\@gnewline #1{%
+ \ifvmode
+ \@nolnerr
+ \else
+ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null
+ \inhibitglue \ignorespaces
+ \fi}
+% \end{macrocode}
+%
% \section{いろいろなロゴ}
%
% \LaTeX 関連のロゴを作り直します。
[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 }
+ [7] = { 0.25, 0.0, 0.25 },
}
},
[99] = { -- box末尾
chars = {'boxbdd', 'parbdd'},
+ glue = {
+ [3] = { 0.25, 0.0, 0.25 },
+ }
},
}
\ No newline at end of file
end
Nx.pre = ltjs_get_penalty_table('pre', c, 0, box_stack_level)
Nx.post = ltjs_get_penalty_table('post', c, 0, box_stack_level)
+ Nx.char = 'jcharbdd'
else
- Nx.pre = 0; Nx.post = 0
+ Nx.pre = 0; Nx.post = 0; Nx.char = -1
end
Nx.met = nil
local y = ltjs_get_penalty_table('xsp', c, 3, box_stack_level)
local function get_OA_skip()
if not ihb_flag then
- local c
- if Nq.id == id_math then c = -1 else c = 'jcharbdd' end
+ local c = Nq.char or 'jcharbdd'
return new_jfm_glue(Np, fast_find_char_class(c,Np.met), Np.class)
else return nil
end
end
local function get_OB_skip()
if not ihb_flag then
- local c
- if Np.id == id_math then c = -1 else c = 'jcharbdd' end
+ local c = Np.char or 'jcharbdd'
return new_jfm_glue(Nq, Nq.class, fast_find_char_class(c,Nq.met))
else return nil
end
end
-- \inhibitglue
-local inhibitglue_node=node_new(id_whatsit, sid_user)
-inhibitglue_node.user_id=30111; inhibitglue_node.type=100; inhibitglue_node.value=1
function create_inhibitglue_node()
- node.write(node.copy(inhibitglue_node))
+ local tn = node_new(id_whatsit, sid_user)
+ tn.user_id=30111; tn.type=100; tn.value=1
+ node.write(tn)
end
+
+-- Node for indicating beginning of a paragraph
+-- (for ltjsclasses)
+function create_beginpar_node()
+ local tn = node_new(id_whatsit, sid_user)
+ tn.user_id=30114; tn.type=100; tn.value=1
+ node.write(tn)
+end
+
+local function whatsit_callback(Np, lp, Nq, bsl)
+ if Np.nuc then return Np
+ elseif lp.user_id == 30114 then
+ Np.first = lp; Np.nuc = lp; Np.last = lp
+ Np.char = 'parbdd'
+ Np.met = nil
+ Np.pre = 0; Np.post = 0
+ Np.xspc_before = false
+ Np.xspc_after = false
+ Np.auto_xspc = false
+ return Np
+ end
+end
+local function whatsit_after_callback(s, Nq, Np, bsl)
+ if not s and Nq.nuc.user_id == 30114 then
+ local x, y = node.prev(Nq.nuc), Nq.nuc
+ Nq.first, Nq.nuc, Nq.last = x, x, x
+ head = node_remove(head, y)
+ end
+ return s
+end
+
+luatexbase.add_to_callback("luatexja.jfmglue.whatsit_getinfo", whatsit_callback,
+ "luatexja.beginpar.np_info", 1)
+luatexbase.add_to_callback("luatexja.jfmglue.whatsit_after", whatsit_after_callback,
+ "luatexja.beginpar.np_info_after", 1)
+
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsarticle}
- [2011/10/03 ]
+ [2012/04/24]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa
+ \hskip -\@tempskipa\@inhibitglue
\else
\clubpenalty \@clubpenalty
\everypar{}%
\parindent 1\zw
\noindent
\llap{\@makefnmark\hskip0.3\zw}#1}
+\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\def\@item[#1]{%
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+ \if@nobreak
+ \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+ \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi\@inhibitglue}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+\def\@gnewline #1{%
+ \ifvmode
+ \@nolnerr
+ \else
+ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null
+ \inhibitglue \ignorespaces
+ \fi}
\def\Shou#1{\hbox{$\m@th$%
\csname S@\f@size\endcsname
\fontsize\sf@size\z@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjsbook}
- [2011/10/03 ]
+ [2012/04/24]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa
+ \hskip -\@tempskipa\@inhibitglue
\else
\clubpenalty \@clubpenalty
\everypar{}%
\parindent 1\zw
\noindent
\llap{\@makefnmark\hskip0.3\zw}#1}
+\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\def\@item[#1]{%
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+ \if@nobreak
+ \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+ \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi\@inhibitglue}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+\def\@gnewline #1{%
+ \ifvmode
+ \@nolnerr
+ \else
+ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null
+ \inhibitglue \ignorespaces
+ \fi}
\def\Shou#1{\hbox{$\m@th$%
\csname S@\f@size\endcsname
\fontsize\sf@size\z@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjskiyou}
- [2011/10/03 ]
+ [2012/04/24]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa
+ \hskip -\@tempskipa\@inhibitglue
\else
\clubpenalty \@clubpenalty
\everypar{}%
\parindent 1\zw
\noindent
\llap{\@makefnmark\hskip0.3\zw}#1}
+\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\def\@item[#1]{%
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+ \if@nobreak
+ \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+ \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi\@inhibitglue}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+\def\@gnewline #1{%
+ \ifvmode
+ \@nolnerr
+ \else
+ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null
+ \inhibitglue \ignorespaces
+ \fi}
\def\Shou#1{\hbox{$\m@th$%
\csname S@\f@size\endcsname
\fontsize\sf@size\z@
%% Right brace \} Tilde \~}
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{ltjspf}
- [2011/10/03 ]
+ [2012/04/24]
\RequirePackage{luatexja}
\newif\if@restonecol
\newif\if@titlepage
\begingroup \@svsechd \endgroup
\unskip
\@tempskipa #1\relax
- \hskip -\@tempskipa
+ \hskip -\@tempskipa\@inhibitglue
\else
\clubpenalty \@clubpenalty
\everypar{}%
\parindent 1\zw
\noindent
\llap{\@makefnmark\hskip0.3\zw}#1}
+\protected\def\@inhibitglue{\directlua{luatexja.jfmglue.create_beginpar_node()}}
+\def\@item[#1]{%
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+ \if@nobreak
+ \@nbitem
+ \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+ \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \everypar{}%
+ \fi\@inhibitglue}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+\def\@gnewline #1{%
+ \ifvmode
+ \@nolnerr
+ \else
+ \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null
+ \inhibitglue \ignorespaces
+ \fi}
\def\Shou#1{\hbox{$\m@th$%
\csname S@\f@size\endcsname
\fontsize\sf@size\z@