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 は強調表示されないことです。

Minted の JavaScript に ObjectId をキーワードとして追加するにはどうすればよいですか?

答え1

に関してminted、答えは:pygmentizeのJavaScriptレキサーの拡張機能を書くか、レキサーのコピーを変更する必要があります。質問の回答を参照してください。Minted で認識されるカスタム C++ キーワードを追加するにはどうすればよいですか?詳細については。

を使用する必要がない場合は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

ハイライトが必要なのは 1 つの単語だけであり、簡単な解決策が見つからなかった (また、ハイライト全体を書き直したくなかった) ため、次のような (恥ずかしい) 汚い回避策を思いつきました。

まず、ハイライト表示に必要な RGB カラーを特定します。カラー ピッカー (Web ブラウザーに組み込まれているものなど) を使用して取得するか、この値を基にしてファイル内の正確な 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}

出力

関連情報