Registry / RepositoryTypeScriptRustPython
Rollpie
ReadmeFiles
Versions
Info
Download
0.4.01085.8 KB2026-10-160.3.21087.6 KB2026-10-160.3.11087.5 KB2026-10-160.3.0117.8 KB2026-10-160.2.1106.1 KB2026-10-150.2.0105.5 KB2026-10-15
Version
0.2.0
Copyright
Rollpie, Irohabook
Publisher
math
Published
2026-10-15
Size
105.5 KB
Downloads
24
Checksum
f438a48f6f2fc61d892f930eb4fb56fb5a8e302e733a8c3a6283d0ff7350cd08
Dependencies
rust/[email protected]
rust/[email protected]

article.tex

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
\documentclass[a4paper,10pt]{article}

\title{日本語の文章を機械で組むこと}
\author{本郷}
\date{2026年9月8日}

\begin{document}

\maketitle

\begin{abstract}
日本語の文章を機械で組むとき、欧文とは違う手当てがいくつも要る。
語のあいだに空白がないこと、行のどこでも切れてしまうこと、
句読点や閉じ括弧が行頭に来てはいけないこと、
そして欧文が混じったときの空きである。
この文章では、それらをどう扱ったかを順に書く。
\end{abstract}

\tableofcontents

\section{はじめに}
\label{sec:start}

欧文の組版では、語と語のあいだに空白がある。
行を切ってよい場所はその空白だけなので、機械は空白の幅を伸ばしたり詰めたりして
行の右端をそろえればよい。

日本語にはその空白がない。
かわりに、ほとんどの字と字のあいだで行を切ってよい。
切ってよい場所が多いぶん、切ってはいけない場所を知っておく必要がある。
「、」や「。」を行頭に置いてはいけないし、「(」を行末に置いてもいけない。

\section{行分割}
\label{sec:break}

\subsection{行の良し悪しを測る}

行に入れたものの自然な幅を $w$、その行に使える幅を $W$、
伸ばせる量の合計を $y$ とすると、伸ばす割合は次のようになる。

\begin{equation}
\label{eq:ratio}
r = \frac{W - w}{y}
\end{equation}

$r$ が 0 なら、伸ばしも詰めもせずにちょうど収まっている。
1 なら、伸ばせるだけ伸ばしてやっと収まる。
この $r$ から行の悪さを測る\footnote{Knuth と Plass は badness と呼んでいる。}。

\begin{equation}
\label{eq:badness}
b = 100 \, |r|^{3}
\end{equation}

3 乗にしてあるので、少し伸びたぶんには目をつぶり、
伸びすぎた行だけを強く嫌う。行 1 本ごとの悪さは、式 \ref{eq:badness} に
罰点 $p$ を足して 2 乗したものになる。

\begin{align}
d &= (10 + b)^{2} + p^{2} \quad (p \geq 0) \\
d &= (10 + b)^{2} - p^{2} \quad (p < 0)
\end{align}

段落全体では、この $d$ の合計がいちばん小さくなる切り方を選ぶ。
一行ずつ貪欲に決めるのではなく、段落を最後まで見てから決めるので、
前のほうの行を少し詰めることで後ろの行が楽になる、という選び方ができる。

\subsection{切ってはいけない場所}

和文では、次のような場所で行を切らない。

\begin{itemize}
\item 「、」「。」「」」のような、行頭に置けない字の前。
\item 「「」「(」のような、行末に置けない字の後。
\item 小書きの仮名(「っ」「ゃ」など)の前。
\end{itemize}

切ってよい場所には 0 幅の空きを置き、切ってはいけない場所には
切れない印を先に置く。こうすると、欧文の語間と同じ仕組みのまま、
和文の字間でも両端がそろう。

\section{和欧混植}
\label{sec:mixed}

和文と欧文が隣り合うところには、四分の空きを入れる。
「日本語と English が混じる」のように書いたとき、
「と」と English のあいだ、English と「が」のあいだに空きが入る。

ただし括弧や句読点の隣には入れない。
「(LaTeX)」のように、もともと余白を持っている字の隣で空きを足すと、離れすぎて見える。

表 \ref{tab:gap} に、この文章で使っている値を挙げる。

\begin{table}[htbp]
\centering
\begin{tabular}{|l|r|l|}
\hline
名前 & 値 & 何のための値か \\
\hline
和欧間 & 0.25 em & 和文と欧文のあいだ \\
字間の伸び & 0.08 em & 和文の字間で伸ばせる量 \\
字間の詰め & 0.04 em & 和文の字間で詰められる量 \\
語間 & 0.333 em & 欧文の語と語のあいだ \\
\hline
\end{tabular}
\caption{組むときに使う空きの量}
\label{tab:gap}
\end{table}

\section{おわりに}

節 \ref{sec:break} の行分割と節 \ref{sec:mixed} の和欧混植を入れると、
日本語の文章はひととおり組める。残っているのは欧文の分綴で、
これは語を切ってよい場所の表がないと決められない\cite{liang}。

\begin{thebibliography}{9}
\bibitem{knuth} Donald E. Knuth and Michael F. Plass.
\textit{Breaking Paragraphs into Lines}. Software: Practice and Experience, 1981.
\bibitem{liang} Franklin M. Liang.
\textit{Word Hy-phen-a-tion by Com-put-er}. Stanford University, 1983.
\bibitem{jis} 日本産業規格. \textit{JIS X 4051 日本語文書の組版方法}. 2004.
\end{thebibliography}

\end{document}