BXptool パッケージ

pLaTeX 用のパッケージについて、他のエンジンでも使用可能な改変版を作る試みである。
変更履歴
  • 2015/11/23:一部の文章を修正。
  • 2010/05/16:一部の文章を修正。

概要

ascmac や jsverb 等の pLaTeX 用のパッケージについて、 他のエンジンでも使用可能な改変版を作る試みである。

パッケージ

  • bxascmac パッケージ: ascmac 改変版
  • bxjsverb パッケージ: jsverb、okuverb 改変版
  • bxokumacro パッケージ: okumacro 改変版

対応環境

基本的に、LaTeX2e であれば欧文・和文を問わず利用できる。 一部の日本語関連の機能については XeLaTeX か(u)pLaTeX を必要とすることがある。

ダウンロード

github のページから ZIP アーカイブがダウンロードできる。

  • zr-tex8r/BXptool サイトメニューにある「Download ZIP」のボタンを押す。

「奥底の倉庫」に旧版が置いてある。

インストール方法については、 パッケージ付属の説明書を参照。

bxascmac パッケージ

(株)アスキー・メディアワークスによる pTeX の配布に付属するパッケージ ascmac の改変版。 原版のファイル (tascmac.sty) 自身に記載された著作権者は 「ASCII Corporation & Impress Corporation」 となっている。

参考: 現在の pLaTeX の構成では、 ascmac.sty は単に tascmac.sty を読むだけで、 tascmac.sty に全てのマクロ記述がある (元々は横書き専用の ascmac と縦書き対応の tascmac があったのであろう)。 tascmac は pTeX の縦書き制御命令を含むので (u)pTeX 以外では使えない。 ただし、 W32TeX では欧文 LaTeX で ascmac を読み込もうとすると pLaTeX 2.09 用の古い版が使われるようである。 この版は縦書き対応を施す前のものであるから、 古い版であるということを除けば特に問題なく動作する。

対応環境

一部の機能は(欧文)フォント ascgrp を必要とする。 pTeX が正常にインストールされていれば、 ascgrp も使える状態になっているはずである。

機能

縦書き対応を除去したことと以下で相違を明示している点を除けば原版と同じである。

  • \keytop[<位置>]{<テキスト>}: テキストを角丸四角で囲みキートップを表す。 <位置> は d(既定値)、t、b のいずれかで 枠の内外のベースラインの合わせ方を指定する。 枠の大きさは中のテキストの縦横幅に従い変化する。
  • \return\Return: リターン記号。
  • \begin{screen}[<値>]~\end{screen}: 角丸四角枠でテキストを囲む。 <値> は 0~9 の値(既定値は 0) で枠の形状が変化する。
  • \begin{itembox}[<位置>]{<見出し>}~\end{itembox}: 太線の角丸四角枠でテキストを囲み、 上部に見出しをつける。 <位置> は l(左)、c(中央;既定値)、r(右) のいずれかで見出しの水平位置を表す。
  • \begin{boxnote}~\end{boxnote} ノートページ様の枠でテキストを囲む。
  • \mask{<テキスト>}{<網種>}: 飾り網掛け。 <網種>AK の文字で指定。
  • \maskbox{<幅>}{<高さ>}{<網種>}{<位置>}{<文字列>}: 幅と高さを指定した飾り網掛け。 <位置> は l(左)、c(中央;既定値)、r(右) のいずれかでテキストの箱内の水平位置を表す。
  • \Maskbox{<幅>}{<高さ>}{<網種>}{<位置>}{<線幅>}{<文字列>} \maskbox<線幅> の幅の外枠を加えたもの。
    注意: 本家の ascmac の \maskbox\Maskbox には段落の先頭では正しく働かないという不具合があった。 bxascmac ではこの点は修正されている。
  • \yen:欧文の円記号。 これは単に LaTeX 標準の \textyen に展開されるようにしている。 XeLaTeX では xunicode パッケージ、従来の LaTeX/pLaTeX では textcomp パッケージが必要である。

サンプル

この文書中のサンプル(以降の節を含めて)は、 BXjscls バンドルZXjatype バンドルZXjafont バンドルに含まれる 文書クラスやパッケージを使用する。

\documentclass[a4paper,twocolumn]{bxjsarticle}
\usepackage{zxjatype}
\usepackage[ipa]{zxjafont}
\usepackage{bxascmac}
\begin{document}

\newcommand*{\KEY}[1]{\keytop{\sffamily\footnotesize
  \rule[-.1em]{0pt}{.8em}\smash{#1}}}
\KEY{Ctrl}+\KEY{Tab}+\KEY{F9}+\KEY{→} を押すだけです。

\begin{screen}[4]
\begin{verbatim}
C:\>dri
コマンドまたはファイル名が違います.
\end{verbatim}
\end{screen}

\begin{itembox}[r]{定理}
自然数$n$について$n<n+1$。
\end{itembox}

\begin{boxnote}
自然数$n$について$0\leq n$。
\end{boxnote}

\newpage

\begin{shadebox}
$a_1,\ldots,a_n$を単調増加数列とする。
この時、以下の式の値は$k$($\in\{1,\ldots,n\}$)
に依らず一定である。
\[
  \prod_{j=1}^n (a_j - a_k)
\]
\end{shadebox}

\begin{center}
\mask{網掛1}{A} \mask{網掛2}{C} \mask{網掛3}{E}
\mask{網掛4}{G} \mask{網掛5}{I} \mask{網掛6}{K}
\par\medskip
\mbox{}\maskbox{12em}{4em}{E}{c}
{$\displaystyle\sum_{k=1}^n k = \frac{n(n+1)}{2}$}
\par\medskip
\mbox{}\Maskbox{12em}{4em}{A}{c}{1pt}
{$\displaystyle\sum_{k=1}^n k^3 =
  \biggl(\sum_{k=1}^n k\biggr)^2$}
\end{center}

\end{document}

bxjsverb パッケージ

奥村晴彦氏の「新ドキュメントクラス」のアーカイブに含まれる、 verbatim 出力を改良するための 2 つのパッケージ、 okuverb と jsverb と統合したものである。 また、主に XeLaTeX のサポートのために、bxjsverb 独自の機能も追加されている。

2 つの原版との関係は、基本的に以下のようになる。

  • \usepackage[noascii,<他オプション>,...]{bxjsverb} : okuverb と互換の動作
  • \usepackage[ascii,<他オプション>,...]{bxjsverb} : jsverb と互換の動作

noascii の方が既定である。) 以下で bxjsverb の機能を紹介するが、特に断りのない限り、 そこでの記述は okuverb/jsverb にも当てはまることに注意されたい。

レイアウト上での改良点

以下は奥村氏による okuverb/jsverb の改良点で、 当然 bxjsverb にも引き継がれている。

  • verbatim(*) 環境内のフォントサイズと行送りが \verbatimfontsize で設定されたものになる。 これの既定値は「\fontsize{9}{11pt}\selectfont」だが \renewcommand* で変更できる。
  • verbatim(*) 環境の左側に \verbatimleftmargin のインデントが取られる。 この長さ変数の既定値は 2zw((u)pLaTeX または XeLaTeX + bxjs クラスの場合) または 2em(それ以外)である。

特定の文字の扱い

基本的に入力の文字列自身をそのまま出すのが verbatim 出力なのであるが、 ASCII 文字に関しては複雑な事情があって、「そのまま」にならない、 あるいはしたくない場合が存在する。 bxjsverb では各場合について処理の選択肢を与えている。 (以下の説明で「0x」は 16 進数を表す。)

符号位置 0x5C の文字(バックスラッシュ/円記号)

ASCII の符号位置 0x5C の文字はバックスラッシュ〈\〉 であり、一方 JIS X 0201 の符号位置 0x5C の文字は円記号〈¥〉 である。 旧来の日本語コードでは「半角」の 0x5C の表示は環境によりバックスラッシュの場合も 円記号の場合もあった。 かつこの 0x5C の文字は様々な文法体系で特別な意味をもつ文字 ―例えば Windows のパス区切り文字、LaTeX の制御綴りを開始するための文字、等― として扱われていて、そこでは「符号位置 0x5C」であることに意味があるので、 日本において、そういう文脈では「バックスラッシュ」と「円記号」は一般的に同一視されてきた。 Unicode ではバックスラッシュは U+005C、円記号は U+00A5 と明確に分離されているが、 これは「『円記号の外見』と『0x5C の機能』をもった文字」がもはや存在しないことを意味する。 Windows では、内部処理を Unicode に移行する際にこの非互換性を回避するために、 「旧来の日本語文字符号の 0x5C は U+005C(つまりバックスラッシュ)に対応させるが、 日本語用のフォントでは U+005C の字形を円記号とする」という方策をとった。 結果として、日本語 Windows では未だに U+005C(つまり ASCII の 0x5C) は円記号として表示される状態が継続している。

一方、LaTeX で verbatim 出力に使われるフォント (「等幅の OT1」や「T1」のエンコーディング)では 0x5C はバックスラッシュである。 そこで次のような要望が考えられる。

  • LaTeX の verbatim 出力でも欧文の 0x5C を円記号として出力したい。
  • XeLaTeX の verbatim 出力では入力した Unicode 文字がそのまま出力される。 そうすると、等幅フォントに日本語フォントを指定していると、 U+005C が円記号になってしまうが、これをバックスラッシュとして出力したい。

bxjsverb ではパッケージオプションで符号位置 0x5C の文字の表示を制御できる。

  • 既定: 「内部処理でバックスラッシュと見なされる文字(\textbackslash)」 を出力する。 通常、これは外見もバックスラッシュであるが、先述の通り XeLaTeX では円記号 の字形である場合がある。
  • yen: 「内部処理で円記号と見なされる文字(\textyen)」 を出力する。円記号として出力したい場合に用いる。 (OT1 エンコーディングでは Y と = から合成される。)
  • fakebsl [bxjsverb 追加機能]: スラッシュを graphicx の \reflectbox で反転させたものを出力する。 XeLaTeX で U+005C が円記号になる場合に、バックスラッシュとして表示させたい場合に用いる。 表示上は違和感がないが、PDF でのテキスト情報は不正になる(スラッシュ(U+002F)と扱われる)。
  • cmttbsl [bxjsverb 追加機能]: Computer Modern Typewriter フォントのバックスラッシュ文字を出力する。 これも XeLaTeX で U+005C が円記号になる場合の対処である。 テキスト情報は正しく U+005C となるが、他の文字と調和しないかもしれない。

符号位置 0x60/0x27 の文字(一重引用符対/ASCII 準拠)

ASCII において、符号位置 0x60/0x27 の文字は

  • 0x60 = U+0060 GRAVE ACCENT: 字上符の単独形〈`〉。あまり有用でない。
  • 0x27 = U+0027 APOSTROPHE: 向きのない一重引用符〈'〉。ASCII ではこの文字を一重引用符の 「開き」と「閉じ」両方に用いる。

となっている。 ところが、過去の一時期の米国において、この0x60/0x27 の文字の対を 一重引用符の「開き」〈‘〉と「閉じ」〈’〉(Unicode では U+2018 と U+2019) として用いる習慣があった。 (U+0027 は「開き」と「閉じ」両方で通用するような曖昧な字形に せざるを得ないので、まともな字形の引用符を用いたい という要望を満たすための方法である。)

TeX ではこの習慣に倣って、〈‘〉を 0x60〈`〉、〈’〉を 0x27〈'〉 で入力するようになっている。 これ自体は便利なのだが、問題なのは、文字をそのまま出るはずの verbatim 出力においてもこの「変換」が適用され、 0x60 と 0x27 だけ本来の ASCII 文字ではなく一重引用符に「文字化け」して出力されることである。 (先述の習慣に従えばこれで「正しい」出力ということになるのだが…。) この「文字化け」の影響は、PDF に変換した場合により深刻になる。 プログラムソースを LaTeX の verbatim 環境で組版し、 その出力を PDF に変換した時、テキスト情報の上でも 0x60/0x27 が一重引用符に化けているので、 そこからコピー&ペーストしたソースが不正なものになってしまう。

bxjsverb ではパッケージオプションで符号位置 0x60/0x27 の文字の表示を制御できる。 (このオプション自身は bxjsverb で追加されたものであるが、 制御機能そのものは原版で既に存在する。)

  • noascii (既定)[bxjsverb 追加機能]: LaTeX の verbatim 出力の既定の動作のままであり、 フォントの符号位置 0x60/0x27 の文字を出力する。 8 bit 欧文の LaTeX 用のエンコーディングでは これは一重引用符〈‘ ’〉(U+2018/U+2019)である。 XeLaTeX の場合、フォントの tex-text マッピングが有効ならば 8 bit 欧文の場合と同じになり、 無効ならば正しい ASCII 文字になる。
  • ascii [bxjsverb 追加機能]: 正しい ASCII 文字〈` '〉(U+0060/U+0027)を出力する。 PDF 中の文字情報も正しいものとなる。

奥村氏による原版では、okuverb は noascii、jsverb は ascii の動作になり、この 2 つの相違点はそれだけである。 (つまり、okuverb に 0x60/0x27 の対処を加えたのが jsverb だというわけである。)

注意: XeLaTeX で等幅ファミリに日本語フォントを指定している場合は、 U+2018/U+2019 の文字は通常全角幅をもつので、 半角幅の U+0060/U+0027 の代わりに用いると水平位置がずれてしまう。

空白記号の扱い

「* 付の verbatim 出力」(\verb*verbatim* 環境) では ASCII の空白文字(符号位置 0x20)は 「空白記号」〈〉 (U+2423 OPEN BOX)として出力される。 XeLaTeX では一般的な(TeX 用に作られたものでない) 欧文フォントが使われうるが、 そのようなフォントでは U+2423 の字形をもっていないことがある。 そこで、bxjsverb では空白記号の出力方法も パッケージオプションで制御できるようにしている。 (bxjsverb 追加機能である。)

  • 既定: 8 bit 欧文の LaTeX では従来と同じ。 XeLaTeX では U+2423 の文字を出力するが、 フォントにこの字形がない場合は cmttvsp の動作をする。
  • fakevsp\rule を使って空白記号を合成する。 PDF 出力でのテキスト情報は不正になる(文字と見なされない)。
  • cmttvsp: Computer Modern Typewriter フォントの空白記号を出力する。
注意: 先述の一重引用符の話と同様、 日本語フォントでは U+2423 の文字が全角幅になっていることがあるので注意。
参考: LaTeX 標準(bxjsverb なし)の「* 付の verbatim 出力」の定義は、 XeLaTeX では正常動作しない。 この不具合は xltxtra パッケージを読み込んで解消するものとされている。 なお、bxjsverb 読込時は xltxtra パッケージはあってもなくても 正しい出力になる。

その他の機能

  • \yen: 欧文の円記号。 この命令自体は単に LaTeX 標準の \textyen に展開される。 従って本来なら適切なパッケージ (欧文 Unicode 非対応 LaTeX なら textcomp、XeLaTeX なら xunicode) が必要なはずだが、bxjsverb では通用のエンコーディングについて 他の場所で定義されていない場合は自前の定義を与えている。
  • \ttyen: 等幅フォントの円記号。 yen オプション指定時に 0x5C に対応する出力。
  • \ttbslash: 等幅フォントのバックスラッシュ(正確には「符号位置 0x5C の文字」)。 0x5C 関係のオプションが無指定の場合に 0x5C に対応する出力。
  • \BSyen オプションが有効なら \ttyen、無効なら \ttbslash になる。

サンプル

まずは次のような簡単な \verb* を出力することで各々のパッケージオプションの動作を見ることにする。 等幅フォントとして「TeX Gyre Cursor」と「MS 明朝」を用いる。

\documentclass[a4paper]{article}
\usepackage{xltxtra}
\usepackage[<オプション>]{bxjsverb}
%% 以下の 3 つの等幅フォント設定の中の 1 つを用いる
\setmonofont{TeX Gyre Cursor}
%\setmonofont[Mapping=tex-text]{TeX Gyre Cursor} %(*)
%\setmonofont{MS 明朝}
\begin{document}
\noindent
\verb*|``Hello, \TeX\ chaos!''|
\end{document}

結果は以下のようになる。 ここで「tex-text マッピング有効」とは上のソースの (*) の行を有効にした状態である。

結果

これは XeLaTeX の出力なので、tex-text マッピングをわざわざ有効にしない限り、 0x60/0x27 が一重引用符対に化けることはない。 (念のため補足しておくと、ここでは LaTeX のコードを出力しよう としているので、一重引用符対でない方が「正しい」出力である。) しかし 8 bit 欧文 LaTeX では化ける方が普通の動作になるので注意が必要である。 次は pLaTeX での例であり、文字化けを防ぐために ascii オプションを指定している。

\documentclass[b5paper,papersize]{jsarticle}
\usepackage{lmodern}      %+ 等幅フォントを
\usepackage[T1]{fontenc}  %+ T1/lmttとする
\usepackage[ascii]{bxjsverb}
%\usepackage{jsverb}     % これと同じ結果
\begin{document}
以下に \verb|\DeclareTextComposite| の使用例を示す。
\begin{verbatim}
\DeclareTextComposite{\'}{ZR2}{Q}{'016} % Q-acute
\DeclareTextComposite{\"}{ZR2}{Q}{'017} % Q-umlaut
\DeclareTextComposite{\`}{ZR2}{Q}{`@}   % Q-grave
\end{verbatim}
% 上のコードの意味が何かは気にしないことにしよう ;-)
\end{document}

出力を PDF に変換したものを掲載する。 併せて、ascii 非指定の場合の結果も掲載しておく。 文書中の TeX コード部分をコピー&ペーストして テキスト情報を調べてみてほしい。

bxokumacro パッケージ

原版のパッケージ okumacro は、 奥村晴彦氏の「新ドキュメントクラス」 のアーカイブに入っている、おまけ的何か。

対応環境

一部の機能について 「日本語対応環境」 を必要とするものがある (詳しくは後述)。 なお、 パッケージのファイルの文字コードは UTF-8 となっているので pLaTeX で利用するには入力漢字コードの指定(-kanji=utf8) が必要である。 もっとも、 pLaTeX では本家の okumacro パッケージが使えるのでわざわざこちらを用いる必要性は小さい。

機能

機能の一部を紹介する。 ここに挙げたもの以外でも、okumacro にあるものは後に述べる例外を 除いて全て用意されている。 okumacro.dtx(pLaTeX 文書)のプログラムコメントに奥村氏による解説が 含まれているので併せて参照されたい。

なお、 和文処理が必要な機能については【★】の注釈を付している。 これらの機能は以下に示す何れかの 「日本語対応環境」 を必要とする。

  • pLaTeX / upLaTeX。
  • XeLaTeX + zxjatype パッケージ。
  • LuaLaTeX + LuaTeX-ja パッケージ。
  • pdfLaTeX 上で BXjscls パッケージの文書クラスを標準設定 (standard 和文ドライバ) で用いている。
    ※この場合、和文文字の命令 (\挨拶\―― など) は使えないので代替名 (\AISATSU\DDASH など) を使う必要がある。
参考: ただし、これ以外の環境 (例えば zxjatype を利用しない XeLaTeX など) でも【★】の機能の一部が使える場合もある。

(マクロ)

  • \ruby{<親字>}{<ルビ>}:ルビ振り。
  • \kenten{<和文文字列>}:【★】圏点付加。
    ※pdfLaTeX では使用不可。
  • \kintou[<幅>]{<和文文字列>}:【★】均等割り。
  • \曜\YOU:【★】今日の曜日(日~土)を出力する。
  • \挨拶\AISATSU: 時候の挨拶(謎)。
    参考: 某『美文書』に登場するネタ。
  • \mytt:全てのASCII文字が容易に出力可能な「myttモード」に切り替える (通常はグルーピングの中で用いる)。 このモードでは $ % \ { } は前に \ を付し、残りの ASCII 文字はそのまま 入力することで出力できる。 空白および / \ @ - . の直後で行分割可能である。 なお、\verb 等と同じく、マクロの引数中では直接入力が機能しなくなる (後の小節中の記述も参照)。
  • \yen:欧文の円記号。bxjsverb の \yen の定義と同じ。
  • \BS:等幅フォントのバックスラッシュ。 bxjsverb 併用の場合はそちらの定義が優先され、 バックスラッシュと円記号が切り替わるようになる。
  • \asciibar:〈¦〉の文字(U+00A6)。 \yen の処理と同様で、 一旦 LaTeX 標準表現の \textbrokenbar に展開する。 結果的に OT1 では合成文字、T1 では TS1 に切替、 XeLaTeX + xunicode では U+00A6 として出力される。
    参考: 現在はこの文字は ASCII にあるとは見なされないが、 かつて ASCII 規格で 0x7C の文字が 〈|〉(U+007C)と 〈¦〉(U+00A6) の間で何度も入れ替わったという経緯がある。
  • \――\DDASH:倍角ダーシ。この命令名の〈―〉の部分は JIS 符号では 「01-29 ダッシュ(全角)」 「01-61 減算記号」、 Unicode では 「U+2014 EN DASH」 「U+2015 HORIZONTAL BAR」 「U+2212 MINUS SIGN」 「U+FF0D FULLWIDTH HYPHEN-MINUS」のいずれかが使える。 (ただし、その〈―〉がマクロ命名規則に関して英字と同じ扱いになっている場合、 \―― の直後に区切りの空白文字が要ることに注意。)
  • \keytop{<テキスト>}:キートップ記号。 bxascmac のものと異なり縦幅が一定である。
  • \return:Enterキー(リターンキー)記号。
  • \upkey\downkey\rightkey\leftkey:矢印キー記号。
  • \MARU{<テキスト>}:丸囲み文字を合成する。
  • \PiCTeX\JTeX\JLaTeX\JBibTeX:ロゴ。
  • \LEQQ\GEQQ\APPROX:横線が 2 本の ≦ と ≧、および上下点付=。
  • \FRAC{<分子>}{<分母>}:欧文の vulgar fraction。
  • \ANGLE{<テキスト>}:欧文の山括弧。

(環境)

  • \begin{namelist}{<テキスト>}~\end{namelist}: 見出し幅を <テキスト> の自然長に設定したリスト。
  • \begin{mybibliography}{<テキスト>}~\end{mybibliography}: カウンタをリセットしない thebibliography 環境。
  • \begin{FRAME}~\end{FRAME}:枠です。
  • \begin{screen}[<倍率>]~\end{screen}:ascmac の screen の改造版。 <倍率> で中のテキストを横方向に伸縮できる (長い行を含む出力結果を無理に収めるために使う)。 現在の ascmac とはオプションの意味が異なるので注意。
  • \begin{shadebox}~\end{shadebox}:影付きの箱。ascmac の shadebox の改造版。
  • \begin{sankou}~\end{sankou}: 参考の環境。
  • \begin{toi}~\end{toi};問いの環境。

補足事項:

  • \keytop\return、screen 環境、shadebox 環境の 4 つは bxascmac に同名の機能があるが、bxascmac と併用した場合は bxascmac の機能が優先される。 これらの機能は前に oku- を付した \okukeytop\okureturn、okuscreen 環境、 okushadebox 環境としても定義されていてこちらはいつでも使える。 なお、\yen は bxascmac/bxjsverb/bxokumacro の何れも同じ定義 (\textyen に展開)であり、 bxjsverb/bxokumacro は \textyen にも定義を与えている。
  • \eps\hk\hx\3\5\株\enableokumacroshorthands 命令を実行すると 定義される。後ろの 5 つは (u)pLaTeX 専用である。
  • \whichpage は現在の定義に問題があるので省いた。 その他の okumacro の命令は使えるはずである。

サンプル

\documentclass[a4paper]{bxjsarticle}
\usepackage{zxjatype}
\setjamainfont{IPAMincho}
\setjasansfont{IPAGothic}
\setjamonofont{IPAGothic}
\usepackage{bxokumacro}
\usepackage{xltxtra}
\begin{document}
\begin{dangerous}
\item {\mytt\\ruby} 命令:\quad
  \ruby{組}{くみ}\ruby{版}{はん}\quad
  \ruby{表}{ひょう}\ruby{彰}{しょう}\ruby{状}{じょう}\quad
  \ruby{百舌鳥}{もず}\quad
  \ruby{仮想現実}{バーチャル・リアリティ}
\item {\mytt\\kenten} 命令:\quad
  和文で強調を示す方法として\kenten{圏点}があります。
\item {\mytt\\kintou} 命令:\quad
  \parbox[t]{6\jsZw}{%\def\kintou#1#2{#2}%
  \kintou{6\jsZw}{均等割り}\\
  \kintou{6\jsZw}{きんとうわり}}
\item {\mytt\\mytt} 命令:\quad
  \begin{minipage}[t]{30\jsZw}
  この記事のURL :
  {\mytt http://hogeblog.jp/tex-hoge/cat/\%E3\%81\%BB\%E3\%81\%92/13?_tc=86311#top}
  \end{minipage}
\item {\mytt\\keytop} 命令:\quad
  \keytop{Ctrl}+\keytop{Tab}+\keytop{F9}+\downkey を押すだけです。
\end{dangerous}
\end{document}

さらにオマケ

  • \textmytt{<テキスト>}: 動作は {\mytt <テキスト>} と同じであるが、 \mytt がマクロの引数の中で (一部の記号の直接入力が)使えないのに対し、 \textmytte-TeX 拡張をもつ LaTeX を使った場合にはマクロの引数の中でもほぼ制限なく使える。 引数内使用での唯一の制限は # が直接書けない (\# と書く必要がある)ことである。

(u)pLaTeX 以外の LaTeX は e-TeX 拡張をもっている。 通常の(u)pLaTeX は e-TeX 拡張をもたないが、 e-TeX 拡張をもつ版は存在し、W32TeX では標準で用意されている (コマンド名は eplatex/euplatex)ので、これを用いれば \textmytt の機能を活かすことができる。

以下の例では \fbox の引数中で \textmytt を使っている。 {\mytt ...} だと _& の直接入力が機能せずエラーになる。

\documentclass[a4paper]{article}
\usepackage{bxokumacro}
\begin{document}
The reference URL:
\fbox{\textmytt{http://example.com/phoo_barr/indexx.php?pi=81035&li=ja}}
\end{document}
参考: 下の表は ASCII の記号での LaTeX での直接入力の可否を示したものである。 \mytt は直接入力可能(? で ? の入力) な記号の範囲を増やしている(①→③)とともに、\ 付で入力可能 (\$ で $ の入力)な記号の範囲を増やしている(②→④)。 特に普通に直接入力可能でない(①の×)の全てを \ 付で入力可能 にしていることに注意すべきである。 \mytt をマクロの引数中で用いた場合、直接入力可能な記号の範囲は 通常と同じ①に戻ってしまうが、それでも \ 付で入力可能な範囲は ④のままであるので、②で入力できない記号を扱うのには有用である。
  入力 !"'()+,-./:;<=>?@[]` <>| #& $% _ {} ^~ \
X *1 × × × × × ×
\X × × *2 *2 × ×
X\mytt *1 × × ×
\X\mytt × ×
*1
OT1 エンコーディングの場合は等幅フォントのみ。
*2
OT1 エンコーディングの場合は本来のフォントにならない。
マクロの引数内では以下のようになる。
\myttX : ①と同じ。 / \mytt\X : ④と同じ。
\textmyttX : ③から # を除いた範囲。 / \textmytt\X : ④と同じ。
なお、^~\ 付入力を可能にしたのは bxokumacro の変更であって、原版の okumacro は \^\~ はアクセント命令のままである。 bxokumacro でも \^\~ の直後が { の場合はアクセント命令とみなすようにしている。 {\~} とすれば確実に単独の文字となる。 (T1 エンコーディングでは単独の〈~〉文字と \~{} の出力は字形が異なることに注意。)