PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : syntax highliting wie in Word



Freak5
20-01-2007, 13:57
Gibt es ein Tool, das Code aus MSVC++ so bearbeitet, dass der Code seine Farbe auch in LaTeX beibehält? Am besten wäre es, wenn sogar Zeilenumbrüche so markiert wären, wie es beim Ausdurcken des Codes passiert. Gibt es da eine Möglichkeit?

daswaldhorn
20-01-2007, 14:02
Hallo,

für Code-Darstellung im allgemeinen bietet sich das listings-Paket an. Ob und wieweit MSVC++ (was ich nicht kenne) klappt, wird dir die Doku zeigen.

Grüße, Carsten

Freak5
20-01-2007, 14:24
Naja, MSVc++ ist der Compiler für C++ von Microsoft.
Das tolle daran ist, dass Kommentare usw. grün markiert werden, so dass man sie einfacher übersehen kann. Ohne Highlithing findet man den Code nämlich nicht wieder, wenn man bestimmte Abschnitte umfangreich dokumentieren muss.

Beim Ausdrucken werden außerdem noch Zeilenumbrüche markiert, damit man sich nicht wundert, wenn ein Kommentar ohne // in einer neuen Zeile beginnt.

Word ist scheinbar darauf ausgelegt kopierten Code mit dieser Formatierung anzunehmen. Es wäre toll, wenn es eine einfache Möglichkeit gäbe, dass LaTex das auch kann.

Aber ich glaube das Killerargument gegen LaTeX ist die Rechtschreibkorrektur.

bischi
20-01-2007, 14:32
Paket listings kann das alles - und zwar mindestens genau so gut (Forensuche, Paketdokumentation,...)!

Und zum Thema Rechtschreibekorrektur: Du meinst doch nicht etwa diesen untauglichen Spellchecker im Word? Das kannst du auch in nahezu jedem LaTeX-Editor haben...

MfG Bischi

Freak5
20-01-2007, 15:04
Und wie? Ich habe sogar den Tipp gehört: LaTeX->PDF->Word->Wordkorrektur
Es gibt Leute, die gehen diesen Weg um die Wordkorrekur zu nutzen.

Und das ist so ziemlich der einzige weg, den man per Google findet. Wie machst du das denn?

bischi
20-01-2007, 15:14
Und wie? Ich habe sogar den Tipp gehört: LaTeX->PDF->Word->Wordkorrektur
Es gibt Leute, die gehen diesen Weg um die Wordkorrekur zu nutzen.

Und das ist so ziemlich der einzige weg, den man per Google findet. Wie machst du das denn?

Kile hat beispielsweise einen eingebauten Spellchecker - Texniccenter ebenfalls...

Und für mehr als allfällige Tippfehler zu finden taugt die "Rechtschreibeprüfung" ja auch nicht... (es sei denn, man will die Word-Synonyme verwenden :D )

MfG Bischi

lupus68
20-01-2007, 15:20
Hallo,
Rechtschreibprüfung ist wenn überhaupt aufgabe des Editors. Ja gute Editoren können sowas einbinden. (Umkehrschluß ist IMHO nicht erlaubt)

Wie machst du das denn?

Ich nutze ispell.

juergen

Freak5
20-01-2007, 15:45
@bishi: Du sagtest doch, dass die Überprüfung der Editoren gleichwertig ist. Warum erkennt TexNiccenter dann noch nicht einmal Postauto oder Blumenvase ???
lupus68:
Kann man ispell irgendwie in bestimmte Editoren für Windows einbinden?

saschabo
20-01-2007, 21:55
Hier mal wie ich den Code gemacht hab, soll auch aussehen wie MS Studio, nur leicht grauer Hintergrund. Aber Kommentarfarbe, StringFarbe, Highlight-Farbe stimmen.


\documentclass[pdftex,a4paper,12pt]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{color} % Package für Farben im PDF
% Farben für die Listings
\definecolor{hellgrau}{gray}{0.9}
\definecolor{meinblau}{rgb}{0.0,0.0,1.0}
\definecolor{meingruen}{rgb}{0.0,0.5,0.0}
\definecolor{meinrosa}{rgb}{0.64, 0.08, 0.08}


% listings
\usepackage{listings}
\lstloadlanguages{c++,}
\lstset{
numbers=left,
stepnumber=1,
numbersep=5pt,
numberstyle=\tiny,
breaklines=true,
breakautoindent=true,
postbreak=\space,
tabsize=2,
basicstyle=\ttfamily\footnotesize,
%basicstyle=\ttfamily\scriptsize,
showspaces=false,
showstringspaces=false,
extendedchars=true,
backgroundcolor=\color{white},
keywordstyle=\color{meinblau},
commentstyle=\color{meingruen},
stringstyle=\color{meinrosa},
frame=Tb
}

\begin{document}

\section{Code Beispiele}
Hier kommt ein Code Beispiel:
\begin{lstlisting}[language=c++, backgroundcolor=\color{hellgrau}]
int main(int argc, char** argv)
{
FILE *coffFile;
unsigned long currSect,nrSect=0;

// Ich bin ein Kommentar
if(argc<2)
usage();
if(!(coffFile=fopen(argv[1],"r")))
{
printf("Error: Ich bin ein String und so lange dass ich die Zeile mit leichtigkeit umbreche %s",argv[1]);
exit(0);
}
\end{lstlisting}


\end{document}

Wegen deinem Umbruch:
das müsste über die Parameter "postbreak" bzw. "prebreak" gehen, je nachdem was du damit meinst. Mir hat es gereicht dass die Zeilennummer ja nicht weiter gezählt wird, außerdem hab ich selten längere Zeilen.

Freak5
21-01-2007, 00:40
Wenn da eine Zeilennummer hinzukommt reicht es. Das Syntaxhighlithing zeigt ja auch noch, dass es sich um einen kommentar handelt.
Aber wenn irgendwo in der Gegend Variablennamen stehen, die eigentlich noch zum vorherigen Zitat gehören, wird es ohne irgendeine zusätzliche farbliche oder ähnliche Markierung unübersichtlich.

Thx für den Code. Um jetzt komplett glücklich mit LaTeX zu werden, muss ich irgendwie noch mein Rechtschreibprüfungsproblem in den Griff bekommen. Momentan suche ich nach einer Möglichkeit in Text, rtf oder HTML-Dateien zu exportieren um die dann mit Word testen zu können.

Eine ordentliche komplett integrierte Variante wäre mir aber lieber. WinShell hat schon eine bessere Prüfung, als TeXnicCenter, aber nicht "on the fly", da kann ich besser Texniccenter verwenden und schaun, wie ich das ordentlich nach Word bekomme.

daswaldhorn
21-01-2007, 09:10
Hallo,

öffne deine *.tex-Dateien direkt in Word, bringe ihm die LaTeX-Befehle bei und schon kann's mit der eigentlichen Prüfung losgehen.

Grüße, Carsten

Ruhrpottrider
28-02-2007, 11:35
Hallo!
Habe den o.g. Code für Visual Studio mal in mein Tex Projekt kopiert. Sieht auch klasse aus, allerdings nur der Beispielcode.
Meine eigenen Listings, die in anderen tex Dateien stecken, welche ich mit

\input{kapitel4}

einbinde, sehen nach wie vor sehr bescheiden aus. Woran liegt das? In der Präambel wird doch alles global definiert, oder ist das bei Lisitngs anders?
Danke im vorraus für eure Hilfe!

Carsten

Ruhrpottrider
28-02-2007, 11:52
Hat sich soeben erlidigt....

Freak5
15-03-2007, 14:55
Du hättest auch schreiben können, was passiert ist.