\item[\Param{jatextfont}\,=\{<jfam>,<jfont\_cs>\}] [\verb+\textfont+ in \TeX]
\item[\Param{jascriptfont}\,=\{<jfam>,<jfont\_cs>\}] [\verb+\scriptfont+ in \TeX]
\item[\Param{jascriptscriptfont}\,=\{<jfam>,<jfont\_cs>\}] [\verb+\scriptscriptfont+ in \TeX]
- \item[\Param{yjabaselineshift}\,=<dimen>$^\ast$]\
+ \item[\Param{yjabaselineshift}\,=<dimen>$^\ast$]\
\item[\Param{yalbaselineshift}\,=<dimen>$^\ast$] [\verb+\ybaselineshift+]
-\item[\Param{jaxspmode}\,=\{<chr\_code>,<mode>\}] [\verb+\inhibitxspcode+]
+\item[\Param{jaxspmode}\,=\{<chr\_code>,<mode>\}]
Setting whether inserting \Param{xkanjiskip} is allowed before/after a \textbf{JAchar} whose character code is <chr\_code>.
The followings are allowed for <mode>:
check_next_ickern()
end
- Np.last = lp; Np.id = id_math; lp = node_next(lp)
+local calc_np_auxtable = {
+ [id_glyph] = function()
+ Np.first = lp
+ if lp.font == has_attr(lp, attr_curjfnt) then
+ Np.id = id_jglyph
+ else
+ Np.id = id_glyph
+ end
+ Np.first = lp; Np.nuc = lp; set_attr_icflag_processed(lp)
+ lp = node_next(lp); check_next_ickern(); return true
+ end,
+ [id_hlist] = function()
+ Np.first = lp; Np.last = lp; Np.nuc = lp;
+ set_attr_icflag_processed(lp)
+ if lp.shift~=0 then
+ Np.id = id_box_like
+ else
+ Np.id = id_hlist
+ end
+ lp = node_next(lp); return true
+ end,
+ [id_vlist] = function()
+ Np.first = lp; Np.nuc = lp; Np.last = lp;
+ Np.id = id_box_like; set_attr_icflag_processed(lp);
+ lp = node_next(lp); return true
+ end,
+ [id_rule] = function()
+ Np.first = lp; Np.nuc = lp; Np.last = lp;
+ Np.id = id_box_like; set_attr_icflag_processed(lp);
+ lp = node_next(lp); return true
+ end,
+ [id_ins] = function()
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ return false
+ end,
+ [id_mark] = function()
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ return false
+ end,
+ [id_adjust] = function()
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ return false
+ end,
+ [id_disc] = function()
+ Np.first = lp; Np.nuc = lp; set_attr_icflag_processed(lp);
+ Np.last = lp; Np.id = id_disc; lp = node_next(lp); return true
+ end,
+ [id_whatsit] = function()
+ if lp.subtype==sid_user and lp.user_id==30111 then
+ local lq = node_next(lp)
+ head = node_remove(head, lp); node_free(lp); lp = lq; ihb_flag = true
+ else
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ end
+ return false
+ end,
+ [id_math] = function()
+ Np.first = lp; Np.nuc = lp;
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ while lp.id~=id_math do
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ end
++ set_attr_icflag_processed(lp);
++ Np.last = lp; Np.id = id_math; lp = node_next(lp);
+ return true
+ end,
+ [id_glue] = function()
+ Np.first = lp; Np.nuc = lp; set_attr_icflag_processed(lp);
+ Np.last = lp; Np.id = id_glue; lp = node_next(lp); return true
+ end,
+ [id_kern] = function()
+ Np.first = lp
+ if lp.subtype==2 then
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ set_attr_icflag_processed(lp); lp = node_next(lp)
+ set_attr_icflag_processed(lp); Np.nuc = lp
+ if lp.font == has_attr(lp, attr_curjfnt) then
+ Np.id = id_jglyph
+ else
+ Np.id = id_glyph
+ end
+ lp = node_next(lp); check_next_ickern();
+ else
+ Np.id = id_kern; set_attr_icflag_processed(lp);
+ Np.last = lp; lp = node_next(lp)
+ end
+ return true
+ end,
+ [id_penalty] = function()
+ Bp[#Bp+1] = lp; set_attr_icflag_processed(lp);
+ lp = node_next(lp); return false
+ end,
+ [13] = function()
+ Np.first = lp; Np.nuc = lp; Np.last = lp;
+ Np.id = id_box_like; set_attr_icflag_processed(lp);
+ lp = node_next(lp); return true
+ end,
+}
+
local function calc_np()
-- We assume lp = node_next(Np.last)
local lpi, lpa, Nr
last=node.tail(head)
else
-- the current list is the contents of a hbox:
-- -- insert a sentinel
++ -- insert a sentinelEG
last=node.tail(head); local g = node_new(id_kern)
node_insert_after(head, last, g); last = g
end