変数が与えられた実際の座標空間に属することを表す一般的なシンボルのセットは、ε("ELEMENT OF", Unicode U+2208) と ℝ("DOUBLE-STRUCK CAPITAL R", Unicode U+211D) です。
これら2つの記号はeqn
、troff
および/またはで使用できますかgroff
?ドキュメントに見つかりません。
編集する:
提供された回答をテストした結果、ε(「ELEMENT OF」、Unicode U + 2208)記号は表示されますが、ℝ(「DOUBLE-STRUCK CAPITAL R」、Unicode U + 211D)記号は表示されません。
具体的にこれを行うと:
.TL
Test
.NH
Introduction
.LP
Given an input in subspace \[u211D]:
.EQ
x \[mo] \[u211D] sup 2
.EN
with output estimated value:
.EQ
y hat
.EN
次のエラーが発生します。
cat test.ms | eqn | groff -ms > test.ps
troff: <standard input>:8: warning: can't find special character 'u211D'
PS出力からわかるように、εは表示されますが、ℝは表示されません。
私はとFreeBSD 12
eqn
を使用していますgroff
。
答え1
groffでU + 211DなどのUnicode文字を表示するには、その文字を含むフォントを見つけてgroffにフォント仕様ファイルを提供する必要があります。通常、ttfファイルをpfaに変換してリストに追加します。
一般的なフォントを見つけることができるウェブサイトは次のとおりです。ファイル形式情報これは、ほとんどのDejaVu
フォントにこの文字が含まれていることを示しますDejaVu Serif
。 Fedoraはこのttfフォントをパッケージからインストールできるので、dejavu-sans-fonts
FreeBSDにも同様のフォントがあると推測されます。 (そうでない場合は、一致する他のフォントのいずれかを試してください。)
または、fc-match
次のコマンドがある場合は、その文字を含む既存のフォントファイルを見つけることができます。
fc-match -s -f '%{file}\n' ':charset=211D'
.ttf
このリストからTrueTypeファイル(通常はサフィックス)を選択する必要があります。
fc-list
または、コマンドがある場合は、次のようにしてttx
ttfフォントから文字名をゆっくりと検索できます。
fc-list |
sed -n 's/\.ttf: .*/.ttf/p' |
xargs -l -t ttx -t cmap -o - 2>&1 |
grep 'ttx\|DOUBLE-STRUCK CAPITAL R'
文字の外観が見つかると、ファイル名と一致が出力されます。たとえば、次のようになります。
ttx -t cmap -o - /usr/share/fonts/dejavu/DejaVuSansMono.ttf
<map code="0x211d" name="uni211D"/><!-- DOUBLE-STRUCK CAPITAL R -->
もしそうなら、Peter Schaffterの記事を読んでください。説明する~についてgroffにフォントを追加。これはマクロ用に書かれていますが、mom
通常はgroffで動作します。マクロがそれを処理できない可能性があります。家族自動的に。彼は便利に提供したシェルスクリプトあなたのために働いています。各ディストリビューションはファイルを別の場所に保存するのが好きなので、いくつかの調整が必要な場合があります。
その後、以下を追加できますeqnrc
。たとえば、次のようになります。
define @R '"\f[DejaVuR]\[u211D]\fR"'
次に、新しいフォントは必要ありません。
define in '{type "relation" size +3 \[mo]}'
答え2
名前付きグリフセットは、次の場所に記録されます。groff_char
マニュアルページ。 εは見えますが、\[mo]
ℝは見えません。
16進数の任意の文字を入力できます(例:ℝ)。 UTF-8入力を使用することも可能です。つまり、ℝを直接挿入してください。以下を使用して名前を定義できます。[uNNNN]
NNNN
\[u211D]
.char
必要:
.char \[Real] \[u211D]
私の答えは文字を入力する方法にのみ関連しています。 Groffが使用するフォントにこれらの文字が含まれているかどうか、それ以外の場合は代替フォントを使用するように教える方法がわかりません。
答え3
完全性を期すために、デフォルトの troff/groff でもこれを行う方法は次のとおりですeqn
。
troffコマンドを使用して、幅の一部である\h
ローカルの水平移動を後で実行できます。0.83m
まあ。一つまあ組版のための一般的な単位で、m
フォントの文字幅に似ています。したがって、我々は他のRでRを打つことができます。
The R\h'-.83m'R space 1.
読みやすくするには、このシーケンスで.ds
呼び出される文字列()を定義myreal
し、次のようにインスタンス化できます\*[myreal]
。
.ds myreal R\h'-.83m'R
The \*[myreal] space 2.
では、左に50/100移動してeqn
水平に移動できます。back 50
まあしたがって、必要がありますR back 50 R
が、ローマフォントも使用したいので、マクロを定義することをお勧めしますmyreal
。
.EQ
define myreal 'roman { R back 50 R }'
delim $$
.EN
その後、使用してください。インライン区切り文字$
と$
(開始と終了)を定義すると、テキストと方程式からマクロを呼び出すことができます。
Given an input in subspace $myreal$:
.EQ
x \[mo] myreal sup 2
.EN
しかし、最終的にeqnがfat
再生コマンドにオフセットを与えるという事実を発見しました。フォントサイズによっては、パラメータを使用する必要がありますfat_offset
(単位はems / 100)。上記の例では、次のものも使用できます。
.EQ
set fat_offset 15
x \[mo] fat roman R sup 2
.EN