Anzeige:
Ergebnis 1 bis 7 von 7

Thema: list-Umgebung definieren

  1. #1
    Registrierter Benutzer
    Registriert seit
    12.04.2013
    Beiträge
    27

    list-Umgebung definieren

    Hallo,

    ich versuche mit selbst definierten sty-Dateien eine list-Umgebung zu erzeugen. Leider bekomme ich vom Texniccenter unter Windows stets die Fehlermeldung:

    ! missing \endcsname inserted.

    \global
    1.4 \begin{Zeile 3}

    und:

    ! Extra \else.
    \@ifundefined ... \expandafter \@firstoftwo \else
    \expandafter \@secondoftwo...
    1.4 \begin{zeilen}{Zeile 3}

    So sehen meine Codes aus (alle Dateien sind im gleichen Ordner):

    1. zeilenart.sty:

    Code:
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage[ngerman]{babel}
    \usepackage{marvosym}
    \DeclareInputText{128}{\EUR}
    \usepackage{array}
    \usepackage{ifthen, calc}
    \usepackage{pifont, mathptmx, charter, courier}
    \usepackage[scaled]{helvet}
    \usepackage{parskip}
    \tolerance=2000
    \setlength{\emergencystretch}{20pt}
    2. zeilen.sty:

    Code:
    \newenvironment{zeilen}[1]{\begin{\list}{}%
    	{\renewcommand{\makelabel}[1]{\sffamily##1:}%
    		\settowidth{\labelwidth}{\sffamily#1:}%
    		\setlength{\leftmargin}{\labelwidth+\labelsep}%
    		\setlength{\itemsep}{0mm}%
    	}
    }{
    	\end{list}
    }%
    3. test1.tex:

    Code:
    \documentclass[a4paper, 12pt]{article}
    \usepackage{zeilenart, zeilen}
    \begin{document}
    	\begin{zeilen}{Zeile 3}
    		\item[Zeile 1] Text1 Text1 Text1
    		\item[Zeile 2] Text2 Text2 Text2
    		\item[Zeile 3] Text3 Text3 Text3
    	\end{zeilen}
    \end{document}

  2. #2
    ctansearch
    Gast
    Code:
    \begin{\list}{}%
    der backslash bei list ist das problem,weglassen, dann gehts.

  3. #3
    Registrierter Benutzer
    Registriert seit
    12.04.2013
    Beiträge
    27
    alles klar - vielen Dank

  4. #4
    Registrierter Benutzer
    Registriert seit
    09.12.2005
    Beiträge
    1.326
    BTW: In sty-Dateien sollte man \RequirePackage statt \usepackage verwenden (siehe clsguide). Außerdem ist es keine gute Idee die Eingabecodierung in einem Paket fest einzustellen. Schließlich ist es nicht die Eigenschaft eines Pakets nur mit einer bestimmten Eingabecodierung umgehen zu können, sondern eine Frage der Editoreinstellungen für das jeweilige Dokument. Also gehört das ins Dokument oder man sollte im Paket selbst Optionen zum Zwecke der Umschaltung vorsehen.

    Desweiteren sind Pakete, die fest fontenc verwenden, insofern ungünstig, als das bei Verwendung von XeLaTeX oder LuaLaTeX nicht sehr günstig ist. Bei diesen ist es besser mit fontspec zu arbeiten. Also sollte man auch das nach Möglichkeit dem Dokument überlassen.

    Und letztlich ist auch die feste Vorgabe einer Sprache nicht ideal. Gründe dafür muss ich wohl nicht extra nennen. Meist ist es sogar günstiger die Sprache bei \documentclass anzugeben, also global zu setzen, damit andere Pakete auch etwas davon mit bekommen.

  5. #5
    Registrierter Benutzer
    Registriert seit
    12.04.2013
    Beiträge
    27
    Hi,

    danke für die Hinweise. Ich habe meinen Code mal angepasst. Was mich jetzt noch bei der Ausgabe stört ist folgendes:

    Zwischen "Zeile" und "1:" sowie "Zeile" und "2:" entsteht eine große Lücke.

    Wie kann ich diese vermeiden? Ich möchte also "Zeile x:" quasi linksbündig und nicht im blocksatz haben.

    zeilen.sty:

    Code:
    \newenvironment{zeilen}[1]{
    	\begin{list}{}{
    		\renewcommand{\makelabel}[1]{##1:}
    		\settowidth{\labelwidth}{#1:}
    		\setlength{\leftmargin}{\labelwidth+\labelsep}
    		\setlength{\itemsep}{0mm}
    	}
    }{
    	\end{list}
    }
    test.tex:

    Code:
    \documentclass[a4paper, 12pt]{article}
    \usepackage{zeilenart, zeilen}
    \begin{document}
    	\begin{zeilen}{Zeile 3-10}
    	\item[Zeile 1] Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1 Text1
    	\item[Zeile 2] Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2 Text2
    	\item[Zeile 3-10] Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3 Text3
    	\end{zeilen}
    \end{document}
    Viele Grüße

  6. #6
    ctansearch
    Gast
    Code:
    \renewcommand{\makelabel}[1]{##1:\hfill}
    Nur an Deinem Beispiel getestet.

  7. #7
    Registrierter Benutzer
    Registriert seit
    12.04.2013
    Beiträge
    27
    Hi, super - funktioniert!

    Viele Grüße

Lesezeichen

Berechtigungen

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