Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Konstanten in Latex

  1. #1
    Registrierter Benutzer
    Registriert seit
    30.10.2008
    Beiträge
    30

    Konstanten in Latex

    Hallo Leute,

    hat jemand ne Idee wie ich folgendes Problem umgehe?

    Minimalbeispiel:
    Code:
    % Haupt-Style definieren
    \newcommand{\mainSqlListingOptions}{%
      language=SQL,%
      basicstyle={\ttfamily\footnotesize}
      %u.v.v.m.
    }
    
    % Typ I : \sqlInline{Code}
    \newcommand{\sqlInline}[1]%
    { \lstinline[\mainSqlListingOptions]{#1} }
    
    % Typ II : \begin{sqlCode} .. \end{sqlCode}
    \newenvironment{sqlCode}%
    {% 
      \begin{lstlisting}[%
        \mainSqlListingOptions,%
        frame = none,%
        backgroundcolor=\color{lstBg}%
      ]%
    }
    { \end{lstlisting} }
    
    %Typ III : \sqlFile{caption=..,label=..}{Pfadname.sql}
    \newcommand{\sqlFile}[2]%
    {%
      \lstinputlisting[%
        #1,
        \mainSqlListingOptions,%
        frame = none,%
        backgroundcolor=\color{lstBg}%
      ]%
      {#2}%
    }
    Problem ist diese Style-definition.
    Mit
    Code:
    \sqlInline{SELECT * FROM TABELLE}
    kommt die Meldung:
    Code:
     Missing \endcsname inserted.
    
    Wie kann ich den Inhalt von \mainSqlListingOptions an die betreffenden Stellen kopieren? bzw. Gibt es eine Möglichkeiten für Konstanten in LaTeX?

    Grüße,
    derJan

  2. #2
    Registrierter Benutzer Avatar von mechanicus
    Registriert seit
    10.07.2008
    Ort
    Hamburg
    Beiträge
    3.944
    Hallo,

    es wäre schön, wenn du ein komplettes Minimalbeispiel abliefern würdest. Auf den ersten Blick solltest du es mit lstnewenvironment probieren.

    Gruß
    Marco

  3. #3
    Registrierter Benutzer
    Registriert seit
    30.10.2008
    Beiträge
    30
    Danke für die flotte Antwort.

    Auf den ersten Blick solltest du es mit lstnewenvironment probieren.
    So wie ich das der Doku entnehme, is das nur für abgesetzte Codelistings sinnvoll (via begin & end). Das ist aber weniger meiner Frage.
    Das Problem mit dem Kopieren des Inhalts von \mainSqlListingOptions bleibt.


    Wie kann ich, ähnlich wie Konstanten in C, den Inhalt von \mainSqlListingOptions an die betreffenden Stellen (optionen von listing-befehlen) kopieren/durch "Präprozessor" (soweit in Latex vorhanden) einen String ersetzen lassen?

    (Also eher eine LaTeX-allgem. Frage.)

    Auf Wunsch, komplettes Codebeispiel:
    \documentclass{scrartcl}
    \usepackage{listings}
    \include{file_aus_meinem_ersten_Post}
    \begin{document}

    \sqlInline{SELECT * FROM table;} %Bsp mit Typ I

    \end{document}
    Problem liegt also in folgender Zeile:
    Code:
    \newcommand{\sqlInline}[1]%
    { \lstinline[\mainSqlListingOptions]{#1} }

  4. #4
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Ka55i0peia Beitrag anzeigen
    (Also eher eine LaTeX-allgem. Frage.)

    Auf Wunsch, komplettes Codebeispiel:


    Problem liegt also in folgender Zeile:
    Code:
    \newcommand{\sqlInline}[1]%
    { \lstinline[\mainSqlListingOptions]{#1} }
    steht alles in der Doku warum das nicht geht ...

  5. #5
    Registrierter Benutzer
    Registriert seit
    30.10.2008
    Beiträge
    30
    Zitat Zitat von voss Beitrag anzeigen
    steht alles in der Doku warum das nicht geht ...
    Mir geht es um eine alternative Lösung für die Idee: Kopieren eines Strings in die Optionenliste.
    (is schon rel. logisch dass es mit \befehl nicht geht)

  6. #6
    Registrierter Benutzer Avatar von voss
    Registriert seit
    10.04.2005
    Beiträge
    5.045
    Zitat Zitat von Ka55i0peia Beitrag anzeigen
    Mir geht es um eine alternative Lösung für die Idee: Kopieren eines Strings in die Optionenliste.
    (is schon rel. logisch dass es mit \befehl nicht geht)
    steht auch in der Doku wie man Stile definiert

    Herbert

  7. #7
    Registrierter Benutzer
    Registriert seit
    30.10.2008
    Beiträge
    30
    Lösung:

    Code:
    \lstdefinestyle{mainSqlListingOptions}%
    	{%	
    		language=SQL,%
    		basicstyle={\ttfamily\footnotesize},%
    		%..
    	}
    
    \newcommand{\sqlInline}[1]%
    	{ \lstinline[style=mainSqlListingOptions]{#1} }
    Danke für denn Tip.

Lesezeichen

Berechtigungen

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