
Eu uso o minted para destacar algum código javascript.
eu uso
\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}
para produzir
O problema é que ele destaca String, Boolean e Number, mas não ObjectId.
Como posso adicionar ObjectId como palavra-chave ao javascript cunhado?
Responder1
Em relação a minted
, a resposta é: você deve escrever uma extensão para o lexer JavaScript de pygmentize ou modificar uma cópia do lexer. Veja as respostas para a perguntaComo adicionar palavras-chave C++ personalizadas para serem reconhecidas pelo Minted?para detalhes.
Se você não é obrigado a usar minted
, use o pacote listings
. Aqui está um exemplo para definir o destaque do JavaScript (adaptado deesta respostapara a perguntaopção de idioma suportada nas listagens. Você pode definir facilmente suas próprias classes de palavras-chave e sua formatação.
\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}
Responder2
Como eu só precisava destacar uma palavra e não consegui encontrar nenhuma solução rápida (e não queria reescrever todo o destaque), criei esta solução alternativa (vergonhosamente) suja:
Em primeiro lugar, identifique a cor RGB necessária para o realce. Você pode obtê-lo através de um seletor de cores (por exemplo, os embutidos em navegadores da web) ou usar esse valor como base para encontrar o valor rgb exato no <yourMintedStyle>.pygstlye
arquivo (você pode encontrá-lo na _minted
pasta depois de compilar seu projeto.
Em seguida, defina essa cor em seu documento látex e pinte a palavra desejada através de caracteres de escape no ambiente cunhado. Aqui está um exemplo mínimo do trac
estilo 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}