
Utilizo minted para resaltar algún código javascript.
yo suelo
\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 producir
El problema es que resalta Cadena, Booleano y Número, pero no ObjectId.
¿Cómo puedo agregar ObjectId como palabra clave a javascript en minted?
Respuesta1
Con respecto a minted
, la respuesta es: Tienes que escribir una extensión al lexer JavaScript de pygmentize o modificar una copia del lexer. Ver las respuestas a la pregunta.¿Cómo agregar palabras clave C++ personalizadas para que Minted las reconozca?para detalles.
Si no está obligado a utilizarlo minted
, utilice el paquete listings
. A continuación se muestra un ejemplo para definir el resaltado de JavaScript (adaptado deesta respuestaa la preguntaOpción de idioma admitida en los listados.. Puede definir fácilmente sus propias clases de palabras clave y su formato.
\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}
Respuesta2
Como solo necesitaba resaltar una palabra y no pude encontrar ninguna solución rápida (y no quería reescribir todo el resaltado), se me ocurrió esta (vergonzosamente) sucia solución:
En primer lugar, identifique el color RGB necesario para resaltar. Puede obtenerlo a través de un selector de color (por ejemplo, los integrados en los navegadores web) o usar este valor como base para encontrar el valor rgb exacto en el <yourMintedStyle>.pygstlye
archivo (puede encontrarlo en la _minted
carpeta una vez que compile su proyecto.
Luego defina este color en su documento de látex y coloree la palabra deseada mediante caracteres de escape en el entorno acuñado. Aquí hay un ejemplo mínimo del trac
estilo de 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}