Codezeile + Kommentar zu lang [listings], Anregungen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Codezeile + Kommentar zu lang [listings], Anregungen

von icecoldkilla » So 14. Feb 2016, 21:11

Beinschuss hat geschrieben:breaklines=true im lstset sollte den Umbruch hinbekommen.
Hey Beinschuss, vielen Dank. Genau das habe ich gesucht. Den Umgebrochenen Text habe ich dann mit Tabulatoren weiter nach hinten geschoben, damit der umgebrochene Kommentar nicht im Quellcode drinnensteht. Gibt es auf Latex bzw. Listings-Seite auch ne Erkennung wo Kommentare im Quellcode sind und wie mit diesem umgegangen wird?

von Beinschuss » Sa 13. Feb 2016, 00:35

breaklines=true im lstset sollte den Umbruch hinbekommen.

von icecoldkilla » Fr 12. Feb 2016, 21:40

PUSH! Jemand eine Idee?

Codezeile + Kommentar zu lang [listings], Anregungen

von icecoldkilla » Mi 10. Feb 2016, 18:22

Hi zusammen,

ich habe jetzt nicht das perfekt passende Unterforum gefunden, also schreibe ich mal hier rein. Wenns nicht passt, bitte verschieben.

Zum Problem:

Ich will C++-Code in mein Latex Dokument einbinden. Als wenn das nicht schon schwer genug wär habe ich nun ein Problem mit dem Design, vielleicht kann mir wer ja Anregungen geben.
Und zwar sind manche Codezeilen lang und/oder der Kommentar zu dieser Zeile ist sehr lang. Auf jeden Fall schaut der "Kommentartext" immer aus dem Codefenster hinaus, teilweise sogar über die Seite. Eine gedrehte Seite hat nur an wenigen Stellen Erfolg gebracht. Ausserdem habe ich nach langem googlen den Text jetzt etwas kleiner gekriegt, trotzdem besteht das Problem noch ab und zu. Was noch nicht optimal ausschaut ist, dass die Kommentare nicht bündig miteinander anfangen. Sicherlich machbar aber hat jetzt mal keine so hohe Priorität.
Lange Rede kurzer Sinn: Wie stelle ich meinen Code am schönsten dar?

Hier noch der LaTeX Code, ich weiß, kein Minimalbeispiel, aber damit lässt sich besser zeigen, was ich meine.
\documentclass[parskip=full]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[autostyle=true,german=quotes]{csquotes}
\usepackage[ngerman]{babel}
\usepackage{lmodern}
\usepackage{listings}
\usepackage{float}
\usepackage{xcolor}
\usepackage{pdflscape}
\usepackage{textcomp}

\begin{document}	
\lstset{language=C++,
                basicstyle=\ttfamily,
                keywordstyle=\color{blue}\ttfamily,
                stringstyle=\color{red}\ttfamily,
                commentstyle=\small\color{teal}\ttfamily,
                columns=flexible,
                morecomment=[l][\color{magenta}]{\#}
}

\lstset{literate=%
	{Ö}{{\"O}}1
	{Ä}{{\"A}}1
	{Ü}{{\"U}}1
	{ß}{{\ss}}2
	{ü}{{\"u}}1
	{ä}{{\"a}}1
	{ö}{{\"o}}1
	{µ}{{\textmu}}1
}

\begin{landscape}
\begin{lstlisting}[frame=single, backgroundcolor=\color{yellow!10}, numbers=left, tabsize=2]
#include <avr/io.h>
#include <stdlib.h>
#include <math.h>
#define F_CPU 12000000UL
#include <util/delay.h>
#include <avr/interrupt.h>
#define BAUDRATE 57600
#define BAUD_PRESCALLER (((F_CPU / (BAUDRATE * 12UL))) - 1)

void setup();											// Unterfunktion, in der grundlegende Einstellungen vorgenommen werden
void timer_init();										// Interrupts initialisieren (wird nicht verwendet)
void adc_init();										// ADC initialisieren
void USART_init(void);									// USART initialisieren (wird nicht verwendet)
void USART_send( unsigned char data);					// Zeichen ausgeben
void USART_putstring(char* StringPtr);					// String ausgeben
void usart(int output);									// Integer in String umwandeln und ausgeben
void schalten();										// Unterfunktion zur zeitlich richtigen Beschaltung des MOSFETS
void lower_halfwave();									// Unterfunktion für die untere Halbwelle (Nulldurchgang detektieren, MOSFET schalten, steigende Flanke erkennen)
void comparator_init();									// Initialisierung für den Komparator (wird nicht verwendet)
void upper_halfwave();									// Unterfunktion für die obere Halbwelle (Spannungsmaximum finden und auslesen)
int adc();												// Unterfunktion ADC
int timing(double time);								// Unterfunktion zur Berechnung der Schaltzeit
double calculation();									// Unterfunktion zur Berechnung der prozentualen Überschreitung
double percentage_increase;								// Prozentuale Überschreitung des definierten Maximalwertes
double limit = 560;										// hier den Schwellenwert einstellen (512=2,5V), neu: 538
int schaltzeit = 0;										// Schaltzeit des MOSFETS (in µs)
int adc_value = 0;										// Variable für den aktuellen ADC Wert
int highvalue;											// Variable für den aktuellen ADC Maximalwert
int counter = 0;										// Counter für die sichere Erkennung des Spannungsmaximums
\end{lstlisting}
\end{landscape}
\end{document}

Nach oben