
Я пытаюсь набрать некоторый код TeX в строке с помощью ConTeXt. В 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|
(В третьем случае вы можете использовать в качестве разделителя практически любой отдельный символ, а не только |
, так же, как это \verb
позволяет LaTeX.) Необязательный аргумент [...]
, если он указан, должен быть списком пар ключ-значение: допустимыми параметрами являются именно те, которые\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
где я имитирую стиль вики и использую скобки (...)
для указания значения по умолчанию.
Если вы обнаружите, что снова и снова передаете одни и те же варианты \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
.