%#!lualatex

\documentclass{ltjsarticle}
\usepackage{luatexja-fontspec,luatexja-adjust, luacode,xcolor}

\def\sq{%
  \hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
  　\hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
  \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
\def\sb{\hbox to 1\zw{\hss\fboxsep=-.5\fboxrule\fbox{%
  ■\hskip\dimexpr-.5\zw-.2pt\vrule width.4pt height.08\zw depth.12\zw%
  \hskip\dimexpr.5\zw-.2pt\relax}\hss}}
\newbox\gridbox
\setbox\gridbox=\hbox to 20\zw{\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb\sq\sq\sq\sq\sb}
\def\outbox#1{%
  \leavevmode\hbox to 2em{\tt #1\hss}\vrule
  \textcolor{cyan!50!white}{\copy\gridbox}\hskip-20\zw\copy0\vrule\par
}


\long\def\testbox#1{%
  \textcolor{red!80!black}{\ltjenableadjust\setbox0=\vbox{\hsize=20\zw\parfillskip0pt#1}\outbox{ON}}\par
  \textcolor{black!90!white}{%
    \ltjdisableadjust\setbox0=\vbox{\hsize=20\zw\parfillskip0pt#1}\outbox{OFF}}\par\medskip
}

\parindent0pt
\begin{document}
\jfontspec[JFM=hang]{ipam.ttf}

\ltjsetparameter{kanjiskip=.0\zw plus .4pt minus .4pt}
{\tt kanjiskip: \ltjgetparameter{kanjiskip}

\ltjsetparameter{xkanjiskip=.25\zw plus .25\zw minus .125\zw}
xkanjiskip: \ltjgetparameter{xkanjiskip}}

このテストでは，行末の句読点・中点類の位置調整を有効にした
\texttt{jfm-hang.lua}を用いている．
\begin{itemize}
\item 句読点は，調整量に合わせて，ぶら下げ，二分取り，全角取りの3種類から選択される．
\item 中点類は，行末に四分空きを追加することのみ対応．
詰める際の「直前の四分空きも取る」は未実装，
\item 行末文字の位置調整は，glueによる調整の負担量が少なくなるように行われる．
なお，この位置調整で調整の方向が変わることはない．

例えば，「三分伸ばす」調整が必要な，句点で終わる行があった場合，句点を全
      角取りにするとglueの負担合計は「六分詰める」となり，調整量の絶対値
      は減るが，方向が「伸ばす」から「詰める」こととなる．よってこのよう
      な場合，句点は二分取りのままである．
\end{itemize}

\testbox{%
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
%あいうえおかきくけこさしすせそたちつてと
}

\testbox{%
あいうえおかきくけこ「「さしすせそたちつて
}

\testbox{%
あいうえおかきA M M Dこさ\texttt{DO i=1,10}『
}

\testbox{%
「\texttt{\textbackslash expandafter}ユーザの集い」が開催された
}

\testbox{%
あいうえおきくけこ「」さ123456そたちつて
}

\def\pTeX{p\kern-.2em\TeX}
\testbox{%
日本で\pTeX，p\LaTeX がよく使われている。
}

中点類の空き詰めは括弧類より優先

\testbox{%
あいうえおかきくけ・こさしすせそたち「「あ
}

句読点類・中点類の後ろ空き

\testbox{%
日本では\pTeX，p\LaTeX が使われている。
}
\testbox{%
あいうえおかきくけこさしすせそたちつて．
}
\testbox{%
あいうえおかきくけこさしすせそたちつ\vrule width .5\zw て．
}
\testbox{%
あいうえおかきくけこさしすせそたちつ\vrule width 1\zw て．
}
\testbox{%
あいうえおかきくけこさしすせそたちつて・
}

\newpage

\end{document}