% UTF-8 for lualatex + luatexja-fontspec

\documentclass{article}
\usepackage[bf,sf]{titlesec}
\usepackage{luacode}
\usepackage{luatexja-fontspec}
\setmainjfont[BoldFont=Noto Sans CJK TC Medium,
              BoldItalicFont=I.Ngaan,
              ItalicFont=cwTeX Q Kai Medium]{I.Ming}
\setsansjfont[BoldFont=Noto Sans CJK TC Medium,
              BoldItalicFont=I.Ngaan,
              ItalicFont=cwTeX Q Kai Medium]{Taipei Sans TC Beta Light}
\setmonojfont[BoldFont=Noto Sans CJK TC Medium,
              BoldItalicFont=I.Ngaan,
              ItalicFont=cwTeX Q Kai Medium]{cwTeX Q Fangsong Medium}
\renewcommand{\baselinestretch}{1.48}
\newjfontfamily\hming{HanaMinB}

\def\exsp#1{\unskip#1\hspace{0pt}}
\begin{luacode}
function dosub(s)
  s = string.gsub(s, '！', '\\exsp！')
  s = string.gsub(s, '？', '\\exsp？')
  s = string.gsub(s, '、', '\\exsp、')
  s = string.gsub(s, '，', '\\exsp，')
  s = string.gsub(s, '：', '\\exsp：')
  s = string.gsub(s, '；', '\\exsp；')
  return(s)
end
\end{luacode}
\AtBeginDocument{%
  \luaexec{luatexbase.add_to_callback("process_input_buffer", dosub, "dosub")}%
}

\begin{document}

在Lua\TeX{}中正常地使用中文。獲得自動的\textbf{字體選擇}，標點「壓縮」，以及正確的斷行處理等特性。

\section{說文解字}

\textbf{《說文解字》}書名。\textit{東漢許慎}撰，三十卷，為我國第一部有系統分析字形及考究字源的字書。按文字形體及偏旁構造分列五百四十部，首創部首編排法？字體以小篆為主，收錄九千三百五十三字，列古文、籀文等異體為重文，共計一千一百六十三字。每字下的解釋大抵先說字義，次及形體構造及讀音，依據六書解說文字。晚近注家以清段玉裁、桂馥、朱駿聲、王筠最為精博。簡稱為「說文」。

\textsf{戰國策}，書名！\texttt{漢劉向}輯，三三卷。依國別分為西周、東周、秦、齊、楚、趙、魏、韓、燕、宋、衛、中山十二策。內容記載戰國時代各諸侯國的政治大事及當時策士的言論行動。描寫人事，運用誇飾、比{\Uchar"55A9}、排比等手法，語言形象鮮明，辯辭宏肆瑰麗，刻劃歷史人物亦活躍生動，為我國重要的史料。今通行有漢高誘注本。也稱為「短長書」、「國策」、「長書」。{\Uchar"55BB}

\section{漢字}

\textbf{漢字}用以記錄漢語的傳統文字Traditional character。形聲字占絕大多數。歷代發展出甲骨文、金文、篆書、隸書、草書、楷書等多種字體。除記錄語言的功能外，漢字的藝術性高。三千餘年歷史中，對日本、韓國、越南諸國語文曾產生極深遠的影響。也稱為「中國字」、「中國文字」。

小明說:「公主大叫『救命啊！』。」犇軲晗堃煊 ExtB {\hming 𤧞𠃝𠅀}𠅘

\noindent
\textbf{\textit{這裡是 BoldItalicFont}}。\\
\textbf{這裡是 \textsf{BoldFont}}。\\
\textit{這裡是 ItalicFont}。\\
\textsl{中文沒有 SlantFont}。\\
\textsf{sans 中文設定失敗}。\\
\texttt{mono 中文設定失敗}。

\end{document}
