Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bouten / bousen (傍点・傍線)

Bouten (傍点) are emphasis dots placed beside characters in vertical text — the Japanese typographic equivalent of italic or bold. Bousen (傍線) are the same idea with a line instead of dots. The spec recognises eleven dot variants and six line variants; aozora accepts every one.

Notation forms

Two indirection styles, both common in real corpus:

[#「平和」に傍点]           ← target-by-quoting
平和[#「平和」に傍点]        ← redundant explicit copy (also accepted)
[#ここから傍点]平和[#ここで傍点終わり]  ← container form

The target-by-quoting form is by far the most common: the inline annotation looks backwards in the text for the most recent occurrence of the quoted string and applies the bouten to that run.

Variant catalogue

SlugSource kanjiRenders as
sesame傍点small black sesame
white_sesame白ゴマ傍点small white sesame
circle丸傍点filled circle
white_circle白丸傍点open circle
dot黒点傍点bold black dot
triangle三角傍点filled triangle
white_triangle白三角傍点open triangle
bullseye二重丸傍点bullseye
kotentenコ点傍点small katakana ko-mark
kotenten_white白コ点傍点white ko-mark
linear線傍点dotted underline
single_line傍線single line
double_line二重傍線double line
dashed_line鎖線dashed line
wavy_line波線wavy line
chained_line二重鎖線double dashed line
under_dotted下線dotted underline

Each variant has a stable BoutenKind::slug() that the HTML renderer emits as a class name (e.g. <em class="aozora-bouten-sesame">). See Architecture → HTML renderer for the full class-name scheme.

Default rendering

aozora emits <em class="aozora-bouten-<slug>">…</em> so that an external stylesheet can pick the visual treatment per variant. Default CSS hooks live at the consumer side; the parser ships no stylesheet of its own.

<!-- 平和[#「平和」に傍点] -->
平和<em class="aozora-bouten-sesame">平和</em>

(The redundant copy is intentional — the [#…] indirection re-emits the target wrapped in <em>, leaving the original run in place. The HTML rendering matches what print Aozora Bunko output does in practice.)

Container form

For runs that span multiple lines or include other annotations, use the container form:

[#ここから傍点]
平和は手の届かないものだった。
そして、戦争もまた。
[#ここで傍点終わり]

Renders as:

<em class="aozora-bouten-sesame">
平和は手の届かないものだった。
そして、戦争もまた。
</em>

The opening directive can be any of the variant openers (ここから二重傍線, ここから波線, …); the matching closer must use the same family (ここで傍線終わり for any 線 variant, ここで傍点終わり for any 点 variant). Mismatched closers fire diagnostic E0004.

AST shape

pub struct Bouten<'src> {
    pub target: &'src str,        // the run wrapped in emphasis
    pub kind:   BoutenKind,       // one of 17 variants
    pub form:   BoutenForm,       // Indirect | Inline | Container
    pub span:   Span,
}

BoutenKind is a flat enum with slug accessors; see the rustdoc for the exact variant list.

See also