Seite 1 von 1

Supertabular, Text macht Seitenumbruch, Quellcode mach keins

Verfasst: Mi 16. Okt 2013, 17:11
von wri8ter
Hey zusammen,

ich habe eine Frage, habe nun supertabular verwendet um ein zu große Datei
über die zweite Seite hinaus zu schreiben. Dieses funktioniert auch bei Text aber sobald ich statt Text lstlistings eintrage, geht der Compiler nur bis zu ersten Seite und schiebt den Rest Quellcode in den unteren Rand hinein.
Warum macht er das ? Habe ich da etwas bei supertabular nicht beachtet ?

Hier wie es funktioniert mit Text :
\tablehead{\hline \\} 
\tabletail{ \\ \hline}
\tablelasttail{\newpage} 
\begin{supertabular}{|p{16cm}|} 
Verwendung der \textbf{\texttt{post}}- Methode, \textbf{Grund} : Formulardaten werden nicht in der Addresszeile angezeigt (Sicherheitsaspekt). 
Weiterleitung zur \texttt{conector.php} Datei. Diese erschafft eine Verbindug zur Datenbank \texttt{supplier}. Bei der Weiterleitung werden aus den
den Textboxen der \glqq loginName\grqq~ und \glqq passwordErk\grqq~ mit übergeben. Diese Eingaben können leer oder gefüllt sein.
 \\ \hline \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
   Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
Hallo \\
\end{supertabular}
So wie es haben will, statt Text einfach nur Quellcode :
\tablehead{\hline \\} 
\tabletail{ \\ \hline}
\tablelasttail{\newpage} 
\begin{supertabular}{|p{16cm}|} 
Verwendung der \textbf{\texttt{post}}- Methode, \textbf{Grund} : Formulardaten werden nicht in der Addresszeile angezeigt (Sicherheitsaspekt). 
Weiterleitung zur \texttt{conector.php} Datei. Diese erschafft eine Verbindug zur Datenbank \texttt{supplier}. Bei der Weiterleitung werden aus den
den Textboxen der \glqq loginName\grqq~ und \glqq passwordErk\grqq~ mit übergeben. Diese Eingaben können leer oder gefüllt sein.
 \\ \hline \\
 \begin{lstlisting}[language=php]
    <?php
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
    \end{lstlisting} \\
\end{supertabular}
Was mache ich bei lstlisting falsch ????

lg writ8er[/code]

Verfasst: Mi 16. Okt 2013, 17:21
von Johannes_B
Es wäre für uns hilfreicher, wenn du ein lauffähiges Minimalbeispiel erstellt und uns somit sofort etwas zum Testen gibst. sudo hat dich bereits im anderen Thread darauf hingewiesen.

Schau dir zusätzlich bitte auch Wie kann ich bestimmte Dinge hervorheben? an.

Verfasst: Mi 16. Okt 2013, 17:45
von esdd
In deinem Code mit Text steht jedes Hallo in einer eigenen Tabellenzeile während das listings in einer einzigen Tabellenzeile untergebracht wird. Zwischen Tabellenzeilen wird umgebrochen.
Innerhalb von Tabellenzeilen erfolgt dagegen kein Seitenumbruch. Auch nicht bei nur Text, wie du dich hier überzeugen kannst:
\documentclass{scrartcl}
\usepackage{supertabular}

\usepackage{blindtext}

\begin{document}
\tablehead{\hline \\} 
\tabletail{ \\ \hline} 
\tablelasttail{\newpage} 
\begin{supertabular}{|p{16cm}|} 
  Kopfzeile
  \\ \hline \\ 
  \blindtext[10]
\end{supertabular} 

\end{document}
Wenn du es nicht glaubst, dann ersetze \blindtext[10] durch einen von Hand eingegebenen Text, aber ohne dabei eine neue Tabellenzeile mittels \\ oder \tabularnewline einzufügen.

Was auch immer du tun möchtest, das listing in eine Tabellenzelle zu packen, wird sicher nicht der richtige Weg sein.

Gruß
Elke

Verfasst: Mi 16. Okt 2013, 18:05
von wri8ter
Huhu Elke, ja erstmal vorab Danke für die Info

Auf Wunsch habe ich mal etwas kompilierbaers...dort sieht man den Quelltext
in der Zelle, allerdings wird dieser nicht umgebrochen.
\documentclass[a4paper,12pt]{article}% Entwicklungsstand Mai 2013
\usepackage[ngerman]{babel}
\usepackage{picins,graphicx}
\usepackage{color,xcolor}
\usepackage[utf8]{inputenc} %utf8 für neue Linux Distrubtionen
\usepackage[T1]{fontenc}
\usepackage{textcomp} %ermöglicht zusätzliche Zeichen
\usepackage{fancyhdr}
\usepackage{amsmath,amsfonts,amssymb}
\usepackage{wasysym}
\usepackage{wrapfig}
\usepackage{times}
\usepackage{epsfig,ifthen}
\usepackage{eurosym}
\usepackage{calc,vector}
\usepackage{enumerate,pdflscape}
\usepackage[colorlinks=true,linkcolor=black]{hyperref} % Inhaltsverzeichnis keine rote Umrandung
% color definition for php
\definecolor{dkgreen}{rgb}{0,.6,0}
\definecolor{dkblue}{rgb}{0,0,.6}
\definecolor{dkyellow}{cmyk}{0,0,.8,.3}
\definecolor{lgGray}{gray}{.93}
\definecolor{betared}{rgb}{0.64, 0.0, 0.0}

%*******************************************************************************************************
%neue packages 
\usepackage{tabularx}   %Erweiterung von tabular, erzwingt zeilenumbruch in der Tabele um die breite der Tabele zu beschrenken
\usepackage{listings}      %Quellcode einbinden (verschiene Programmiersprachen m�glich)
\usepackage{hyperref}  %url einbinden und Lesezeichen in der PDF möglich
\usepackage{subfigure}  %unter Bilder einfögen (Erm�glich Bilder nebeneinander zu setzen)
\usepackage{pdfpages}  %Einbinden von PDFs
\usepackage{lscape}
\usepackage{textcomp}
\usepackage{pifont}
\usepackage{exscale}
\usepackage{varioref}
\usepackage[labelfont={sf,bf},justification=centerlast]{caption}
\usepackage{eso-pic}
\usepackage{anysize}
\usepackage{supertabular}
\usepackage{longtable}
\pagestyle{fancy} % Packet für Seitenlayout... damit kann z.B Fuß bzw. Kopfzeile eingestellt werden(fany = eigener Seitenstil)
\usepackage{float}
\restylefloat{figure}
\begin{document}
\rhead{\thepage}
\rfoot{}
\cfoot{}
\renewcommand{\thepage}{\Roman{page}}

%	PHP-Syntax-Options      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\lstset{
  language        = php,
  basicstyle      = \small\ttfamily,
  keywordstyle    = \color{black},
  stringstyle     = \color{dkgreen},
  identifierstyle = \color{betared},
  commentstyle    = \color{gray},
  breaklines	  =true,
  xleftmargin	  = 25pt,
  backgroundcolor =\color{lgGray}, 
  numbers	  =left,
  numberstyle	  =\small\color{gray},
  emph            =[1]{php},
  emphstyle       =[1]\color{black},
  emph            =[2]{if,and,or,else,switch,function,while,&&,||},
  emphstyle       =[2]\color{black}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\tablehead{\\} 
\tabletail{\hline }
\tablelasttail{\hline}
%\tablelasttail{\newpage} 
\begin{supertabular}{|p{16cm}|} 
Verwendung der \textbf{\texttt{post}}- Methode, \textbf{Grund} : Formulardaten werden nicht in der Addresszeile angezeigt (Sicherheitsaspekt). 
Weiterleitung zur \texttt{conector.php} Datei. Diese erschafft eine Verbindug zur Datenbank \texttt{supplier}. Bei der Weiterleitung werden aus den
den Textboxen der \glqq loginName\grqq~ und \glqq passwordErk\grqq~ mit übergeben. Diese Eingaben können leer oder gefüllt sein.
 \\ \hline \\
 \begin{lstlisting}[language=php]
    <?php
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];
$chPassword = $_POST['passwordErk'];
#Ueberpruefung der Datenbank ob dieser User vorhanden ist ??
# Wenn Ja komme zur LieferantenKatalog oder MitarbeiterKatalog (Auswertung)
# ! Wenn nein , dann wieder zurueck zum Login mit Anmerkung !
# Tabellen Selektion und Auswertung
# Verbindung zur MySQL Datenbank supplier
# inkludierte Datenbank Verbindung 
include("DB_Connect/dbconnect.php");
#Uebergabe der Formulardaten (am besten verschluesselt)
$strLoginName = $_POST['loginName'];  
$strLoginName = $_POST['loginName']; $\hookleftarrow$ 
$strLoginName = $_POST['loginName']; $\hookleftarrow$ 
$strLoginName = $_POST['loginName']; $\hookleftarrow$ 
$strLoginName = $_POST['loginName']; $\hookleftarrow$ 
$strLoginName = $_POST['loginName']; $\hookleftarrow$ 
$strLoginName = $_POST['loginName']; $\hookleftarrow$ 
    \end{lstlisting} \\

\end{supertabular}



\end{document}
Ja ich habe gehört das man für Quellcode auch extra ein Rahmen anlegen kann, ich will aber folgendes Muster haben :

|--------------------------|
| Fachtext |
----------------------------
| PHP Code |
| |
| |
/////////////////////////////////// erste Seite zu Ende, weiter auf 2 Seite
| |
| |
| |
| |
-----------------------------
| Bilddatei |
| |
-----------------------------

=> So will ich das realisieren, also eine Tabelle die Seitenumbrüche erlaubt in der ersten Zeile kommt Text, in der zweiten PHP Code
und in der letzen eine Bilddatei...

kann ich das so realisieren oder muss ich da einen anderen Weg einschalgen ??

lg

Verfasst: Mi 16. Okt 2013, 18:14
von Johannes_B
Wie Elke bereits schrieb, dein Listing besteht für LaTeX aus nur einer einzigen Zeile und kann diese entsprechend auch nicht umbrechen.
Warum packst du das überhaupt in eine Tabelle?

Irgendwie hab ich das Gefühl, dass dich mdframed interessieren könnte.

Dein Minimalbeispiel ist übrigens nicht minimal.