Hallo,
ich möchte für meine Bachelorarbeit den Umgang mit LaTeX lernen und hänge schon etwas länger an folgendem Ausdruck:
\makeatletter
\let\partbackup\l@part
\renewcommand*\l@part[1]{\partbackup{#1}{}}
Diesen Ausdruck findet man fast überall und er hat irgendwas mit der Seitennummerierung zu tun. Ich möchte diesen Ausdruck vor allem verstehen.
\makeatletter weist "@" den \catcode 11 zu.
\let\NEUESMAKRO=\ALTESMAKRO
\let\NEUESMAKRO\ALTESMAKRO
Heißt ja eigentlich auch nur das ein Makro existiert "l@part" (was auch immer diese Makro für eine Funktion haben soll) wessen Funktion nun partbackup zugeschrieben wird.
\renewcommand{\NAME}[ANZAHL]{DEFINITION}
Erstellt nun ein neues Makro mit dem Namen "l@part" mit dem Parameter 1
was die Funktion von partbackup hat und wenn das Makro aufgerufen wird, wird der Parameter dem Makro partbackup übergeben.
Ich will damit nur zeigen, dass ich mich schon durch ein paar Foren und Wikis geklickt habe, aber leider trotzdem noch nicht ganz verstanden habe, was das diese Zeilen genau bedeuten.
Eine freundliche Erklärung würde mir viel Zeit ersparen.
Danke im Voraus
Mit freundlichen Grüßen
Markus
Eigene Strukturen verstehen Thema ist als GELÖST markiert
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Woher hast du denn diesen Schnipsel? Ich hab den bisher noch nie gesehen.
l@irgendwas sind grundsätzlich Anweisungen für das jeweilige Element irgendwas in einer Liste (toc beispielsweise).
Schnipsel sind immer irgendie problematisch. Erstell am besten ein Minimalbeispiel und teste an diesem die Funktion aus.
Du solltest übrigens nicht mit solchen Spielereien anfangen, sondern dir zuerst eine Einführung schnappen. Interne Makros kannst du dann ändern, wenn du erfahrener bist. Dann hast du garantiert auch den Unterschied zwischen newcommand und renewcommand verinnerlicht.
Was macht eigentlich \makeatletter
l@irgendwas sind grundsätzlich Anweisungen für das jeweilige Element irgendwas in einer Liste (toc beispielsweise).
Schnipsel sind immer irgendie problematisch. Erstell am besten ein Minimalbeispiel und teste an diesem die Funktion aus.
Du solltest übrigens nicht mit solchen Spielereien anfangen, sondern dir zuerst eine Einführung schnappen. Interne Makros kannst du dann ändern, wenn du erfahrener bist. Dann hast du garantiert auch den Unterschied zwischen newcommand und renewcommand verinnerlicht.
Was macht eigentlich \makeatletter
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
Danke für die schnelle Antwort, damit habe ich nicht gerechnet
Ich habe mir schon eine Einführung angesehen über Youtube und auch ein Buch gelesen (teilweise) "Abschlussarbeiten und Präsentationen mit LaTeX von Paul Resetarics"
Aber du hast recht damit sollte ich mich erst später beschäftigen, danke
Dann beschreibe ich einfach mein Problem:
Ich schaffe es nicht mein Inhaltsverzeichnis mit einer römischen I beginnen zu lassen, es startet immer mit einer röm. II. Es funktioniert wenn ich es über den Befehle \maketitle mache, allerdings habe ich die Titelseite per \input Befehl geladen und schon geht es nicht mehr
Hier mein Minimalbeispiel
Mit freundlichen Grüßen
Markus
Ich habe mir schon eine Einführung angesehen über Youtube und auch ein Buch gelesen (teilweise) "Abschlussarbeiten und Präsentationen mit LaTeX von Paul Resetarics"
Aber du hast recht damit sollte ich mich erst später beschäftigen, danke
Dann beschreibe ich einfach mein Problem:
Ich schaffe es nicht mein Inhaltsverzeichnis mit einer römischen I beginnen zu lassen, es startet immer mit einer röm. II. Es funktioniert wenn ich es über den Befehle \maketitle mache, allerdings habe ich die Titelseite per \input Befehl geladen und schon geht es nicht mehr
Hier mein Minimalbeispiel
\documentclass[12pt,a4paper]{report} \usepackage[utf8, latin1]{inputenc} \usepackage[english]{babel} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{makeidx} \usepackage{graphicx} \usepackage{lmodern} \usepackage{kpfonts} \usepackage[left=2.5cm,right=2cm,top=2cm,bottom=4cm]{geometry} \begin{document} \input{01_Title} \pagestyle{empty} %Seitennummerierung neu beginnen, Zahlen [arabic], röm.Zahlen [roman,Roman], Buchstaben [alph,Alph] \setcounter{page}{1} %setcounter hat hier leider garkeine Bedeutung egal ob es hier steht oder nicht \pagenumbering{Roman} \tableofcontents \clearpage \pagenumbering{arabic} \chapter{test1} \section{test1} \chapter{test2} \section{test2} \end{document}
Markus
»Minimale Vorlage vs. maximale Probleme« ist übrigens nicht nur als Warnung vor dem Gebrauch von schlechten Vorlagen, sondern insbesondere auch für den Einstieg in die Anfertigung einer wissenschaftlichen Arbeit mit LaTeX sinnvoll.
Achja: Der angegebene Code ist normalerweise unsinnig. \l@part hat zwei Argumente. Das zweite ist die Seitenzahl. Nun wird \l@part so umdefiniert, dass an den ursprünglichen Befehl eine leere Seitenzahl übergeben wird. Allerdings wird das ursprüngliche Argument dabei nicht gelesen und bleibt daher erhalten. Das führt dazu, dass die Seitenzahl noch immer ausgegeben wird, allerdings nicht mehr als Teil des \part-Eintrags ins (Inhalts-)Verzeichnis, sondern einfach so (im Verzeichnis). Das kann niemand wollen.
BTW: Bitte Code markieren wie das auch im Hinweis für Code in Beitrag mit Beispiel direkt über dem Nachrichten-Eingabefeld angegeben ist!
Achja: Der angegebene Code ist normalerweise unsinnig. \l@part hat zwei Argumente. Das zweite ist die Seitenzahl. Nun wird \l@part so umdefiniert, dass an den ursprünglichen Befehl eine leere Seitenzahl übergeben wird. Allerdings wird das ursprüngliche Argument dabei nicht gelesen und bleibt daher erhalten. Das führt dazu, dass die Seitenzahl noch immer ausgegeben wird, allerdings nicht mehr als Teil des \part-Eintrags ins (Inhalts-)Verzeichnis, sondern einfach so (im Verzeichnis). Das kann niemand wollen.
BTW: Bitte Code markieren wie das auch im Hinweis für Code in Beitrag mit Beispiel direkt über dem Nachrichten-Eingabefeld angegeben ist!
- Johannes_B
- Moderator
- Beiträge: 5079
- Registriert: Do 1. Nov 2012, 14:55
- Kontaktdaten:
Ich möchte dir LaTeX for complete novices empfehlen. Da werden auch gleich die KOMA-Klasse n vorgestellt und du ärgerst dich nicht mir den Standardklassen rum.
Zum Thema Seitennummerieung beachte bitte auch How to use pagenumbering
Aber, welche Seitenzahl hat das Inhaltsverzeichnis eigentlich?
Zum Thema Seitennummerieung beachte bitte auch How to use pagenumbering
Aber, welche Seitenzahl hat das Inhaltsverzeichnis eigentlich?
TeXwelt - Fragen und Antworten Schaut vorbei und stellt Fragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.
LaTeX-Vorlagen?
Der Weg zum Ziel: Ruhe bewahren und durchatmen, Beiträge und unterstützende Links aufmerksam lesen, Lösungsansätze verstehen und ggf. nachfragen.