Scissor LaTeX의 listings 패키지
Scissor LaTeX에서 listings 패키지는 일부 작동합니다. lstlisting은 코드를 입력한 그대로 유지하고, 환경에 language=를 주면 색을 칠하며, \lstinline도 작동합니다. \lstset, 줄 번호, 테두리, 캡션, 레이블은 무시되고, \lstinputlisting은 건너뜁니다.
패키지가 하는 일
listings는 소스 코드를 조판합니다. lstlisting 환경은 줄바꿈과 공백을 유지하며, language=Python(또는 C, Java, SQL ...)을 주면 키워드, 주석, 문자열을 서로 다른 스타일로 조판합니다. 옵션으로 줄 번호, 테두리, 캡션, 색을 추가하며, 목록마다 지정하거나 \lstset으로 문서 전체에 지정합니다. \lstinline은 본문 안에서 쓰는 형태이고, \lstinputlisting은 파일에서 코드를 읽습니다.
여기서 작동하는 것
| 기능 | Scissor LaTeX에서 | 비고 |
|---|---|---|
\begin{lstlisting} ... \end{lstlisting} | 작동 | 고정폭, 입력한 그대로. |
환경에 쓴 [language=Python] | 작동 | 정해진 배색의 구문 강조. |
[language={[Sharp]C}] 및 기타 방언 | 작동 | 대괄호 안의 방언도 이름과 함께 읽습니다. |
\lstinline|code|, \lstinline{code} | 작동 | 색 없는 고정폭. |
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolor | 생략 | 메시지 없이 무시됩니다. |
caption=, label= | 생략 | 캡션이 출력되지 않으며, 레이블에 대한 \ref는 "??"로 표시됩니다. |
\lstset{...}, \lstdefinestyle, style= | 생략 | 그곳에 지정한 language=까지 무시됩니다. |
\lstinputlisting{file} | 지원 안 됨 | 메시지를 남기고 건너뜁니다. |
\lstlistoflistings, \lstnewenvironment | 지원 안 됨 | 메시지를 남기고 건너뜁니다. |
언어 이름은 대소문자를 구분하지 않습니다. Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML, TeX 같은 흔한 언어에 색이 지원됩니다. Fortran처럼 인식되지 않는 이름은 메시지 없이 색 없는 고정폭 코드가 됩니다.
예제
목록마다 언어를 지정하세요.
language=Python을 쓴 lstlisting
\begin{lstlisting}[language=Python]
def mean(values):
# average of a list of numbers
return sum(values) / len(values)
print(mean([40, 44, 48]))
\end{lstlisting}\lstset으로 지정한 언어는 쓰이지 않으므로 이 목록에는 색이 없습니다. numbers와 frame 같은 배치 옵션도 무시됩니다.
\lstset은 무시됨
\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}\lstinline으로 쓰는 본문 안 코드는 \verb처럼 어떤 구분 문자든 받습니다.
문장 안의 \lstinline
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.figure 안에 넣은 캡션 있는 목록
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.호환성
- TeX 설치 환경에서 여기로: 모든
lstlisting의 코드가 표시됩니다. 색을 보려면\lstset의language=를 각 목록으로 옮기고,\lstinputlisting파일의 코드는 문서에 붙여 넣으세요. - 여기서 TeX 설치 환경으로: 문서는 그곳에서 수정 없이 컴파일되며, 그때 옵션이 적용됩니다.
전체 설명서는 CTAN에 있습니다: ctan.org/pkg/listings. LaTeX의 코드 목록과 minted도 참고하세요.
질문과 답변
코드 목록에 색이 없는 이유는 무엇인가요?
아마 언어를 \lstset으로 지정했기 때문일 것입니다. 여기서는 이것이 무시됩니다. \begin{lstlisting} 뒤에 [language=Python](또는 사용하는 언어)을 쓰세요.
줄 번호를 표시할 수 있나요?
아직은 안 됩니다. numbers=left는 받아들여지지만 무시됩니다.
이 페이지의 모든 예제는 사이트를 빌드할 때 Scissor LaTeX로 조판됩니다. 마지막 업데이트: 2026-11-07