Japanese layout has conventions Western text lacks — vertical writing (top to bottom), ruby (furigana) readings beside kanji and emphasis dots, kinsoku rules forbidding breaks at certain line positions, full-width vs half-width character widths, and the spacing where Japanese meets Latin. TeX handles most of this automatically; this page covers the knobs.
Vertical writing
Switch to vertical writing with a class or option that supports it — e.g. \documentclass[tate]{jlreq}. Within vertical text, short horizontal runs such as two-digit numbers or units are set upright as tate-chu-yoko, with \tatechuyoko{...} in jlreq / LuaTeX-ja, or \rensuji{...} from the plext package on pLaTeX.
\documentclass[tate]{jlreq}
...
平成\tatechuyoko{31}年 % 数字を正立 / digits set uprightRuby and emphasis dots
Ruby (furigana) are the small readings set alongside kanji. The simple route is the ruby package’s \ruby{漢字}{かんじ}. For JIS X 4051 / JLReq-compliant ruby (group ruby, mono ruby, and so on), use pxrubrica (which supports pTeX, upTeX, LuaTeX, and XeTeX). Emphasis dots (kenten/boten) — dots placed beside characters for stress — come from pxrubrica’s \kenten{...}.
\usepackage{pxrubrica}
...
\ruby{漢字}{かんじ} % ルビ / ruby
\kenten{重要} % 圏点(傍点)/ emphasis dotsKinsoku — line-break rules
Kinsoku are rules keeping certain characters off the start or end of a line. Closing brackets )」』, small kana ゃ ぁ, and punctuation 。、 may not begin a line (line-start prohibition); opening brackets (「『 may not end one (line-end prohibition). These follow JIS X 4051 (the standard for Japanese text composition), and TeX’s Japanese engines apply them automatically through the JFM (Japanese font metrics). You normally need not think about it, and can tune it via jlreq if required.
Full-width vs half-width
Full-width characters occupy a full 1-em square; half-width ones take half that. By convention, Latin letters and digits are half-width, while Japanese punctuation and brackets 。、() are full-width. Writing digits or Latin full-width, or punctuation half-width, looks wrong and throws off the spacing. Following this convention is the baseline.
Mixed Japanese/Western
When Japanese meets Latin (“日本語 and abc”), the engine inserts a small automatic gap. That is xkanjiskip (the Japanese–Western gap), while kanjiskip goes between Japanese characters. This auto-spacing is why you do not type spaces around Latin words. Adjust the values with \ltjsetparameter in LuaTeX-ja, or via class settings in pLaTeX/upLaTeX (see “Japanese typesetting methods”).