
Я использую minted для выделения части кода JavaScript.
я использую
\documentclass{article}
\usepackage{minted}
\begin{document}
\begin{minted}{js}
const mySchema = new Schema({
name: String,
is_true: Boolean,
age: Number,
object_ids: [ObjectId],
});
\end{minted}
\end{document}
производить
Проблема в том, что он выделяет String, Boolean и Number, но не ObjectId.
Как добавить ObjectId в качестве ключевого слова в javascript в minted?
решение1
Что касается minted
, ответ таков: Вам нужно написать расширение для JavaScript лексера pygmentize или изменить копию лексера. Смотрите ответы на вопросКак добавить пользовательские ключевые слова C++, которые распознаются Minted?для получения подробной информации.
Если вы не обязаны использовать minted
, используйте пакет listings
. Вот пример определения подсветки JavaScript (адаптировано изэтот ответна вопросподдерживаемая языковая опция в листингах. Вы можете легко определить собственные классы ключевых слов и их форматирование.
\documentclass{article}
\usepackage{listings}
\usepackage{color}
\definecolor{lightgray}{rgb}{.9,.9,.9}
\definecolor{darkgray}{rgb}{.4,.4,.4}
\definecolor{purple}{rgb}{0.65, 0.12, 0.82}
\lstdefinelanguage{js}{
keywords={const, typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
keywordstyle=\color{blue}\bfseries,
keywords=[2]{boolean, string, number, objectid},
keywordstyle=[2]\color{green}\bfseries,
identifierstyle=\color{black},
sensitive=false,
comment=[l]{//},
morecomment=[s]{/*}{*/},
commentstyle=\color{purple}\ttfamily,
stringstyle=\color{red}\ttfamily,
morestring=[b]',
morestring=[b]"
}
\lstset{
language=js,
extendedchars=true,
basicstyle=\footnotesize\ttfamily,
showstringspaces=false,
showspaces=false,
tabsize=2,
breaklines=true,
showtabs=false
}
\begin{document}
\begin{lstlisting}
const mySchema = new Schema({
name: String,
is_true: Boolean,
age: Number,
object_ids: [ObjectId],
});
\end{lstlisting}
\end{document}
решение2
Поскольку мне нужно было выделить только одно слово, и я не мог найти быстрого решения (и не хотел переписывать все выделение), я придумал этот (стыдно) грязный обходной путь:
Во-первых, определите цвет RGB, необходимый для подсветки. Вы можете получить его через палитру цветов (например, встроенную в веб-браузеры) или использовать это значение в качестве основы для поиска точного значения RGB в файле <yourMintedStyle>.pygstlye
(вы можете найти его в _minted
папке после компиляции проекта).
Затем определите этот цвет в вашем документе latex и раскрасьте нужное слово с помощью экранированных символов в среде minted. Вот минимальный пример для стиля trac
для golang:
\documentclass{article}
\usepackage{minted}
\usepackage{xcolor}
\begin{document}
\usemintedstyle{trac}
\definecolor{mblue}{rgb}{0.27,0.33,0.53}
\begin{minted}[escapeinside=||]{go}
type SomeType struct {
Foo uint64
Standard FooBar
Tweaked |\textcolor{mblue}{FooBar}|
}
\end{minted}
\end{document}