我对 LaTeX 还很陌生,所以请大家稍微耐心一点。
所以我的问题如下:
我得到了一些文本,我想引用下一行显示的一点代码。
我迄今为止尝试过的:
变体 1:
当看到结尾时~\ref{lst:product_xml}
,这三个属性被定义。
\lstinputlisting
[caption={Übergeordneter Knoten Product}
\label{lst:product_xml},
firstline=2, lastline=2,
language=XML]
{code/product_xml.xml}
输出看起来不错,但有一个例外,Quellcodausschnitt 后面的数字是错误的
晚会第 2 部分
但标题说
代码 4.1:Übergeordneter Knoten 产品
变体 2
\lstinputlisting
[caption={Übergeordneter Knoten Product}
label={lst:product_xml},
firstline=2, lastline=2,
language=XML]{code/product_xml.xml}
我找到这里
结果是:
什么时候发生?
我不想用
\begin{lstlisting}
Put your code here.
\end{lstlisting}
因为我想从该文件加载更多行。所以解决方案这里对我来说不是一个选择
完整文件:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{color}
\usepackage[savemem]{listings}
\lstloadlanguages{TeX}
\renewcommand{\lstlistingname}{Code}
\definecolor{lbcolor}{rgb}{0.85,0.85,0.85}
\lstset{language=[LaTeX]TeX,
numbers=left,
stepnumber=1,
numbersep=5pt,
numberstyle=\tiny,
breaklines=true,
captionpos=b,
breakautoindent=true,
postbreak=\space,
tabsize=2,
basicstyle=\ttfamily\footnotesize,
showspaces=false,
showstringspaces=false,
extendedchars=true,
backgroundcolor=\color{lbcolor}}
\definecolor{maroon}{rgb}{0.5,0,0}
\definecolor{darkgreen}{rgb}{0,0.5,0}
\lstdefinelanguage{XML}
{
basicstyle=\ttfamily,
morestring=[s]{"}{"},
morecomment=[s]{?}{?},
morecomment=[s]{!--}{--},
commentstyle=\color{darkgreen},
moredelim=[s][\color{black}]{>}{<},
moredelim=[s][\color{red}]{\ }{=},
stringstyle=\color{blue},
identifierstyle=\color{maroon}
}
\begin{document}
% \lstlistoflistings
Im Quellcodausschnitt~\ref{lst:product_xml} ist zu sehen, dass drei Attribute definiert wurden
\lstinputlisting
[caption={Übergeordneter Knoten Product} %!!!! i did a great mistakte here i forgot to set a comma at the end of the line
label={lst:product_xml},
firstline=2, lastline=2,
language=XML]{product_xml.xml}
\end{document}
有什么办法可以解决这个问题,或者我做错了什么?
答案1
这是有效的:编译两次并且引用正确显示。
使用命令label=
的键\lstinputlisting
来提供标签名称,而不是类似的东西\caption...\label
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{listings}
\begin{document}
Im Quellcodausschnitt~\ref{lst:product_xml} ist zu sehen, dass drei Attribute definiert wurden
\lstinputlisting[caption={Übergeordneter Knoten Product},
label={lst:product_xml},
%firstline=2, lastline=2,
language=C]
{helloworld.c}
% {code/product_xml.xml}
\end{document}
以及helloworld.c
文件:
#include<stdio.h>
int main(int argc,char **argv)
{
printf("Hello World!\n");
return(0);
}