
ConTeXt を使用して TeX コードをインラインでタイプセットしようとしています。LaTeX では\verb
これを処理するものがありますが、ConTeXt には同等のものが見つかりません。
ウィキペディアには、提案コード:
\def\typeTEX
{\bgroup
\def\processinlineverbatim##1%
{\processingverbatimtrue
\localcatcodestrue
\def\endofverbatimcommand{\TEXendofcommand##1}%
\bgroup
\aftergroup\endofverbatimcommand
\futurelet\next\doprocessinlineverbatim}%
\initializetyping{TEX}%
\startverbatimcolor
\processinlineverbatim\egroup }
しかし、それを使用しようとすると、次のエラーが発生します。
tex error > tex error on line 34 in file /.../xyz.tex: ! Undefined control sequence
\typeTEX ...cessinlineverbatim }\initializetyping
{TEX}\startverbatimcolor \...
何が機能するのか、またそれが必要なのかどうかはわかりません\initializetyping
。削除すると、同じメッセージが表示されます\startverbatimcolor
。このマクロは使用できないようです。代替手段はありますか?
答え1
\type
コードをインラインで入力するには、 を使用します。ここウィキ上では次のように使用できます。
\type[optional arg]{content with balanced braces}
\type[optional arg]<<content not containing the string ">>" anywhere>>
\type[optional arg]|content not containing the string "|" anywhere|
|
(ここでの3番目のケースでは、 LaTeXと同じように、 だけでなく、ほぼ任意の1文字を区切り文字として使用できます\verb
。)オプションの引数[...]
が指定されている場合は、キーと値のペアのリストである必要があります。有効なオプションは、\setuptype
(ここ私のマシンにインストールしたところによると、
ConTeXt ver: 2017.06.30 19:45 MKIV beta fmt: 2017.7.5
渡すことができるオプションは次の\type
とおりです。
color = COLOR
command = CSNAME
compact = absolute last (all)
escape = yes (no) TEXT PROCESSOR->TEXT
left = COMMAND
lines = yes (no) normal hyphenated
option = mp lua xml parsed-xml nested tex context none NAME
right = COMMAND
space = on (off) normal fixed stretch
tab = (yes) no NUMBER
ここでは、Wiki のスタイルを模倣し、括弧を使用して(...)
デフォルト値を示します。
\type
同じオプションを何度も渡す場合は、\definetype
次の方法が役に立つかもしれません。ここウィキにあります。これは、\define...
ConTeXt のすべてのスタイル コマンドと同じように機能します。
Tacoの\typeTEX
マクロ(MKIIでのみ機能)を模倣するには、type
次のように新しいマクロを定義します。
\definetype
[typeTEX]
[option=tex]
\starttext
\typeTEX!\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}!
\stoptext
これにより、 のコンテンツに TeX 構文のハイライトが適用されます\typeTEX
。