このページは日本語に翻訳済みです。
par要素関数要素関数要素関数はsetルールやshowルールでカスタマイズできます。
setルールやshowルールでカスタマイズできます。テキストコンテンツの論理的な区分。
Typstはインラインレベルの要素を自動的に段落にまとめます。 インラインレベルの要素には、テキスト、 水平方向の空白、 ボックス、インライン数式が含まれます。
段落を区切るには、空行(または明示的なparbreak)を使用します。
段落は、任意のブロックレベルの要素
(block、place、またはこれらのいずれかとして表示されるもの)によっても自動的に中断されます。
par要素は主にsetルールにおいて段落のプロパティに影響を与えるために使用されますが、
その引数を明示的に独立した段落として表示するためにも使用できます。
その場合、
その段落の本文にはブロックレベルのコンテンツを含めることはできません。
ボックスとブロック
上記の通り、通常、段落はインラインレベルのコンテンツのみを含みます。
しかし、boxでラップすることで、
あらゆる種類のブロックレベルのコンテンツを段落に組み込むことができます。
逆に、インラインレベルのコンテンツをblockでラップすることにより、
コンテンツを段落から分離できます。
この場合、そのコンテンツはどの段落にも属さなくなります。
なぜこれが重要なのか、また単にコンテンツの前後に段落区切りを追加することとどう異なるのかについては、
次のセクションをお読みください。
何が段落になるのか?
インラインレベルのコンテンツをドキュメントに追加すると、 Typstは自動的にそれを段落でラップします。 しかし、一般的なドキュメントには、見出しやキャプションなど、 意味的に段落の一部ではないテキストも含まれます。
Typstがインラインレベルのコンテンツを 段落でラップするルールは次の通りです。
-
ドキュメントのルート(最上位)にある全てのテキストは段落でラップされます。
-
コンテナ(
blockなど)内のテキストは、 そのコンテナにブロックレベルのコンテンツが含まれている場合にのみ段落でラップされます。 コンテンツが全てインラインレベルである場合は、段落は作成されません。
組版された文書では、テキストが段落の一部になったかどうかはすぐにはわかりません。 しかし、いくつかの理由からこれは依然として重要です。
-
first-line-indentなどの特定の段落スタイルは正式な段落に対してのみ適用され、 任意のテキストには適用されません。 同様に、parに対するshowルールももちろん段落に対してのみ適用されます。 -
段落とその他のテキストを適切に区別することは、 スクリーンリーダーなどの支援技術を利用する人々が文書を正しく読み進め、理解するのに役立ちます。 現在はTypstがアクセシブルなPDFをまだ出力しないため、 この仕組みはHTMLエクスポートにのみ適用されますが、 近い将来PDFへのサポートも計画されています。
-
PDFエクスポートでは、段落に対してのみ
Pタグが生成されます。 -
HTMLエクスポートでは、段落に対してのみ
<p>タグが生成されます。
独自の再利用可能なコンポーネントを作成する際には、
Typstが段落を作成するかどうかを自分で制御できますし、制御すべきです。
テキストを単に段落区切りで囲むのではなく、
blockで囲むことで段落を作成させないようにできます。
逆に、コンテナ内のコンテンツの後にparbreakを追加することで、
たとえ1つの単語であっても段落にすることができます。
これは、非タイトリストがその項目を強制的に段落にさせるために行う手法の例です。
例
#set par(
first-line-indent: 1em,
spacing: 0.65em,
justify: true,
)
We proceed by contradiction.
Suppose that there exists a set
of positive integers $a$, $b$, and
$c$ that satisfies the equation
$a^n + b^n = c^n$ for some
integer value of $n > 2$.
Without loss of generality,
let $a$ be the smallest of the
three integers. Then, we ...

引数引数引数は関数への入力値です。関数名の後に括弧で囲んで指定します。
par(,,,,,,,)->leading設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
leadingsetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。行間。
leadingは、ある行の下端と次の行の 上端との間隔を定義します。 デフォルトでは、これら2つのプロパティはフォントによって決まりますが、 テキストのsetルールを使用して手動で設定することもできます。
top-edge、bottom-edge、およびleadingを設定することで、
ベースライン間の距離を一定に揃えることも可能です。
例えば、leadingを 1em、top-edgeを0.8em、
bottom-edgeを -0.2em に設定すると、
ちょうど2emのベースライン間隔になります。
top-edgeとbottom-edgeの値の正確な配分が最初の行と最後の行の境界に影響を与えます。
例を表示

デフォルト値:0.65em
spacing設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
spacingsetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。デフォルト値:1.2em
justify設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
justifysetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。行内でテキストを両端揃えするかどうか。
text関数のhyphenateプロパティがautoに設定され、
かつ現在の言語が認識されている場合、
両端揃えが行われた段落ではハイフネーションが有効になります。
最後の行が両端揃えされた改行で終わらない限り、 現在のalignmentは依然として 最終行の配置に影響を与えることに注意してください。
デフォルトでは、Typstは単語間の空白のみを調整して両端揃えを実現します。
ただし、justification-limitsプロパティを使うと、
文字間の間隔調整も許可できます。
デフォルト値:false
justification-limits設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
justification-limitssetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。両端揃え中に単語間・文字間の間隔をどの程度まで調整できるか。
両端揃えでは、行の幅を測定幅いっぱいに揃えるために、 行を伸ばしたり縮めたりする必要があります。 そのため、デフォルトでは単語間の空白を調整します。 さらに、文字間の空白も調整できます。 このプロパティで、これらの調整の下限と上限を設定できます。
このプロパティはspacingとtrackingの2つのエントリを持つ辞書を受け取り、
それぞれにminとmaxのキーを含む辞書を指定します。
minはどこまで縮められるかの下限、maxはどこまで広げられるかの上限です。
-
spacingエントリは単語間の空白の幅をどの程度まで調整できるかを定義します。 これはtext.spacingと密接に関係しており、minとmaxはspacingプロパティと同様に相対長さを受け取ります。minが100%であれば空白は通常のサイズを維持し(縮まりません)、90% - 0.01emであれば、空白の幅は通常の90%から 現在のフォントサイズの0.01倍を引いた幅まで縮められます。 同様にmaxが100% + 0.02emであれば、空白の幅は 現在のフォントサイズの0.02倍だけ広げられます。 比率部分は常に正でなければなりません。 一方、長さ部分はminでは正であってはならず、maxでは負であってはなりません。なお、行を両端揃えする他の方法がない場合、空白は
maxを超えて 拡張されることがあります。ただし、その前に他の両端揃えの手段 (trackingエントリの設定に応じて文字間隔を広げるなど)が まず最大限まで使われます。 -
trackingエントリは文字間の間隔をどの程度まで調整できるかを定義します。 これはtext.trackingと密接に関係しており、minとmaxはtrackingプロパティと同様に長さを受け取ります。spacingとは異なり、相対長さは受け取りません。 文字ごとに相対長さの基準が変わってしまい、見た目が不均一になるためです。spacingと比べた場合の挙動は、基準が常に100%であるかのように扱われます。それ以外では、
minとmaxの挙動はspacingと同じです。maxが0.01emであれば、全ての文字ペアの間に 現在のフォントサイズの0.01倍に相当する追加の間隔を挿入できます。 これは空白と文字の間の隙間も含むため、空白に対してはtrackingの値がspacingの値に加算されます。
spacingまたはtrackingのどちらか一方しか指定しない場合、
もう一方は以前に設定された値(以前に設定されていなければデフォルト)を維持します。
文字単位の両端揃えを有効にする場合、minとmaxは
0.01em〜0.02em程度(minは負の値)にするのがよい目安です。
同じ値を使うとベースラインとして良好ですが、
2つの値を個別に調整すると、下の例のようによりバランスよく見えることがあります。
範囲を広げすぎると不自然になりやすいので注意してください。
文字単位の両端揃えは、特に細いカラムで両端揃えの見栄えを改善できる 影響力のあるマイクロタイポグラフィ技法です。 ただし、全てのフォントや言語で機能するわけではありません。 例えば、筆記体のフォントは文字同士が連結されるため、 文字単位の両端揃えを行うと接続部分がぎこちなく見えることがあります。
例を表示:Character-level justification
#let example(name) = columns(2, gutter: 10pt)[
#place(top, float: true, scope: "parent", strong(name))
/* Text from https://en.wikipedia.org/wiki/Anne_Bayley */
]
#set page(width: 440pt, height: 21em, margin: 15pt)
#set par(justify: true)
#set text(size: 0.8em)
#grid(
columns: (1fr, 1fr),
gutter: 20pt,
{
// These are Typst's default limits.
set par(justification-limits: (
spacing: (min: 100% * 2 / 3, max: 150%),
tracking: (min: 0em, max: 0em),
))
example[Word-level justification]
},
{
// These are our custom character-level limits.
set par(justification-limits: (
tracking: (min: -0.01em, max: 0.02em),
))
example[Character-level justification]
},
)

デフォルト値:(
spacing: (min: 66.67% + 0pt, max: 150% + 0pt),
tracking: (min: 0pt, max: 0pt),
)
改行位置の決定方法。
このプロパティがデフォルトのautoに設定されている場合、
両端揃えされた段落に対して最適化された改行が行われます。
また、段落が不揃いであっても最適化された改行を有効にすることで、
テキストの見栄えが向上することがあります。
例を表示
#set page(width: 207pt)
#set par(linebreaks: "simple")
Some texts feature many longer
words. Those are often exceedingly
challenging to break in a visually
pleasing way.
#set par(linebreaks: "optimized")
Some texts feature many longer
words. Those are often exceedingly
challenging to break in a visually
pleasing way.

使用可能な文字列値
simpleシンプルなファーストフィット方式で改行位置を決定します。
optimized段落全体の改行位置を最適化します。
Typstは改行を計算する際に段落全体を考慮し、 より均等に埋まった行を生成しようとします。
デフォルト値:auto
first-line-indent設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
first-line-indentsetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。段落の最初の行のインデント。
デフォルトでは、 連続する段落のうち最初の行のみがインデントされます (文書やコンテナの先頭の段落、あるいは他のブロックレベル要素に続く段落はインデントされません)。
全ての段落をインデントしたい場合は、
インデントのamount(長さ)とall: trueを含む辞書を渡してください。
allが辞書から省略された場合、
デフォルトではfalseになります。
タイポグラフィの慣例として、段落の区切りは段落間の空白か最初の行のインデントのどちらかで示されます。 次の設定を検討してみてください。
- 段落の
spacingをset par(spacing: 0.65em)を使用してleadingと同じ長さまで減らす - ブロックの
spacing(デフォルトでは段落の間隔を継承します)をset block(spacing: 1.2em)を使用して 元の段落間隔と同じ長さまで増やす
例を表示
#set block(spacing: 1.2em)
#set par(
first-line-indent: 1.5em,
spacing: 0.65em,
)
The first paragraph is not affected
by the indent.
But the second paragraph is.
#line(length: 100%)
#set par(first-line-indent: (
amount: 1.5em,
all: true,
))
Now all paragraphs are affected
by the first line indent.
Even the first one.

デフォルト値:(amount: 0pt, all: false)
hanging-indent設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
hanging-indentsetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。段落の最初の行以外全ての行のインデント。
例を表示
#set par(hanging-indent: 1em)
#lorem(15)

デフォルト値:0pt
body
body段落のコンテンツ。
定義定義これらの関数や型には、関連する定義を持たせることができます。定義にアクセスするには、対象の関数や型の名前を指定した後に、ピリオド区切りで定義名を記述します。
line要素関数要素関数要素関数はsetルールやshowルールでカスタマイズできます。
linesetルールやshowルールでカスタマイズできます。例を表示
#set par.line(numbering: "1")
Roses are red. \
Violets are blue. \
Typst is there for you.

numberingオプションには、予め定義された番号付けパターンか、
スタイル付きコンテンツを返す関数のいずれかを指定します。
show-setルールを用いてnumberingをnoneに設定することで、
特定要素内のテキストの行番号を無効にすることができます。
例を表示
// Styled red line numbers.
#set par.line(
numbering: n => text(red)[#n]
)
// Disable numbers inside figures.
#show figure: set par.line(
numbering: none
)
Roses are red. \
Violets are blue.
#figure(
caption: [Without line numbers.]
)[
Lorem ipsum \
dolor sit amet
]
The text above is a sample \
originating from distant times.

この要素は、行番号のalignmentmarginなど、
行の番号付けのさまざまな設定を制御できる追加オプションを提供します。
さらに、
numbering-scopeオプションを使用すると、
ページごとに番号をリセットするかどうかの制御が可能です。
par.line(,,,,)->各行を番号付けする方法。 番号付けパターンまたは関数を指定できます。
例を表示
#set par.line(numbering: "I")
Roses are red. \
Violets are blue. \
Typst is there for you.

例を表示
#set par.line(
numbering: i => if calc.rem(i, 5) == 0 or i == 1 { i },
)
#lorem(60)

デフォルト値:none
各行に付随する行番号の配置。
デフォルトのautoは、
行番号が余白や現在のテキストの方向を考慮しつつ、
テキストから離れる方向へ水平に伸びるスマートな設定を示します。
例を表示
#set par.line(
numbering: "I",
number-align: left,
)
Hello world! \
Today is a beautiful day \
For exploring the world.

デフォルト値:auto
number-margin設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
number-marginsetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。行番号を表示する位置の余白。
注意: 複数段組みの文書では、
この設定に関わらず最後の段の段落につく行番号が常にendの余白(左から右のテキストでは右の余白、
右から左のテキストでは左の余白)に表示されます。
現時点では、
この挙動を変更することはできません。
例を表示
#set par.line(
numbering: "1",
number-margin: right,
)
= Report
- Brightness: Dark, yet darker
- Readings: Negative

デフォルト値:start
行番号とテキストの間隔。
デフォルトの値である auto では、ページ幅に応じて間隔が自動調整され、
ほとんどの場合において適切な間隔が得られます。
例を表示
#set par.line(
numbering: "1",
number-clearance: 4pt,
)
Typesetting \
Styling \
Layout

デフォルト値:auto
numbering-scope設定可能引数設定可能引数設定可能引数は、setルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。
numbering-scopesetルールを用いて設定でき、それ以降で使用するデフォルト値を変更できます。行番号をリセットするタイミングを制御する。
注意: 行番号のスコープは、 ページラン(改ページが明示的に挿入されていない連続したページ)内で統一されている必要があります。 そのため、setルールによる設定は、 ページコンテンツの前、通常は文書の最初などで定義することが望ましいです。
例を表示
#set par.line(
numbering: "1",
numbering-scope: "page",
)
First line \
Second line
#pagebreak()
First line again \
Second line again


使用可能な文字列値
document行番号カウンターが文書全体にまたがり、 決して自動的にリセットされないことを示します。
page行番号カウンターが各新規ページの 先頭でリセットされることを示します。
デフォルト値:"document"