在 minted 中將關鍵字新增至語言中

在 minted 中將關鍵字新增至語言中

我使用 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 環境中的轉義字元為所需的單字著色。這是tracgolang 樣式的最小範例:

\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}

輸出

相關內容