goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Prüfen, ob ein Counter bereits definiert wurde

 

DerArbeitenschreiberling
Forum-Anfänger
Forum-Anfänger

Beiträge: 27
Anmeldedatum: 31.03.17
Wohnort: ---
Version: 1.0
     Beitrag Verfasst am: 01.07.2017, 16:26     Titel: Prüfen, ob ein Counter bereits definiert wurde
  Antworten mit Zitat      
Hallo!
Ich habe mich mal an ein erstes "Programmierungsbeispiel" zu \LaTeX rangesetzt. Ich möchte die Nummern, welche vor jeder \chapter stehen, bei bestimmten überschriften entfernen. Dazu habe ich folgende Umgebung implementiert:

Code • Öffne in Overleaf

\let\defaultthechapter=\thechapter
\newenvironment{nochapternumber}{\newcounter{beforechap} \setcounter{beforechap}{\value{chapter}} \renewcommand{\thechapter}{}}
   {\setcounter{chapter}{\value{beforechap}} \renewcommand{\thechapter}{\defaultthechapter}}
 

Kurz erklärt: Zuerst wird die implementation von \thechapter gespeichert. Dann wird, in der neuen Umgebung, die momentane Chapternummer in einen Counter gespeichert, und die implementation von \thechapter auf gar nichts gesetzt. Damit sind die Nummern weg.
In der Umgebung schreibt der Nutzer dann selbst seine \chapter. Ob ich das mit ins Kommando einarbeite, überlege ich noch. Am Ende der Umgebung wird der Counter für das Chapter auf den vorhergehenden Wert gesetzt und \thechapter wiederhergestellt.

Das Problem: Die Umgebung kann man auf diese Art und Weise nur einmal je Dokument benutzen, da der Counter "beforechap" dann natürlich schon definiert ist. Also möchte ich eine If-Abfrage verwenden, um zu prüfen, ob der Counter nicht schon definiert ist:

Code • Öffne in Overleaf

\newenvironment{nochapternumber}{\ifundefined{beforechap}\newcounter{beforechap}\fi\setcounter{beforechap}{\value{chapter}} [usw.]
 


Problem: LaTeX kennt angeblich das Kommando \ifundefined nicht (undefined control sequence). Was kann ich nun machen? Habt ihr Ideen?
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2017, 17:31     Titel:
  Antworten mit Zitat      
Warum verwendest Du nicht einfach entweder \chapter* oder \addchap (benötigt eine KOMA-Script-Klasse) oder setzt secnumdepth auf -1?

Außerdem wäre eine einfache Lösung natürlich \newcounter nicht innerhalb der Umgebung aufzurufen, sondern nur einmal außerhalb der Umgebung.

DerArbeitenschreiberling
Forum-Anfänger
Forum-Anfänger

Beiträge: 27
Anmeldedatum: 31.03.17
Wohnort: ---
Version: 1.0
     Beitrag Verfasst am: 01.07.2017, 17:56     Titel:
  Antworten mit Zitat      
Anonymous hat Folgendes geschrieben:
Warum verwendest Du nicht einfach entweder \chapter* oder \addchap (benötigt eine KOMA-Script-Klasse) oder setzt secnumdepth auf -1?

Außerdem wäre eine einfache Lösung natürlich \newcounter nicht innerhalb der Umgebung aufzurufen, sondern nur einmal außerhalb der Umgebung.


Ich kenne nicht allzu viele Kommandos in LaTeX; deswegen habe ich solche Lösungen auch nicht gleich auf dem Schirm.
\chapter*{} versteckt bei mir die Nummerierung leider nicht, sondern zählt bloß nicht weiter hoch. (Das kann an weiteren Formatierungen liegen, die ich im Dokument vorgenommen habe). Aber dadurch kann ich mir natürlich das Speichern des Counters sparen..
Auch \setcounter{secnumdepth}{-1} bringt bei mir nicht das gewünscht Ergebnis - In der Inhaltsangabe werden keine Zahlen angezeigt, aber im Text steht ständig eine 0 vor den Überschriften.

Aber du hast Recht, ich kann den Counter einfach außerhalb der Umgebung definieren. Dann läuft auch alles - danke sehr!
Private Nachricht senden Benutzer-Profile anzeigen

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.07.2017, 18:01     Titel:
  Antworten mit Zitat      
Deine Beschreibungen passen nicht zum normalen Verhalten von LaTeX mit allen mir bekannten Klassen. Das riecht also sehr nach selbstverursachtem Problem, das man sicher beseitigen kann und sollte. Du solltest ein echtes InfoMinimalbeispiel machen.

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de