
我使用 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 作為關鍵字加入 minted 中的 javascript ?
答案1
關於minted
,答案是:您必須為 pygmentize 的 JavaScript 詞法分析器編寫擴充功能或修改詞法分析器的副本。查看問題的答案如何新增自訂 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}