목록에서는 사용하지 말아야 할 곳에 키워드를 적용합니다.

목록에서는 사용하지 말아야 할 곳에 키워드를 적용합니다.

LaTeX 파일 내에 Python 코드를 구현하고 싶습니다. 최소한의 예는 다음과 같습니다

\documentclass[12pt]{report}

\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\begin{document}
\newcommand\pythonstyle{\lstset{
language=Python,
basicstyle=\scriptsize,
backgroundcolor=\color{lightgray},
otherkeywords={self,with,as},
keywordstyle=\color{NavyBlue},
commentstyle=\color{OliveGreen},
emph={MyClass,__init__,In,Out},
emphstyle=\color{red}
showstringspaces=false,
}}

{\pythonstyle\begin{lstlisting}
# with my current listing, this is not working as inteded

import pandas as pd

data = pd.DataFrame()
\end{lstlisting}}


\end{document}

다음 출력 생성

텍스트 파일 출력

키워드 스타일이 전체 단어에만 적용되고 일부 단어 내부에서도 tex가 찾은 모든 사례에 적용되지 않도록 하려면 어떻게 해야 합니까?

답변1

대안으로: minted필요한 것만 강조하는 데 꽤 효과적입니다.

주조된 예

% arara: pdflatex: {shell: yes}
\documentclass[12pt]{report}

\usepackage{minted}
\usepackage[svgnames]{xcolor}

\usemintedstyle{vs}
\setminted{bgcolor=GhostWhite!90!gray}

\begin{document}

\begin{minted}{python}
# with my current listing, this is not working as inteded

import pandas as pd

data = pd.DataFrame()
\end{minted}


\end{document}

답변2

목록 문서를 자세히 살펴보면 내가 잘못된 옵션을 사용하고 있음이 드러났습니다. 그것은 말한다, (원천):

[...]

otherkeywords={〈키워드〉}

다른 문자를 포함하거나 숫자로 시작하는 키워드를 정의합니다. 주어진 각각의 '키워드'는 키워드 스타일로 인쇄되지만 문자의 '문자', '숫자' 및 '기타' 상태는 변경되지 않습니다. 이 키는 =>,->,-->,--,:: 등과 같은 키워드를 정의하도록 설계되었습니다. 한 키워드가 다른 키워드의 하위 시퀀스(like--and-->)인 경우 더 짧은 키워드를 먼저 지정해야 합니다.

[...]

적절한 옵션은 이었습니다 morekeywords. morekeywords대신 을 사용하면 otherkeywords내 문제가 해결되었습니다! @Dr.ManuelKuehner, 이것은 당신에게 흥미로울 것입니다! @TeXnician, 대체 솔루션을 제공해 주셔서 감사합니다!

\documentclass[12pt]{report}

\usepackage{listings}
\usepackage[dvipsnames]{xcolor}

\begin{document}
\newcommand\pythonstyle{\lstset{
language=Python,
basicstyle=\scriptsize,
backgroundcolor=\color{lightgray},
morekeywords={self,with,as},
keywordstyle=\color{NavyBlue},
commentstyle=\color{OliveGreen},
emph={MyClass,__init__,In,Out},
emphstyle=\color{red}
showstringspaces=false,
}}

{\pythonstyle\begin{lstlisting}
# with my current listing, this is not working as inteded

import pandas as pd

data = pd.DataFrame()
\end{lstlisting}}


\end{document}

올바른 결과

다시 한 번 감사드립니다! 최고의 소원

관련 정보