PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lstlisting - Sonderzeichen & Seitenumbruch



lulu
17-08-2010, 08:43
Hallo zusammen,

ich arbeite mit dem lstlisting und habe dabei noch zwei Probleme:

1. Ich würde gerne * im Code verwenden, weiß aber nicht wie...habe schon \* und $\ast$ probiert, funktioniert aber nicht...

2. Wenn während des Listings ein Seitenumbruch erfolgt, dann wird auch das Listing geteilt. Gibt es eine Möglichkeit das Listing dann komplett auf die andere zu verschieben, oder sogar genau zu positionieren (so wie bei Bildern mit [htbp])?

Danke und Gruß

Xenara
17-08-2010, 09:22
Du hast doch in anderen Threads bewiesen, dass du weiss, was ein Minimalbeispiel ist. Wieso enthältst du es uns hier vor?

1. Was ist dein Problem? Das funktioniert, s.u. Mit Minimalbeispiel könnte man das eher nachvollziehen.

2. Probiers mal mit dem Parameter p, oder packs in eine Minipage.



\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings}
\usepackage{blindtext}

\begin{document}

***

\blindtext[4]

\begin{lstlisting}[float=p, caption=Caption]
Sub EI_Daten_aus_Workbooks()
'
****
'
' Messagebox
' Pech gehabt
MsgBox
'
' Lokale Variablen definieren:
Dim Zaehler1 As Integer
Dim Zaehler2 As Integer
Dim Zaehler3 As Integer
Dim Zaehler4 As Integer
Dim Zaehler5 As Integer
'
Dim AnzahlDateien As Integer
'
Dim ZielY As Integer
Dim ZielX As Integer
Dim QuelleY As Integer
Dim QuelleX As Integer
'
'
Dim strZielWorkBook As String
Dim strZielWorkSheet As String
'
\end{lstlisting}
\blindtext[3]


\clearpage

***

\blindtext[4]

\begin{minipage}{\textwidth}
\begin{lstlisting}[caption=Caption]
Sub EI_Daten_aus_Workbooks()
'
****
'
' Messagebox
' Pech gehabt
MsgBox
'
' Lokale Variablen definieren:
Dim Zaehler1 As Integer
Dim Zaehler2 As Integer
Dim Zaehler3 As Integer
Dim Zaehler4 As Integer
Dim Zaehler5 As Integer
'
Dim AnzahlDateien As Integer
'
Dim ZielY As Integer
Dim ZielX As Integer
Dim QuelleY As Integer
Dim QuelleX As Integer
'
'
Dim strZielWorkBook As String
Dim strZielWorkSheet As String
'
\end{lstlisting}
\end{minipage}


\blindtext[3]

\end{document}

lulu
17-08-2010, 10:46
Hallo Xenara,

danke für deine Hilfe. Das Problem mit dem Seitenumbruch hat sich jetzt gelöst.
Aber * kriege ich immer noch nicht hin. Hier mein Minimalbeispiel



\documentclass{scrbook}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[bitstream-charter]{mathdesign}
\usepackage[bw,numbered,framed]{mcode}
\usepackage{listings}



\begin{document}

\lstset{language=Ruby}
\begin{lstlisting}
****
\end{lstlisting}

\lstset{language=Ruby, basicstyle=\scriptsize}
\begin{lstlisting}
****
\end{lstlisting}

\end{document}


Ich vermute, dass es an

\usepackage[bitstream-charter]{mathdesign}
bzw.

basicstyle=\scriptsize
liegt, kann/will aber beides nicht ändern.

Hat jemand noch Lösungsvorschläge?

Xenara
17-08-2010, 10:56
Wozu ist das Paket mcode? Ich habs nicht, daher habe ich es auskommentiert und es lief einwandfrei.

lulu
17-08-2010, 11:51
Das Paket mcode benutze ich, weil ich irgendwo noch Matlab code einbinde. Aber egal, das kann ich weglassen. Mein Problem ist nur, dass ich Zeilennummern einfügen möchte, und das möglichst innerhalb der Box, siehe

\documentclass{scrbook}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{listings}



\begin{document}

\lstset{language=Ruby, numbers=left, numbersep=-10pt}
\begin{lstlisting}[frame=single]
****
\end{lstlisting}

\end{document}
Aber wie kriege ich jetzt den Code verschoben?

Xenara
17-08-2010, 12:34
\documentclass{scrbook}
\usepackage{listings}

\begin{document}

\begin{lstlisting}[%
frame=single,%
language=Ruby,%
numbers=left,%
framexleftmargin=7mm]
****
asfdsadf
\end{lstlisting}

\end{document}