minted 언어에 키워드 추가

minted 언어에 키워드 추가

나는 일부 자바스크립트 코드를 강조하기 위해 minted를 사용합니다.

나는 사용한다

\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

한 단어에만 강조 표시가 필요하고 빠른 해결책을 찾을 수 없었기 때문에(그리고 전체 강조 표시를 다시 작성하고 싶지 않았기 때문에) 다음과 같은 (부끄럽게도) 더러운 해결 방법을 생각해 냈습니다.

먼저 강조 표시에 필요한 RGB 색상을 식별합니다. 색상 선택기(예: 웹 브라우저에 내장된 색상 선택기)를 통해 이를 얻거나 이 값을 기초로 사용하여 파일에서 정확한 rgb 값을 찾을 수 있습니다 ( 프로젝트를 컴파일한 후 폴더 <yourMintedStyle>.pygstlye에서 찾을 수 있습니다 ._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}

산출

관련 정보