Seite 1 von 1

Zeilenumbruch in C Kommentar

Verfasst: Do 5. Apr 2018, 19:50
von Pinguin889
Hallo,

ich versuche mit \lstinputlisting C Code aus Dateien im Dokument einzubinden.
Das funktioniert auch soweit ganz gut. Das Problem ist, dass lange Zeilen in Kommentaren nicht automatisch umgebrochen werden, wenn diese aus nur einem Zeichen bestehen wie z.B. ******...

Bei meiner Suche im Internet bin ich auf \seqsplit gestoßen. Außerhalb des Listings funktioniert das wie gewünscht.
\documentclass[a4paper,english,headsepline]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{babel}
\usepackage{listings}
\usepackage{seqsplit}

\lstset{breaklines=true}
\lstset{numbers=left, numberstyle=\scriptsize}
\lstset{frame=single}
\lstset{literate=
	{á}{{\'a}}1 {é}{{\'e}}1 {í}{{\'i}}1 {ó}{{\'o}}1 {ú}{{\'u}}1
	{Á}{{\'A}}1 {É}{{\'E}}1 {Í}{{\'I}}1 {Ó}{{\'O}}1 {Ú}{{\'U}}1
	{à}{{\`a}}1 {è}{{\`e}}1 {ì}{{\`i}}1 {ò}{{\`o}}1 {ù}{{\`u}}1
	{À}{{\`A}}1 {È}{{\'E}}1 {Ì}{{\`I}}1 {Ò}{{\`O}}1 {Ù}{{\`U}}1
	{ä}{{\"a}}1 {ë}{{\"e}}1 {ï}{{\"i}}1 {ö}{{\"o}}1 {ü}{{\"u}}1
	{Ä}{{\"A}}1 {Ë}{{\"E}}1 {Ï}{{\"I}}1 {Ö}{{\"O}}1 {Ü}{{\"U}}1
	{â}{{\^a}}1 {ê}{{\^e}}1 {î}{{\^i}}1 {ô}{{\^o}}1 {û}{{\^u}}1
	{Â}{{\^A}}1 {Ê}{{\^E}}1 {Î}{{\^I}}1 {Ô}{{\^O}}1 {Û}{{\^U}}1
	{œ}{{\oe}}1 {Œ}{{\OE}}1 {æ}{{\ae}}1 {Æ}{{\AE}}1 {ß}{{\ss}}1
	{ű}{{\H{u}}}1 {Ű}{{\H{U}}}1 {ő}{{\H{o}}}1 {Ő}{{\H{O}}}1
	{ç}{{\c c}}1 {Ç}{{\c C}}1 {ø}{{\o}}1 {å}{{\r a}}1 {Å}{{\r A}}1
	{€}{{\euro}}1 {£}{{\pounds}}1 {«}{{\guillemotleft}}1
	{»}{{\guillemotright}}1 {ñ}{{\~n}}1 {Ñ}{{\~N}}1 {¿}{{?`}}1
}
\begin{document}

\lstinputlisting[breakatwhitespace=false, frame=tblr, captionpos=b, breaklines=true, caption={Code to take new images till the brightness is almost equivalent}, label={brightness check},language=C]{test.c}

 \seqsplit{************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************}
\end{document}






Mein Dummy C Code sieht so aus:
#include "bla.h"

/************************************************************************************************************************************
 * fgdfd
 * dfg
 * sdfg
 * dfs
 * gds
 * fg
 * sdf
 * g
 * Test mit ÜÖÄ
 * ds
 * fg
 ************************************************************************************************************************************/
void main(void)
{
	int l = 0;
}
Wie kann ich eine ähnliche Funktionalität im Listing erreichen?

So sieht das Dokument aus:
Bild

Anderes Paket verwenden

Verfasst: Fr 6. Apr 2018, 10:40
von Stamm-
Eine Lösung mit »listings« kann ich auch nach mehreren Versuchen nicht liefern. Ich selbst bevorzuge »minted« nicht zuletzt wegen seines ausgefeilteren Umgangs mit Unicde. Das braucht allerdings »Python« und »Pygments«. Ähnliche Voraussetzungen benötigen auch »texments« und »verbments«.
\documentclass[parskip=half,english]{scrreprt}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}

\usepackage[chapter]{minted}
\setminted{
  autogobble,
  breaklines=true,
  breakanywhere,
  frame=single,
  linenos,
  numbersep=6pt
}

\usepackage{lmodern}
\usepackage{microtype}

\usepackage{filecontents}
\begin{filecontents*}{test.c}
#include "bla.h"

/************************************************************************************************************************************
 * fgdfd
 * dfg
 * sdfg
 * dfs
 * gds
 * fg
 * sdf
 * g
 * Test mit ÜÖÄ
 * ds
 * fg
************************************************************************************************************************************/
void main(void)
{
   int l = 0;
}
\end{filecontents*}

\begin{document}
  \begin{listing}[!htb]
    \inputminted{c}{test.c}
    \caption{Code to take new images till the brightness is almost equivalent}
    \label{lsr:brightness-check}
  \end{listing}
\end{document}
Für Listings gibt es noch viel weitere Pakete. Einige davon sind allerdings auf bestimmte Sprachen und Formate spezialisiert.