PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Operatoren im Listing



Mat
18-02-2012, 10:18
Hallo,

ich möchte C/C++ code in einem listing texen.
Ich habe unten ein Minimalbeispiel so wie ich es versuche. Leider sind Operatoren wie der shift >> oder der pointer -> ziemlich unschön dargestellt und machen das sehr unleserlich.
Gibt es eine Alternative diese zu texen so dass solche Operatoren schöner dargestellt werden?



\documentclass{scrartcl}

\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{color}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{mathrsfs}
\usepackage{listings}

\usepackage{amsthm}

\usepackage{listings}
\lstset{
language=C++,
basicstyle=\small\sffamily,
numbers=left,
numberstyle=\scriptsize,
frame=tb,
columns=fullflexible,
showstringspaces=false,
belowcaptionskip=0.3cm
}


\begin{document}

\begin{lstlisting}[caption=todo,label=lst:lst1]
idx = buf[idx];
pos = x >> 8;
int* b = c->d;
\end{lstlisting}
\end{document}

nixversteh
18-02-2012, 11:08
Hallo,

ich möchte C/C++ code in einem listing texen.
Ich habe unten ein Minimalbeispiel so wie ich es versuche. Leider sind Operatoren wie der shift >> oder der pointer -> ziemlich unschön dargestellt und machen das sehr unleserlich.
Gibt es eine Alternative diese zu texen so dass solche Operatoren schöner dargestellt werden?



\documentclass{scrartcl}

\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{color}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{mathrsfs}
\usepackage{listings}

\usepackage{amsthm}

\usepackage{listings}
\lstset{
language=C++,
basicstyle=\small\sffamily,
numbers=left,
numberstyle=\scriptsize,
frame=tb,
columns=fullflexible,
showstringspaces=false,
belowcaptionskip=0.3cm
}


\begin{document}

\begin{lstlisting}[caption=todo,label=lst:lst1]
idx = buf[idx];
pos = x >> 8;
int* b = c->d;
\end{lstlisting}
\end{document}



Hallo Mat,

versuche mal diesen Code, kannst die nicht gewünschten Zeilen auskommentieren.


\documentclass{scrartcl}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{color}
\usepackage{rotating}
\usepackage{longtable}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage{mathrsfs}
\usepackage{listings}
\usepackage{amsthm}
\usepackage{listings}
%**********************************************
% color
%**********************************************
\usepackage[usenames,dvipsnames]{xcolor}
%**********************************************
\lstset{language=C++,
keywordstyle=\color{RoyalBlue},%\bfseries,
basicstyle=\small\ttfamily,
identifierstyle=\color{NavyBlue},
commentstyle=\color{Green}\ttfamily,
stringstyle=\rmfamily,
numbers=left,%none,%
numberstyle=\scriptsize,%\tiny
stepnumber=5,
numbersep=8pt,
showstringspaces=false,
breaklines=true,
frameround=ftff,
frame=tb, % single
belowcaptionskip=.75\baselineskip,
numberbychapter=false,
frame=L,
columns=fullflexible,
showstringspaces=false,
belowcaptionskip=0.3cm
}

\begin{document}

\begin{lstlisting}[caption=todo,label=lst:lst1]
idx = buf[idx];
pos = x >> 8;
int* b = c->d;
\end{lstlisting}
\end{document}

Viel Erfolg

Lieben Gruß

Martin

Mat
18-02-2012, 12:52
puh also erstmal danke. damit kann man schön spielen. leider habe ich es bis jetzt nicht geschafft mein style beizubehalten und nur die operatoren (->, <<, <=) schöner darzustellen, gäbe es da eine möglichkeit?

hakaze
18-02-2012, 13:00
Was definierst du als "schöner"? ;)

BTW: du lädt 2mal das Paket listings, und haufenweise anderes Zeug, das bis auf (x)color keinen Einfluss auf listings hat.

Mat
18-02-2012, 14:41
also der vorschlag von "nixversteh" gefällt mir gut. ginge es die operatoren nur so darzustellen wie nixversteh aber den rest beizubehalten den ich habe?

nixversteh
18-02-2012, 16:54
also der vorschlag von "nixversteh" gefällt mir gut. ginge es die operatoren nur so darzustellen wie nixversteh aber den rest beizubehalten den ich habe?

Hallo Mat,

etwa so?
\documentclass{scrartcl}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{listings}
\lstset{language=C++,
keywordstyle=\color{RoyalBlue},%\bfseries,
basicstyle=\small\ttfamily,
numbers=left,%none,%
numberstyle=\scriptsize,%\tiny
frame=tb, % single
columns=fullflexible,
showstringspaces=false,
belowcaptionskip=0.3cm
%%identifierstyle=\color{NavyBlue},
%%commentstyle=\color{Green}\ttfamily,
%stringstyle=\rmfamily,
%%stepnumber=5,
%%showstringspaces=false,
%%frameround=ftff,
%%belowcaptionskip=.75\baselineskip,
%%numberbychapter=false,
%%frame=L,
%%breaklines=true,
%%numbersep=8pt,
}
\begin{document}
\begin{lstlisting}[caption=todo,label=lst:lst1]
idx = buf[idx];
pos = x >> 8;
int* b = c->d;
\end{lstlisting}
\end{document}

Viel Erfolg

Gruß

Martin

EDIT: Schau mal diesen Code an: M-code LaTeX Package

Mat
18-02-2012, 18:19
Danke Dir, ich denke ich werde eine Kombination aus Deiner Version und der Matlab version probieren :-)
Danke für die Hilfe!