Seite 1 von 1

\usepackage{listings} FEHLERMELDUNG

Verfasst: Di 3. Jul 2012, 12:28
von recnice
Hallo, ich möchte gerne einen Python-Code in mein Latex Dokument einfügen mittels dem
Packet "Listings".
Dies führt jedoch zu dieser Fehlermeldung (aus log-File kopiert):
! TeX capacity exceeded, sorry [input stack size=5000].
\lst@IfNextCharsArg #1->\def \lst@tofind
{#1}\lst@IfNextChars \lst@tofind
l.170 else:

If you really absolutely need more capacity,
you can ask a wizard to enlarge me.


Here is how much of TeX's memory you used:
6140 strings out of 495062
80857 string characters out of 1182645
179693 words of memory out of 3000000
9194 multiletter control sequences out of 15000+50000
18227 words of font info for 67 fonts, out of 3000000 for 9000
28 hyphenation exceptions out of 8191
5000i,12n,2491p,548b,1626s stack positions out of 5000i,500n,10000p,200000b,50000s
Output written on fsi.dvi (6 pages, 10540 bytes).
Zu erst habe ich eine tex-Datei, nur mit dem Python-Code erstellt und kompiliert, hat funktioniert. :lol:
Als nächstes, habe ich den Python-Code dann in meine eigentliche Arbeit eingefügt und es gibt Probleme! :cry:
Woran kann das liegen?

\lstset{ 
  language=Python, 
  tabsize=2, 
  showspaces=false, 
  showstringspaces=false,  
  float=[htb], 
  captionpos=b, 
  basicstyle =\scriptsize\rmfamily,
  commentstyle=\itshape\color{Brown},
  keywordstyle = \bfseries\color{blue},
  stringstyle = \color{Fuchsia},  
}
\begin{lstlisting} 

def edit_sif_file(new_sif_file):
    global Elmer_master
  
    with open(Elmer_master,'r') as infile:
        with open(new_sif_file,'w') as outfile:           
            data = infile.readlines()
            for eintrag in data:
                #ändern Output File 
                if "{RESULT_FILE}" in eintrag:
                    change_output(outfile)
        
                #ändern FSI Boundary mit x-Parametrisierung 
                elif "{FSI-BOUNDARY-X}" in eintrag:
                    fsi_bc_number = get_Target_BC(data,eintrag)
                    fsi_bc_paramter_x(fsi_bc_number,outfile)
                    
                    #ändern FSI Boundary mit x-Parametrisierung 
                elif "{FSI-BOUNDARY-Y}" in eintrag:
                    fsi_bc_number = get_Target_BC(data,eintrag)
                    fsi_bc_paramter_y(fsi_bc_number,outfile)	
                    
                    #fügt Restart Solver hinzu	
                elif "{RESTART_FILE}" in eintrag:
                    change_restart(outfile)
                    
                    #NEUE: Plot_File für jede Iteration 
                elif "{FLUID_PLOT}" in eintrag:
                    change_plot(outfile)
                    
                elif "{OUTPUT_FILE}" in eintrag:
                    change_boundary_values_file(outfile)
                
                elif "{OUTPUT_SHEAR}" in eintrag:
                    change_shear_stress(outfile)
                    
                else:
                    outfile.write(eintrag)
        
    return outfile
\end{lstlisting} 
P.S. \usepackage &co stehen in einem anderen File und habe ich absichtlich nicht angegeben

Gruß

Re: \usepackage{listings} FEHLERMELDUNG

Verfasst: Di 3. Jul 2012, 12:32
von bloodworks
recnice hat geschrieben:
P.S. \usepackage &co stehen in einem anderen File und habe ich absichtlich nicht angegeben

Gruß
Warum? Hättest du Lust selbst zu raten wie man deine Codeschnippsel zusammenbaut um den Fehler zu erhalten? Ein komplettes Minimalbeispiel [2] (<-Link )macht es allen einfach und verlangt niemanden eine Glaskugel ab.

Verfasst: Di 3. Jul 2012, 12:40
von recnice
Wenn's hilft :D

Verfasst: Di 3. Jul 2012, 12:43
von bloodworks
Bitte lies die Links die man dir gibt. Das ist KEIN Minimalbeispiel [2].

Verfasst: Di 3. Jul 2012, 12:50
von recnice
ok, da war mir jetzt nicht ganz klar wie das mit den links funktioniet ;-)


Aber Minibieispiel hin oder her:
\documentclass[12pt,a4paper,fleqn,openright,twoside]{report} 
  
\usepackage{listings} 
\usepackage{graphicx} 
\usepackage{color} 
\usepackage[svgnames,table,hyperref]{xcolor}
 

\begin{document} 

% lstlisting Einstellungen   
\lstset{ 
  language=Python, 
  tabsize=2, 
  showspaces=false, 
  showstringspaces=false,  
  float=[htb], 
  captionpos=b, 
  basicstyle =\scriptsize\rmfamily,
  commentstyle=\itshape\color{Brown},
  keywordstyle = \bfseries\color{blue},
  stringstyle = \color{Fuchsia},  
} 
    
%%%%%%%% 
% Linie um die Textbreite darzustellen   
%\noindent\rule{\textwidth}{1mm} 
  

\begin{lstlisting} 
def edit_sif_file(new_sif_file):
    global Elmer_master
  
    with open(Elmer_master,'r') as infile:
        with open(new_sif_file,'w') as outfile:           
            data = infile.readlines()
            for eintrag in data:
                #ändern Output File 
                if "{RESULT_FILE}" in eintrag:
                    change_output(outfile)
        
                #ändern FSI Boundary mit x-Parametrisierung 
                elif "{FSI-BOUNDARY-X}" in eintrag:
                    fsi_bc_number = get_Target_BC(data,eintrag)
                    fsi_bc_paramter_x(fsi_bc_number,outfile)
                    
                    #ändern FSI Boundary mit x-Parametrisierung 
                elif "{FSI-BOUNDARY-Y}" in eintrag:
                    fsi_bc_number = get_Target_BC(data,eintrag)
                    fsi_bc_paramter_y(fsi_bc_number,outfile)	
                    

        
    return outfile
\end{lstlisting} 

\end{document}t}
 
So funktioniert's natülich, wenn ich es nun wie gesagt in meine richtige Arbeit einsetzte
funtioniert's hat nicht mehr.......

Verfasst: Di 3. Jul 2012, 12:59
von bloodworks
recnice hat geschrieben:
So funktioniert's natülich, wenn ich es nun wie gesagt in meine richtige Arbeit einsetzte
funtioniert's hat nicht mehr.......
Wie du dem Link entnehman kannst ist das Minimalbeipspiel natürlich ganu dieses Beispiel dass gerade noch den Fehler produziert.

Das Problem mit der Fehlermeldung ist, dass Sie tatsächlich auf einen echten Speicherüberfluss hinbweisen kann oder aber auch auf einen Fehler deinerseits (vergessendes \end{irgendwas} oder eine Endlosschleife).

PS: entweder brauchst du xcolor oder color (xcolor ist besser). Beide aber eher nicht.

Verfasst: Di 3. Jul 2012, 13:16
von recnice
Hi,

der Fehler liegt an einer Tabelle, die vor dem Code steht :P

Danke & Gruß