lstnewenvironment
내 문서에 을 만들었습니다 . 나는 그것을 상호 참조할 수 없습니다.
코드는 다음과 같습니다.
\lstnewenvironment{customlistings}[3]{
\lstset{
numbers=left,
language=#3,
breaklines=true ,
keywordstyle=\color{blue}\bfseries ,
numberstyle=\tiny\color{gray} ,
commentstyle=\color{green!30!black},
stringstyle = \color{violet},
morekeywords={\begin, \label, \documentclass
, \usepackage, \caption},
label=#2
}
\refstepcounter{counterA}
\begin{center}
\textbf{\large{Listing \thecounterA: #1}} \\
\textbf{\normalsize{#2}}
\end{center}
}{}
내가 사용한 방법은 다음과 같습니다.
\begin{customlistings}{[LaTeX]TeX}{The listings package}{TeX}
\begin{lstlisting}
%Your code goes here
%This is usually how you present code in \LaTex, without worrying about accidentally ..
\end{lstlisting}
\label{trickq}
\end{customlistings}
참조하고 싶고 1이 참조인 "목록 1"로 표시되어야 합니다. Google에서 검색하고 이 코드를 다른 환경에 넣은 다음 \label을 사용하고 내 레이블을 사용하는 등 많은 작업을 시도했습니다. 이전 라벨에서 계속됩니다. 즉, 문서에 1 대신 4.2가 표시됩니다. 도와주세요.
답변1
listing
수동으로 작업을 수행하는 대신 패키지를 사용합니다 .
\documentclass{article}
\usepackage{listings,listing}
\usepackage{xcolor}
\lstnewenvironment{customlisting}[2][]
{\lstset{
basicstyle=\ttfamily,
columns=fullflexible,
numbers=left,
language=#2,
breaklines=true,
keywordstyle=\color{blue}\bfseries,
numberstyle=\tiny\color{gray},
commentstyle=\color{green!30!black},
stringstyle = \color{violet},
morekeywords={\begin, \label, \documentclass, \usepackage, \caption},
#1,
}%
}{}
\begin{document}
\begin{listing}
\begin{customlisting}{[LaTeX]TeX}
%Your code goes here
%This is usually how you present code in \LaTex, without worrying about accidentally ..
\end{customlisting}
\caption{The listing package}\label{TeX}
\end{listing}
\ref{TeX} is a listing
\end{document}
패키지 를 사용하여 캡션의 모양을 사용자 정의할 수 있습니다 caption
.