Como fazer referência cruzada a lstnewenvironments?

Como fazer referência cruzada a lstnewenvironments?

Eu fiz um lstnewenvironmentno meu documento. Não consigo fazer referência cruzada.

Aqui está o código

\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}
}{}

Veja como eu usei.

\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}

Quero referenciá-lo e deve aparecer como "Listagem 1" sendo 1 a referência, tentei várias coisas que incluem procurar no google, tentar colocar esse código em outro ambiente e depois usar \label mas depois meu rótulo continua com o rótulo anterior, ou seja, mostra 4.2 no documento em vez de 1. Por favor, ajude

Responder1

Eu usaria o listingpacote em vez de fazer as coisas manualmente.

\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}

Você pode personalizar a aparência da legenda com o captionpacote.

insira a descrição da imagem aqui

informação relacionada