* pTeXの追加プリミティブと変数 [#d3766307]

#contents

** &aname(autospacing){\autospacing}; [#q26c2d45]

漢字(2バイトコード)間へのグルーの自動挿入を許可します。

この指定は、パラグラフの終わりか、
または\hboxの最後の時点で読み取られて処理されます。
したがって、同一パラグラフ内、
あるいは\hbox内で何度指定を変えても、
最後にされた指定で処理されます。

''関連項目'':
[[\noautospacing>#noautospacing]],
[[\autoxspacing>#autoxspacing]],
[[\noautoxspacing>#noautoxspacing]],
[[\inhibitglue>#inhibitglue]],
[[\showmode>#showmode]],
[[漢字間スペース>../文字間スペースについて#kanjiskip]]


** &aname(autoxspacing){\autoxspacing}; [#x892bef0]

漢字(2バイトコード)と英字(1バイトコード)間へのグルーの
自動挿入を許可します。

この指定は、パラグラフの終わりか、
または\hboxの最後の時点で読み取られて処理されます。
したがって、同一パラグラフ内、
あるいは\hbox内で何度指定を変えても、
最後にされた指定で処理されます。

''関連項目'':
[[\autospacing>#autospacing]],
[[\noautospacing>#noautospacing]],
[[\noautoxspacing>#noautoxspacing]],
[[\xspcode>#xspcode]],
[[\inhibitxspcode>#inhibitxspcode]]
[[\showmode>#showmode]],
[[和欧文間スペース>../文字間スペースについて#xkanjiskip]]


** &aname(euc){\euc《16ビット数値》}; [#n4e5cfa1]

EUCコードから内部コードへの変換を行います。

''例''~

 \char\euc"BA01

は、`比'です。

''関連項目'':
[[\jis>#jis]],
[[\kuten>#kuten]],
[[\sjis>#sjis]],
[[漢字コードについて>../漢字コードについて]]


** &aname(inhibitglue){\inhibitglue}; [#k33bb8e8]

和文フォントのメトリック情報から、自動的に挿入されるグルーの挿入を禁止します。
このプリミティブを挿入した箇所にのみ有効です。

''関連項目'':
[[和文フォントによるスペース>../文字間スペースについて#jfmglue]],


** &aname(inhibitxspcode){\inhibitxspcode《16ビット数値》=《0|1|2|3》}; [#vfd2d4b5]

指定した漢字(2バイトコード)とそれに連続する英字(1バイトコード)との間に
自動的に挿入されるスペースを抑制します。
この指定は0~3のいずれかを設定することで、つぎの動作を選択します。

 0 指定した漢字と前後の英字の間のスペース挿入を禁止する。
 1 指定した漢字と直前の英字との間にだけスペース挿入を禁止する。
 2 指定した漢字と直後の英字との間にだけスペース挿入を禁止する。
 3 指定した漢字と前後の英字との間に対してスペース挿入を許可する。

''例''

    \inhibitxspcode`?=0
    \inhibitxspcode`(=2
    \inhibitxspcode`)=1

この例では、`?'と前後の英字に対するスペース挿入を禁止し、
`('に対しては直後の英字との間へのスペース挿入を禁止し、
`)'に対しては直前の英字との間へのスペース挿入を禁止しています。

''関連項目'':
[[\xspcode>#xspcode]],
[[\xkanjiskip>#xkanjiskip]],
[[記号類との間>../文字間スペースについて#yakumono]]


** &aname(jcharwidowpenalty){\jcharwidowpenalty=《数値》}; [#c45adf1a]

パラグラフの最後の漢字が孤立して改行されるのを防ぐためのペナルティです。
パラグラフの最後に1文字以上の1区、2区に含まれる文字がある場合は、
その直前にある2バイトコードに対してこのペナルティが使われます。

''例''

    \jcharwidowpenalty=500



** &aname(jfam){\jfam}; [#x2c2693c]

`\jfont'と同様に、`\fam'とほぼ同じ動作をします。
`\showthe'などと組み合わせることで、
カレントの和文フォントファミリーを返します。
ただし、このプリミティブでは欧文フォントのファミリーも
和文ファミリーとして定義しますので、注意が必要です。

''例''

    \showthe\jfam

このように記述すると、カレントの和文フォントファミリーを返します。

''関連項目'':
[[\jfont>#jfont]],
[[\tfont>#tfont]]


** &aname(jfont){\jfont}; [#fca085b7]

`\font'と同じです。
ただし、`\showmode'などのプリミティブと組み合わせた場合は、
カレントの横組用の和文フォントを返します。
フォントの定義には、\font, \jfontのいずれを使っても欧文フォント、
横組用の和文フォントの定義が可能です。

''例''

    \jfont\mincho=min10 at 24pt

このように記述すると、\mincho に24ポイントの明朝体が割り当てられます。

    \showthe\jfont

とすると、カレントの横組用の和文フォントを返します。

''関連項目'':
[[\jfam>#jfam]],
[[\tfont>#tfont]]


** &aname(jis){\jis《16ビット数値》}; [#ycdcc9c8]

JISコードから内部コードへの変換を行います。

''例''

 \char\jis"312B

は、`雨'です。

''関連項目'':
[[\euc>#euc]],
[[\kuten>#kuten]],
[[\sjis>#sjis]],
[[漢字コードについて>../漢字コードについて]]


** &aname(kanjiskip){\kanjiskip=《グルー》}; [#ua79ab46]

連続する漢字(2バイトコード)間に自動的に挿入するグルーの値を
格納するレジスタです。
この処理は、[[\autospacing>#autospacing]],
[[\noautospacing>#noautospacing]]によって行うか行わないかの指定をします。

このレジスタの値は、パラグラフの終わりか、
または\hboxの最後の時点で取り込んで処理します。
したがって、同一パラグラフ内、
あるいは\hbox内で何度か値を変化しても、
最後に設定した値で処理されます。

''例''

    \kanjiskip=10pt plus 1pt minus1pt


''関連項目'':
[[\autospacing>#autospacing]],
[[\noautospacing>#noautospacing]],
[[\xkanjiskip>#xkanjiskip]],
[[\inhibitglue>#inhibitglue]],
[[漢字間スペース>../文字間スペースについて#kanjiskip]]


** &aname(kansuji){\kansuji 《数値》}; [#c83168bd]

数値を漢数字で出力します。

''例''

 \kansuji 2018年

は、`二〇一八年'と出力されます。

出力される文字は\kansujicharで指定することができます。
デフォルトは「〇一二三四五六七八九」です。

''関連項目'':
[[\kansujichar>#kansujichar]]


** &aname(kansujichar){\kansujichar《0~9のいずれか》=《16ビット数値》}; [#fc92f25c]

\kansujiで出力する文字を設定します。

''例''

 \kansujichar1=\jis"306D\relax
 \kansujichar2=`弐
 \kansujichar3=\euc"BBB2\relax
 \kansuji 4321

は、`四参弐壱'と出力されます。

''関連項目'':
[[\kansuji>#kansuji]],
[[\euc>#euc]],
[[\jis>#jis]],
[[\kuten>#kuten]],
[[\sjis>#sjis]]


** &aname(kuten){\kuten《16ビット数値》}; [#e4e24f85]

区点コードから内部コードへの変換を行います。

''例''

 \char\kuten"234E

は、`虫'(35区78点: 35(10進) = 23(16進), 78(10進) = 4E(16進))です。

''関連項目'':
[[\euc>#euc]],
[[\jis>#jis]],
[[\sjis>#sjis]],
[[漢字コードについて>../漢字コードについて]]


** &aname(noautospacing){\noautospacing}; [#if39cac3]

漢字(2バイトコード)間へのグルーの自動挿入を禁止します。

この指定は、パラグラフの終わりか、
または\hboxの最後の時点で読み取られて処理されます。
したがって、同一パラグラフ内、
あるいは\hbox内で何度指定を変えても、
最後にされた指定で処理されます。

''関連項目'':
[[\autospacing>#autospacing]],
[[\autoxspacing>#autoxspacing]],
[[\noautoxspacing>#noautoxspacing]],
[[\inhibitglue>#inhibitglue]]
[[\showmode>#showmode]],
[[漢字間スペース>../文字間スペースについて#kanjiskip]]


** &aname(noautoxspacing){\noautoxspacing}; [#xbe658bd]

漢字(2バイトコード)と英字(1バイトコード)間へのグルーの自動挿入を
禁止します。

この指定は、パラグラフの終わりか、
または\hboxの最後の時点で読み取られて処理されます。
したがって、同一パラグラフ内、
あるいは\hbox内で何度指定を変えても、
最後にされた指定で処理されます。

''関連項目'':
[[\autospacing>#autospacing]],
[[\noautospacing>#noautospacing]],
[[\autoxspacing>#autoxspacing]],
[[\xspcode>#xspcode]],
[[\inhibitxspcode>#inhibitxspcode]]
[[\showmode>#showmode]],
[[和欧文間スペース>../文字間スペースについて#xkanjiskip]]


** &aname(postbreakpenalty){\postbreakpenaltyt《16ビット数値》=《数値》}; [#b21ef70b]

指定する文字の後方に挿入するペナルティ値を設定します。
この指定は、行末禁則の指定にあたります。

''例''

    \postbreakpenalty`。=10000

とすることにより、`。'の後方に10000のペナルティ値を付け、行末禁則文字の
対象文字にします。

ただし、\prebreakpenaltyと\postbreakpenaltyを同一の文字に対して
同時に設定することはできません。
同一の文字に対して両方の指定を行った場合、
後からの設定が有効になります。

''関連項目'':
[[\prebreakpenalty>#prebreakpenalty]]


** &aname(prebreakpenalty){\prebreakpenaltyt《16ビット数値》=《数値》}; [#xea496b4]

指定する文字の前方に挿入するペナルティ値を設定します。
この指定は、行頭禁則の指定にあたります。

''例''

    \prebreakpenalty`あ=1000

とすることにより、`あ'の前方に1000のペナルティ値を付け、行頭禁則文字の
対象文字にします。

ただし、`\prebreakpenalty'と`\postbreakpenalty'を同一の文字に対して
同時に設定することはできません。
同一の文字に対して両方の指定を行った場合、
後からの設定が有効になります。

''関連項目'':
[[\postbreakpenalty>#postbreakpenalty]]


** &aname(showmode){\showmode}; [#lafb2d07]

漢字-漢字間と漢字-和欧文間に自動的に空白を挿入されるかどうかについて、
`\autospacing', `\noautospacing'と`\autoxspacing', `\noautoxspacing'
の現在の状態を表示します。

''例''

漢字-漢字間および漢字-和欧文間に自動的に空白を挿入する状態のときに、

    \showmode

とすると、つぎのように表示されます。

    > auto spacing mode; 
    > auto xspacing mode.

''関連項目'':
[[\autospacing>#autospacing]],
[[\noautospacing>#noautospacing]],
[[\autoxspacing>#autoxspacing]],
[[\noautoxspacing>#noautoxspacing]]


** &aname(sjis){\sjis《16ビット数値》}; [#o262d6ad]

シフトJISコードから内部コードへの変換を行います。

''例''

 \char\sjis"8A4F

は、`外'です。

''関連項目'':
[[\euc>#euc]],
[[\jis>#jis]],
[[\kuten>#kuten]],


** &aname(tate){\tate}; [#p65e9144]

組方向を縦方向にするプリミティブです。
カレントの和文フォントは、縦組用のフォントになります。

なお、組方向の変更は、ボックス作成コマンドの最初で宣言しなくてはいけません。
また、ボックスをコピーしたり、展開する場合は、同じ組方向のボックス内で
なくてはなりません。

''関連項目'':
[[\yoko>#yoko]]


** &aname(tbaselineshift){\tbaselineshift}; [#gb035b3b]

縦組ボックス内での、和欧文フォント間のベースラインを調整するための
グルーを格納するレジスタです。
このレジスタの値は、挿入箇所以降で有効となります。

''関連項目'':
[[\ybaselineshift>#ybaselineshift]]


** &aname(tfont){\tfont}; [#wb761406]

`\font'と同じです。
ただし、`\showmode'などのプリミティブと組み合わせた場合は、
カレントの縦組用の和文フォントを返します。
フォントの定義には、\font, \tfontのいずれを使っても欧文フォント、
縦組用の和文フォントの定義が可能です。

''例''

    \tfont\tate-mincho=tmin10 at 24pt

このように記述すると、\tate-mincho に24ポイントの明朝体が割り当てられます。

    \showthe\tfont

とすると、カレントの縦組用の和文フォントを返します。

''関連項目'':
[[\jfam>#jfam]],
[[\jfont>#jfont]]


** &aname(xkanjiskip){\xkanjiskip=《グルー》}; [#y3e1fc9e]

連続する漢字(2バイトコード)と英字(1バイトコード)間に自動的に
挿入するグルーの値を格納するレジスタです。
この処理は、[[\autoxspacing>#autoxspacing]],
[[\noautoxspacing>#noautoxspacing]]によって行うか行わないかの
指定をします。

このレジスタの値は、パラグラフの終わりか、
または\hboxの最後の時点で取り込んで処理します。
したがって、同一パラグラフ内、
あるいは\hbox内で何度か値を変化しても、
最後に設定した値で処理されます。

''例''

    \xkanjiskip=10pt plus 1pt minus1pt

''関連項目'':
[[\autoxspacing>#autoxspacing]],
[[\noautoxspacing>#noautoxspacing]],
[[\kanjiskip>#kanjiskip]],
[[\xspcode>#xspcode]],
[[和欧文間スペース>../文字間スペースについて#xkanjiskip]]


** &aname(xspcode){\xspcode《8ビット数値》=《0|1|2|3》}; [#wde74aea]

連続する漢字(2バイトコード)と英字(1バイトコード)の間に
自動的に挿入されるスペースについて、
指定する英字と漢字の間で挿入を許可するかしないかを指定します。
この指定は0~3のいずれかを設定することで、つぎの動作を選択します。

 0 指定した英字と前後の漢字の間のスペース挿入を禁止する。
 1 指定した英字と直前の漢字との間にだけスペース挿入を許可する。
 2 指定した英字と直後の漢字との間にだけスペースの挿入を許可する。
 3 指定した英字と前後の漢字との間に対して、スペースの挿入を許可する。

''例''

    \xspcode`A=0
    \xspcode`B=3
    \xspcode`;=2

この例では、`A'に対するスペース挿入を禁止し、
`B'に対して前後のスペース挿入を許可します。
また、`;'に対しては直後へのスペースの挿入を許可します。

''関連項目'':
[[\inhibitxspcode>#inhibitxspcode]],
[[\xkanjiskip>#xkanjiskip]],
[[記号類との間>../文字間スペースについて#yakumono]]


** &aname(ybaselineshift){\ybaselineshift}; [#be50ee08]

横組ボックス内での、
和欧文フォント間のベースラインを調整するためのグルーを格納するレジスタです。
このレジスタの値は、挿入箇所以降で有効となります。

''関連項目'':
[[\tbaselineshift>#tbaselineshift]]


** &aname(yoko){\yoko}; [#dcb9cca9]

組方向を横方向にするプリミティブです。
カレントの和文フォントは、横組用のフォントになります。

なお、組方向の変更は、ボックス作成コマンドの最初で宣言しなくてはいけません。
また、ボックスをコピーしたり、展開する場合は、同じ組方向のボックス内で
なくてはなりません。

''関連項目'':
[[\tate>#tate]]


** &aname(zh){zh}; [#j965aaf2]

exと同じようにカレントフォントが持つ高さ+深さを示す単位記号です。
ただし、カレント和文フォントを参照します。
縦組ボックスの内部ではカレントの縦組フォント、
横組ボックスの内部ではカレントの横組フォントの高さ+深さを参照します。

縦組フォントと横組フォントでは、
`高さ'と`深さ'を示す位置が異なることに注意してください。

#ref(kanji-baseline.png)

''関連項目'':
[[zw>#zw]]


** &aname(zw){zw}; [#jbba75eb]

emと同じようにカレントフォントが持つ文字幅を示す単位記号です。
ただし、カレント和文フォントを参照します。
縦組ボックスの内部ではカレントの縦組フォント、
横組ボックスの内部ではカレントの横組フォントの幅を参照します。

縦組フォントと横組フォントでは、
`幅'を示す位置が異なることに注意してください。

#ref(kanji-baseline.png)

''関連項目'':
[[zh>#zh]]

''参考書籍'':
アスキー出版局『日本語TeXテクニカルブックI』アスキー出版技術部, 1990年(絶版)