Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Listings mit lstinputlisting und linerange - korrekte Zeilennummer

  1. #1
    Registrierter Benutzer
    Registriert seit
    10.03.2014
    Beiträge
    2

    Listings mit lstinputlisting und linerange - korrekte Zeilennummer

    Hallo liebes Forum!

    Für meine Master Thesis verwende ich das Packege listings.

    Bisher funktioniert alles super, doch hab ich jetzt das Problem, dass ich gerne mit linerange arbeiten möchte, da nicht jede Zeile relevant ist.

    Hier mein Latex-Code
    Code:
    \lstinputlisting[style=Java, 
    caption={\lstinline{WebApi.java}-Datei des \FakeToken}, 
    label=Lst_FT_WebApi, 
    captionpos=t, 
    linerange={1-13,38-40,61-63,78-80,84-86,89-90}]{CodeM/WebApi.java}
    Unter http://tex.stackexchange.com/questio...-specification habe ich ein Makro(?!) gefunden welches dies so ziemlich umsetzt ...

    Leider hat es einen Schönheitsfehler den ich durch meine geringen Kenntnisse nicht beheben kann.

    Für die linerange 38-40 schreibt es z.B. die Zielennummern 38,40,40 und nicht 38,39,40.
    Außerdem möchte ich gerne zwischen den ausgelassenen Zeilen vielleicht mittels \dots ein paar punkte einfügen damit man sieht, dass da was ausgelassen wurde ohne auf die Zahlen zu schauen.

    Hab schon ein paar Konstrukte mit verschiedenen \lstinputlisting's gesehen.
    Dies möchte ich aber vermeiden da ich für das gesamte Listing nur eine Caption möchte ...

    Hoffe die Lösung ist trivial und ich steh nur voll auf der Leitung :-)

    lg

  2. #2
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Hallo,
    Zitat Zitat von Xeri Beitrag anzeigen
    Unter http://tex.stackexchange.com/questio...-specification habe ich ein Makro(?!) gefunden welches dies so ziemlich umsetzt ...

    Leider hat es einen Schönheitsfehler den ich durch meine geringen Kenntnisse nicht beheben kann.
    warum demonstrierst Du Dein Problem nicht an einem konkreten Beispiel?
    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

  3. #3
    Registrierter Benutzer
    Registriert seit
    10.03.2014
    Beiträge
    2
    Hab mal den Fehler wie rais angemerkt als PDF angehängt.

    Der dazugehörende Code:
    Code:
    \lstinputlisting[style=Smali,
    caption={Erweiterung der Methode \lstinline{writeLog()} des \ftts als Java-Bytecode.}, 
    label=Lst_FT_writeLog_smali, 
    captionpos=t, 
    %linerange={1-12,17-17,43-43,50-50,71-71,78-78,91-91,98-98,102-102,107-107,110-111}
    ]{CodeM/erweiterung_writeLog.smali}

    Wie Ihr im PDF erkennen könnt besteht der Fehler in der Nummerierung der Zeilen.
    Wie mir gerade aufgefallen ist als ich das Minibeispiel erstellt habe tritt der Fehler nur bei Leerzeilen auf die ich aber erhalten möchte.

  4. #4
    Registrierter Benutzer Avatar von rais
    Registriert seit
    18.07.2005
    Beiträge
    5.862
    Zitat Zitat von Xeri Beitrag anzeigen
    Hab mal den Fehler wie rais angemerkt als PDF angehängt.
    bist Du meinem Link nicht gefolgt?
    Zitat Zitat von Xeri Beitrag anzeigen
    Der dazugehörende Code:
    ist a. unvollständig und b. ohne die einzubindende Datei nutzlos.
    Evtl tut es
    Code:
    \documentclass{article}
    
    \usepackage{listings}
    
    \makeatletter
    \newcounter{mylstlineno}
    \newcommand*\my@lst@lineno{%
      \setcounter{mylstlineno}{\value{lstnumber}}%
      \addtocounter{mylstlineno}{\lst@firstline}%
      \addtocounter{mylstlineno}{-1}%
      \themylstlineno
    }
    \lst@Key{numbers}{none}{%
        \let\lst@PlaceNumber\@empty
        \lstKV@SwitchCases{#1}%
        {none&\\%
         left&\def\lst@PlaceNumber{\llap{\normalfont
                    \lst@numberstyle{\thelstnumber}\kern\lst@numbersep}}\\%
         leftliteral&\def\lst@PlaceNumber{\llap{\normalfont
                    \lst@numberstyle{\my@lst@lineno}\kern\lst@numbersep}}\\%
         right&\def\lst@PlaceNumber{\rlap{\normalfont
                    \kern\linewidth \kern\lst@numbersep
                    \lst@numberstyle{\thelstnumber}}}%
        }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}}
    \makeatother
    
    \lstset{
      numbers=leftliteral,
      language={[LaTeX]Tex},
      basicstyle=\ttfamily\footnotesize
    }
    
    \begin{document}
      \lstinputlisting[linerange={1-3}]{\jobname.tex}
      \lstinputlisting[caption={gesamt}, numbers=left]{\jobname.tex}
    \end{document}
    Falls nicht, poste bitte Dein eigenes Minimalbeispiel. Wie sowas auch ohne externen Code möglich ist, kannst Du diesem Beispiel entnehmen.

    MfG
    Rainer
    There's nothing a good whack with a hammer won't fix!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •