Matroids Matheplanet Forum Index
Moderiert von Stefan_K
Matroids Matheplanet Forum Index » Textsatz mit LaTeX » LaTeX: Namen eines Satzes im Stichwortverzeichnis anzeigen
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule LaTeX: Namen eines Satzes im Stichwortverzeichnis anzeigen
RomyMariee
Neu Letzter Besuch: im letzten Monat
Dabei seit: 09.04.2020
Mitteilungen: 4
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2020-04-09


Hallo,

ich habe in einem LaTeX-Dokument mit Hilfe von \[\newtheorem\] einige Sätze, Definitionen etc. und möchte nun gern, dass deren Namen im Stichwortverzeichnis angezeigt werden.

Minimalbeispiel:
LaTeX
  1. \documentclass[fleqn]{scrbook}
  2.  
  3. % erlaubt Eingabe von nicht-ascii Zeichen im LaTeX Quelltext
  4. \usepackage[utf8]{inputenc}
  5.  
  6. %ermöglicht die Nutzung der deutschen Keywords
  7. \usepackage[ngerman]{babel}
  8.  
  9. \usepackage{amsthm}
  10. \theoremstyle{definition}
  11. \newtheorem*{defi}{Definition}
  12. \newtheorem*{satz}{Satz}
  13.  
  14. \usepackage{makeidx}
  15.  
  16. \begin{document}
  17.  
  18. \begin{satz}[Satz-Name] Dies ist ein Satz, dessen Name im Stichwortverzeichnis vorkommen soll.
  19. \end{satz}
  20.  
  21. \begin{defi} Wir definieren hier den Begriff \textit{Begriff1}\index{Begriff1}, der im Stichwortverzeichnis aufgeführt wird.
  22. \end{defi}
  23.  
  24. \printindex
  25. \end{document}\]
Ich hätte nun also gern neben "Begriff1" auch "Satz-Name" im Index. Ansonsten sollen die Sätze und Definitionen genauso aussehen.

Hat jemand eine Lösungsidee?

Schonmal Danke!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2020-04-09


--> übernächster Post



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
RomyMariee
Neu Letzter Besuch: im letzten Monat
Dabei seit: 09.04.2020
Mitteilungen: 4
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2020-04-09


Ich habe einfach momentan so viele Sätze und Definitionen, dass ich nicht jedes einzeln durchgehen will. Deswegen dachte ich, dass es einfacher gehen muss, habe auch das versucht, was du vorgeschlagen hast, habe dazu nur leider nichts finden können, was meine Ausgabe nicht verändert hat.
\[\documentclass[fleqn]{scrbook}

% erlaubt Eingabe von nicht-ascii Zeichen im LaTeX Quelltext
\usepackage[utf8]{inputenc}

%ermöglicht die Nutzung der deutschen Keywords
\usepackage[ngerman]{babel}

\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem*{defi}{Definition}
%\newtheorem*{satz}{Satz}

\usepackage{thmtools}

\declaretheoremstyle[
notefont=\normalfont, notebraces={}{},
bodyfont=\normalfont, %\headfont=\normalfont
headformat=Satz (\NOTE) \index{\NOTE}
]{nopar}
\declaretheorem[style=nopar]{satz}

\usepackage{makeidx}
\makeindex

\begin{document}

\begin{satz}[Satz-Name] Dies ist ein Satz, dessen Name im Stichwortverzeichnis vorkommen soll.
\end{satz}

\begin{defi} Wir definieren hier den Begriff \textit{Begriff1}\index{Begriff1}, der im Stichwortverzeichnis aufgeführt wird.
\end{defi}

\printindex
\end{document}\] Unter anderem habe ich es auf diese Art versucht, jedoch sind dann die Klammern fett und es ist leicht verschoben, dafür der Name aber im Index.
Ich bin leider echt etwas ratlos...



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2020-04-09


Bitte in Quelltextbereiche schreiben!


2020-04-09 16:06 - RomyMariee im Themenstart schreibt:
ich habe in einem LaTeX-Dokument mit Hilfe von \[\newtheorem\] einige Sätze, Definitionen etc. und möchte nun gern, dass deren Namen im Stichwortverzeichnis angezeigt werden.

Minimalbeispiel:
latex
\documentclass[fleqn]{scrbook}
% erlaubt Eingabe von nicht-ascii Zeichen im LaTeX Quelltext
\usepackage[utf8]{inputenc}
 
%ermöglicht die Nutzung der deutschen Keywords
\usepackage[ngerman]{babel}
 
\usepackage{amsthm}
\theoremstyle{definition}
\newtheorem*{defi}{Definition}
\newtheorem*{satz}{Satz}
 
\usepackage{makeidx}
\makeindex
 
\begin{document}
 
\begin{satz}[Satz-Name] Dies ist ein Satz, dessen Name im Stichwortverzeichnis vorkommen soll.
\end{satz}
 
\begin{defi} Wir definieren hier den Begriff \textit{Begriff1}\index{Begriff1}, der im Stichwortverzeichnis aufgeführt wird.
\end{defi}
 
\printindex
\end{document}
Quelltextbereich - k e i n  "LaTeX-Bereich"


Ich hätte nun also gern neben "Begriff1" auch "Satz-Name" im Index. Ansonsten sollen die Sätze und Definitionen genauso aussehen.

Hat jemand eine Lösungsidee?

Öh, vielleicht verstehe ich die Frage falsch.
Was hält dich davon ab:
\begin{satz}[Satz-Name\index{Satz-Name}]


Am Rande: Anstatt das, wie bei "Begriff 1" immer zweimal aufzuführen, ist ein neues Kommando sinnvoll, etwa \NewDocumentCommand{\toindex}{O{#2} m}{\textit{#2}\index{#1}}
latex
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
 
\documentclass[fleqn]{scrbook} 
 
% erlaubt Eingabe von nicht-ascii Zeichen im LaTeX Quelltext 
\usepackage[utf8]{inputenc} 
 
%ermöglicht die Nutzung der deutschen Keywords 
\usepackage[ngerman]{babel} 
 
\usepackage{amsthm} 
\theoremstyle{definition} 
\newtheorem*{defi}{Definition} 
\newtheorem*{satz}{Satz} 
 
\usepackage{makeidx} 
\makeindex 
 
\usepackage{xparse}
\NewDocumentCommand{\toindex}{O{#2} m}{%
\textit{#2}\index{#1}}
 
\begin{document} 
\toindex{Word that comes into index}. \par
\toindex[Word that comes into index too]{This comes into text}. \par
\toindex{Another word that comes into index}. \par
 
\begin{satz}[\toindex{Satz-Name}] Dies ist ein Satz, dessen Name im Stichwortverzeichnis vorkommen soll. 
\end{satz} 
 
\begin{defi} Wir definieren hier den Begriff \toindex{Begriff1}, der im Stichwortverzeichnis aufgeführt wird. 
\end{defi} 
 
\printindex 
\end{document}





Oder soll das automatisiert werden oder sowas? Dann musst Du schauen, welches Kommando für das optionale Argument 'Satz-Name' wirkt und dieses umdefinieren.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2020-04-09


2020-04-09 17:22 - RomyMariee in Beitrag No. 2 schreibt:
Unter anderem habe ich es auf diese Art versucht, jedoch sind dann die Klammern fett und es ist leicht verschoben, dafür der Name aber im Index.
Ich bin leider echt etwas ratlos...

Das Bild war übrigens noch falsch.
Mit der xparse-Version des Kommandos (Beitrag 3) sieht es m.E. gut aus.





Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
RomyMariee
Neu Letzter Besuch: im letzten Monat
Dabei seit: 09.04.2020
Mitteilungen: 4
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2020-04-09


Okay vielen Dank schonmal, gibt es vielleicht trotzdem noch eine Möglichkeit, bei der ich nicht alle bestehenden Sätze, Definitionen etc. nochmal durchgehen muss?



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2020-04-09


2020-04-09 17:56 - RomyMariee in Beitrag No. 5 schreibt:
Okay vielen Dank schonmal, gibt es vielleicht trotzdem noch eine Möglichkeit, bei der ich nicht alle bestehenden Sätze, Definitionen etc. nochmal durchgehen muss?

Also doch eine Automatisierung, bei der alle Satz-Namen in den Index wandern sollen.


Ja nun, das ist alles nicht so ohne. Du musst -so wie Du das Dokument geschrieben hast- einen eigenen Style definieren und da diesen ganzen Kram einstellen
\newtheoremstyle{mystyle}% name of the style to be used
  {\topsep}% measure of space to leave above the theorem. E.g.: 3pt
  {\topsep}% measure of space to leave below the theorem. E.g.: 3pt
  {\itshape}% name of font to use in the body of the theorem
  {0pt}% measure of space to indent
  {\bfseries}% name of head font
  {.}% punctuation between head and body
  { }% space after theorem head; " " = normal interword space
  {\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}\index{#3}}% custom head specification
 
\theoremstyle{mystyle}
\newtheorem*{defi}{Definition}
\newtheorem*{satz}{Satz} 
und dabei an trickreicher Stelle (siehe letzte Zeile) \index{#3} sagen.

Das ist sehr sehr LaTeX-classic alles...
Es sei darauf hingewiesen, dass es modernere Pakete für Theoreme, insbesondere aber für Indexe gibt (wo man manches einfacher einstellen kann).
Naja, vll. bei der nächsten Diplomarbeit.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.7, eingetragen 2020-04-10


Wenn ich es so einstelle, sehe ich keinen Unterschied zum Default-Style 'definition'.
latex
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
 
\documentclass[fleqn]{scrbook}
% Braucht es nicht mehr bei hinreichend aktueller TeX-Distribution
% \usepackage[utf8]{inputenc} % 
%ermöglicht die Nutzung der deutschen Keywords
\usepackage[ngerman]{babel}
 
\usepackage{amsthm}
%\theoremstyle{definition} % alt
 
\newtheoremstyle{mystyle}% neu
{\topsep}   % ABOVESPACE
{\topsep}   % BELOWSPACE
{}               % BODYFONT
{0pt}          % INDENT (empty value is the same as 0pt)
{\bfseries} % HEADFONT
{.}             % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{\thmname{#1}\thmnote{ \normalfont (#3)}\index{#3}}  % CUSTOM HEAD SPECIFICATION, entfernt: \thmnumber{ #2}
\theoremstyle{mystyle} % neu
 
\newtheorem*{defi}{Definition}
\newtheorem*{satz}{Satz}
 
\usepackage{xparse}
\NewDocumentCommand{\toindex}{O{#2} m}{%
\textit{#2}\index{#1}}
 
\usepackage{makeidx}
\makeindex
\begin{document}
\toindex{Begriff in Text und Index}.\par
\toindex[Begriff im Index]{Begriff im Text}.
 
\begin{satz}[Satzname kommt in Index]
....
\end{satz}
 
\begin{satz}[Satz-Name] 
Dies ist ein Satz, dessen Name im Stichwortverzeichnis vorkommen soll.
\end{satz}
 
\begin{defi} Wir definieren hier den Begriff \toindex{Begriff1}, der im Stichwortverzeichnis aufgeführt wird.
\end{defi}
 
\printindex
\end{document}


Die Satz- bzw. newtheorem-Namen erscheinen, wegen der Einstellung
{\thmname{#1}\thmnote{ \normalfont (#3)}\index{#3}}  % CUSTOM HEAD SPECIFICATION,
automatisch im Index.

Falls der Satzname auch kursiv sein soll (wie die anderen "Index-Begriffe"), dann muss da \thmnote{ \normalfont\itshape (#3)}  stehen.


\usepackage{xparse}
\NewDocumentCommand{\toindex}{O{#2} m}{\textit{#2}\index{#1}}

erlaubt das Kommando \toindex[Index]{Text bzw. Text und Index}







Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
RomyMariee
Neu Letzter Besuch: im letzten Monat
Dabei seit: 09.04.2020
Mitteilungen: 4
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.8, vom Themenstarter, eingetragen 2020-04-10


Super, vielen Dank! So ist es perfekt :)



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.9, eingetragen 2020-04-10


Noch eine kleine Anmerkung:

Solche endgültigen Festlegungen
{\thmname{#1}\thmnumber{ #2}\thmnote{ (#3)}\index{#3}}
sind natürlich teilweise gefährlich, auch wenn der Fall "newtheorem-Name kommt in den Index" der Standard sein soll; denn:
manches soll ggf. doch nicht in den Index, anderes soll nicht 1:1 in den Index übernommen werden, sondern anders.

Dazu:
\newif\ifTheoremnoteToIndex
\TheoremnoteToIndextrue % Default
 
\newtheoremstyle{mystyle}% neu
{\topsep}   % ABOVESPACE
{\topsep}   % BELOWSPACE
{}               % BODYFONT
{0pt}          % INDENT (empty value is the same as 0pt)
{\bfseries} % HEADFONT
{.}             % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{\thmname{#1}\thmnote{ \normalfont\itshape (#3)}% 
{\ifTheoremnoteToIndex\index{#3}\fi}}  % CUSTOM HEAD SPECIFICATION, entfernt: \thmnumber{ #2}
\theoremstyle{mystyle} % neu

dann kann man sowas machen:
\begin{defi}[Hilfsdefinition (nicht im Index)\TheoremnoteToIndexfalse] 
Soll nicht in den Index.
\end{defi}
 
\begin{defi}[Wichtige Definition (im Index)] 
Soll in den Index.
\end{defi}
 
\begin{defi}[Eine Definition (so nicht im Index)\TheoremnoteToIndexfalse  \index{Anders im Index}] 
Soll anders in den Index.
\end{defi}

LaTeX
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
 
\documentclass[fleqn]{scrbook}
% Braucht es nicht mehr bei hinreichend aktueller TeX-Distribution
% \usepackage[utf8]{inputenc} % 
%ermöglicht die Nutzung der deutschen Keywords
\usepackage[ngerman]{babel}
 
\usepackage{amsthm}
%\theoremstyle{definition} % alt
 
\newif\ifTheoremnoteToIndex
\TheoremnoteToIndextrue % Default
 
\newtheoremstyle{mystyle}% neu
{\topsep}   % ABOVESPACE
{\topsep}   % BELOWSPACE
{}               % BODYFONT
{0pt}          % INDENT (empty value is the same as 0pt)
{\bfseries} % HEADFONT
{.}             % HEADPUNCT
{5pt plus 1pt minus 1pt} % HEADSPACE
{\thmname{#1}\thmnote{ \normalfont\itshape (#3)}% 
{\ifTheoremnoteToIndex\index{#3}\fi}}  % CUSTOM HEAD SPECIFICATION, entfernt: \thmnumber{ #2}
\theoremstyle{mystyle} % neu
 
\newtheorem*{defi}{Definition}
\newtheorem*{satz}{Satz}
 
\usepackage{xparse}
\NewDocumentCommand{\toindex}{O{#2} m}{%
\textit{#2}\index{#1}}
 
\usepackage{makeidx}
\makeindex
\begin{document}
\begin{defi}[Hilfsdefinition (nicht in Index)\TheoremnoteToIndexfalse] 
Soll nicht in den Index.
\end{defi}
 
\begin{defi}[Wichtige Definition (in Index)] 
Soll in den Index.
\end{defi}
 
\begin{defi}[Eine Definition (so nicht im Index)\TheoremnoteToIndexfalse  \index{Anders im Index}] 
Soll anders in den Index.
\end{defi}
 
 
\toindex{Begriff in Text und Index}.\par
\toindex[Begriff im Index]{Begriff im Text}.
 
\begin{satz}[Satzname kommt in Index]
....
\end{satz}
 
\begin{satz}[Satz-Name] 
Dies ist ein Satz, dessen Name im Stichwortverzeichnis vorkommen soll.
\end{satz}
 
\begin{defi} Wir definieren hier den Begriff \toindex{Begriff1}, der im Stichwortverzeichnis aufgeführt wird.
\end{defi}
 
 
 
\printindex
\end{document}
 
 



PS: Alternativ könnte man natürlich mit verschiedenen newtheoremstyle's arbeiten und diese ggf. gruppieren. Nicht getestet, aber sollte genauso gehen.



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.10, eingetragen 2020-04-13


Die bisher gezeigte Lösung dürfte teilweise instabil sein.

· amsthm verlangt zur Style-Einstellung eine schwer zu merkende Liste von mandatorischen Argumenten.

· Ich würde es daher vermutlich mit dem Co-Paket thmtools umsetzen, das eine Key-value-Syntax anbietet:
\declaretheoremstyle[
  headpunct={\normalfont.\hspace{1.5em}},
  notefont=\normalfont,
  headformat=\NAME\ \NUMBER\NOTE,
]{mystyle}
 
\declaretheorem[title=Definition, within=section, style=mystyle]{defi}

Ich kenne es so, dass die "Theoreme" gemeinsam abschnittsweise nummeriert werden, ist das nicht gewünscht, kann '\NUMBER' auch rausgenommen werden.

· Um nun die "Theorem-Notes" automatisch in den Index zu bekommen -was sich wahlweise auch abstellen lassen sollte-, gibt es mit xpatch zwei Möglichkeiten:
\declaretheorem[title=Definition, within=section, style=mystyle]{defiinner}
\NewDocumentEnvironment {defi}{o} {\IfNoValueTF{#1}{\defiinner} {\defiinner[#1]\index{#1}}} {}
\NewDocumentEnvironment {defi*}{o} {\IfNoValueTF{#1}{\defiinner} {\defiinner[#1]}} {}
und dann
\begin{defi} % mit Index           
....
\end{defi}                                 
 
\begin{defi*} % ohne Index
....
\end{defi*}
(das Kommando ist aufgedunsen, weil xpatch '\IfNoValueTF' verlangt, ansonsten schreibt er überall 'NO-VALUE' dazu, wenn die Note weggelassen wird.)

Alternativ:
\NewDocumentEnvironment { defi } { s o }
{\IfBooleanTF {#1} 
   {\IfNoValueTF{#2}{\defiinner} {\defiinner[#2]}} 
          {\IfNoValueTF{#2}{\defiinner} {\defiinner[#2]\index{#2}}} 
} {}
und dann
\begin{defi} % mit Index           
...
\end{defi}
 
\begin{defi}* % ohne Index
...
\end{defi}


Komplettes MWE
latex
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
 
\documentclass{scrartcl}
\usepackage{amsthm}
\usepackage{thmtools}
\usepackage[thickness=1.75pt, vskip=0em, leftmargin=0.65em]{thmbox} % optional, siehe unten “leftbar”
\usepackage{xparse}
\usepackage{makeidx}
     \makeindex
\usepackage{lipsum} % Dummy-Text
 
% 
\NewDocumentCommand{\toindex}{O{#2} m}{%
\textit{#2}\index{#1}}
 
% Styles via thmtools
\declaretheoremstyle[
%  notebraces={(}{)}, % default
  headpunct={\normalfont.\hspace{1.5em}},
  notefont=\normalfont,
  headformat=\NAME\ \NUMBER\NOTE,
]{mystyle}
 
 
 
% Theorems
\declaretheorem[title=Definition, within=section, style=mystyle]{defiinner}
\NewDocumentEnvironment {defi}{o} {\IfNoValueTF{#1}{\defiinner} {\defiinner[#1]\index{#1}}} {}
\NewDocumentEnvironment {defi*}{o} {\IfNoValueTF{#1}{\defiinner} {\defiinner[#1]}} {}
%\begin{defi} % mit Index           %\begin{defi*} % ohne Index
%\end{defi}                                 %\end{defi*}
%
%% Alternativ: 
%\NewDocumentEnvironment { defi } { s o}
%{\IfBooleanTF {#1} 
%   {\IfNoValueTF{#2}{\defiinner} {\defiinner[#2]}} 
%          {\IfNoValueTF{#2}{\defiinner} {\defiinner[#2]\index{#2}}} 
%} {}
%\begin{defi} % mit Index           %\begin{defi}* % ohne Index
%\end{defi}                                 %\end{defi}
 
\declaretheorem[title=Satz, sibling=defiinner, style=mystyle]{satzinner}
\NewDocumentEnvironment {satz}{o} {\begin{leftbar}\IfNoValueTF{#1}{\satzinner} {\satzinner[#1]\index{#1}}} {\end{leftbar}}
\NewDocumentEnvironment {satz*}{o} {\begin{leftbar}\IfNoValueTF{#1}{\satzinner} {\satzinner[#1]}} {\end{leftbar}}
 
\begin{document}
\section{Definitions and Theorems in the First Section}
\lipsum[66]
\begin{satz}[Satz to Index]
\toindex{Begriff in Text und Index}.\par
\toindex[Begriff im Index]{Begriff im Text}.  \lipsum[66]
\end{satz}
\lipsum[66]
 
\begin{defi}[Definition to Index]
\lipsum[66]
\end{defi}
 
\begin{satz*}[Satz not to Index]
\lipsum[66]
\end{satz*}
 
\begin{defi*}[Definition not to Index]
\lipsum[66]
\end{defi*}
 
\begin{defi}
\lipsum[66]
\end{defi}
 
\printindex
\end{document}





Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.11, eingetragen 2020-04-13


Es sei noch auf das vergleichsweise aktuellere Paket tcolorbox hingewiesen, mit dem man u.a. theorem-Umgebungen erstellen kann.

\tcbuselibrary{theorems} lässt sich bei Bedarf auch mit amsthm kombinieren, was aber eigentlich nicht notwendig ist.
Bemerkenswert ist der Unterschied zu den klassischen Paketen amsthm/thmtools/ntheorem, dass hier der "Name", d.h. die Theorem-Note ('description' bei tcolorbox),  kein optionales Argument mehr ist, da dieses eventuellen weiteren Einstellungen vorbehalten bleibt.


Vorteil: Nahezu unbeschränkte Gestaltungsmöglichkeiten (vergleiche Handbuch). Einfaches Erzeugen von Listen (vergleiche MWE unten).

Nachteil: Sehr viele Einstellungen nötig und viel Syntax rauszusuchen.


MWE
latex
\documentclass{scrartcl}
\usepackage[most]{tcolorbox}
\tcbset{
commonstyle/.style={
theorem style=plain, % so kein Umbruch nach title
%theorem name, % einkommentieren, wenn keine Nummern gewünscht
fonttitle=\bfseries,
%fontupper=\itshape, % in “body”
separator sign none,
description delimiters parenthesis,
description font=\normalfont, 
terminator sign={.\hspace{1em}},
% Box-Einstellungen
enhanced,arc=0mm,outer arc=0mm,
boxrule=0mm,toprule=0mm,bottomrule=0mm,left=0mm,right=0mm,
titlerule=0mm,toptitle=0mm,bottomtitle=0mm,top=0mm,
colback=white,coltitle=black,
%
boxsep=0pt, bottom=0pt, left=3pt, %
},
leftbar/.style={colframe=black, leftrule=1.75pt},
}
 
\newtcbtheorem[number within=section, list inside={mylist}]{defi}{Definition}{commonstyle}{def}
\newtcbtheorem[use counter from=defi, list inside={mylist}]{satz}{Satz}{commonstyle, leftbar}{th}
\newtcbtheorem[number within=none]{bsp}{Beispiel}{commonstyle,
colback=lightgray, 
boxsep=4pt,
terminator sign colon
}{bsp}
 
\usepackage{lipsum} % Dummy-Text
\begin{document}
\section{Theoreme mit tcolorbox}
\lipsum[66]
\begin{defi}[]{Eine Definitition}{label1}
\lipsum[66]
\end{defi}
\lipsum[66]
\begin{defi*}{}
Stern führt zu unnummeriertem und nicht gelistetem Theorem.
\end{defi*}
 
\begin{satz}[]{Ein Satz}{label2}
\lipsum[66]
\end{satz}
 
\begin{bsp*}{}
\lipsum[66]
\end{bsp*}
 
\begin{satz}[]{Noch ein Satz}{label3}
\lipsum[66]
\end{satz}
 
\tcblistof[\section*]{mylist}{Liste der Sätze und Definitionen}
\end{document}







Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.12, eingetragen 2020-04-18


Für das professionelle Erstellen von Indizes, Glossaren, Abkürzungsverzeichnissen, Formelzeichenverzeichnissen etc. bietet sich das Paket glossaries-extra an.

Speziell für einen Index verlangt glossaries-extra allerdings eine externe bib-Datei vom Inhalt
jobname-index.bib
  @index{Wort1}
  @index{Wort2}
  @index{Wort3}
....
deren Einträge im Text indiziert werden, sofern sie mit \gls{Wort 1} markiert wurden.

Will man die übliche Indexergänzung "\toindex{<Indexeintrag>}" auch haben, bietet es sich an eine weitere bib-Datei jobname-autoindex.bib zu erstellen, und zwar mittels
latex
\newwrite\myoutfile
\immediate\openout\myoutfile=\jobname-autoindex.bib
und dann
\immediate\write\myoutfile{@index{neuer Indexeintrag}}

wobei Letzteres natürlich sinnvollerweise in einem neuen Kommando verschwinden sollte:
latex
%     \usepackage{xparse}
 
\NewDocumentCommand\toindex{s  m}{% \toindex* und  \toindex
\immediate\write\myoutfile{@index{#2}}% in Index und ...
\IfBooleanTF#1
  {}%          ... nicht hinschreiben
  {\gls{#2}}%  .... hinschreiben
}


MWE
latex
% Übersetzung (wegen Umlauten besser ‘lualatex’):
% arara: lualatex
% arara: lualatex
% arara: makeglossaries
% arara: bib2gls
% arara: lualatex
% arara: clean: { extensions: [acn, acr,alg, aux, glg, glo, gls, ist, out, slg, syg, syi, toc, idx, ind, log, ilg, glstex ] }
 
% Allgemeine Liste von Wörtern, die -sofern verwendet \gls{...}- im Index auftauchen:
\begin{filecontents*}[overwrite]{\jobname-index.bib}
@comment{Bei gleich immer Klammern: ={....} }
  @index{Webseite}
  @index{schreiben}
  @index{geschrieben,
    alias={schreiben}
  }
  @index{Standard}
  @index{Abkuerzung,name={Abkürzung},text={Abkürzung}}
  @index{Verwendung}
  @index{Form}
  @index{Unterschied}
  @index{Umlaut}
  @index{Berechnungen}
  @index{Ergebnis}
  @index{Zahl}
  @index{Wert, plural={Werte}}
\end{filecontents*}
 
% Liste von Wörtern, die erst durch Auszeichnung \toindex{...} im Index auftauchen:
\newwrite\myoutfile
\immediate\openout\myoutfile=\jobname-autoindex.bib
\immediate\write\myoutfile{@comment{Indizes mit toindex}} % schreiben der Datei sicherstellen
 
\documentclass[ngerman]{scrartcl} % scrreprt
%\usepackage[utf8]{inputenc} %Dateikodierung
%\usepackage{selinput}
%\SelectInputMappings{adieresis={ä},  germandbls={ß}}
%\usepackage[T1]{fontenc} % Aktiviert EC-Schriftarten
%\usepackage{textcomp} % Text-Companion-Symbols (z. B. \texteuro)
\usepackage{babel} % Deutsche Einstellungen
\usepackage{lmodern}
\usepackage{microtype}
\usepackage{xparse}
 
\NewDocumentCommand\toindex{s  m}{% \toindex* und  \toindex
\immediate\write\myoutfile{@index{#2}}% in Index und ...
\IfBooleanTF#1
  {}%               ... nicht hinschreiben
  {\gls{#2}}%  .... hinschreiben
}
 
\usepackage[
colorlinks=true, % zur Hervorhebung
pdfborder={0 0 0},
]{hyperref}% Vor glossaries-extra laden!
 
%\usepackage[ngerman]{translator}
%Paket laden
%\usepackage{makeidx}
\usepackage[%
record={alsoindex},
index,
stylemods={bookindex},
style=altlistgroup,
shortcuts,        % Abkürzungen für Befehle aktivieren
acronym,        %ein Abkürzungsverzeichnis erstellen
toc,                %Einträge im Inhaltsverzeichnis
section,          %im Inhaltsverzeichnis auf section-Ebene erscheinen
]{glossaries-extra}
 
%\glssetcategoryattribute{acronym}{glossdescfont}{textit}
%\glssetcategoryattribute{acronym}{glossnamefont}{textsf}
 
\GlsXtrLoadResources[src={\jobname-index, \jobname-autoindex},  type=index,]
 
\usepackage{glossary-mcols} % mehrspaltige Verzeichnisse
\usepackage{glossary-longbooktabs} % Tabellenverzeichnisse
 
 
% Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}
 
%Ein eigenes Symbolverzeichnis erstellen
\newglossary[slg]{symbolslist}{syi}{syg}{Symbolverzeichnis}
 
%Glossar-Befehle anschalten (muss nach \newglossary stehen)
%\makeglossaries
 
%Symbole ==================================
\newglossaryentry{symb:Pi}{type=symbolslist,
name=$\pi$,
description={Kreiszahl; Näherungswert: $\pi \approx 3.14$},
sort=pi
}
\newglossaryentry{symb:Alpha}{type=symbolslist,
name=$\alpha$,
description={irgendein Winkel.},
sort=alpha
}
\newglossaryentry{symb:Hamilton}{type=symbolslist,
name=$\hat{H}$,
description={Hamilton-Operator.},
sort=hamilton
}
%Abkürzungen ===============================
\newacronym{bzw}{bzw.}{beziehungsweise}
\newacronym{bspw}{bspw.}{beispielsweise}
\newacronym{oa}{o.ä.}{oder ähnliche(r, s)}
\newacronym{MS}{MS}{Microsoft}
\newacronym{CD}{CD}{Compact Disc}
% Glossareinträge ==============================
\newacronym{HTML}{HTML}{\glslink{glos:HTML}{Hypertext Markup Language}}
\newglossaryentry{glos:HTML}{
name=HTML,
description={Die Hypertext Markup Language (englisch für \emph{Hypertext-Auszeichnungssprache}), kurz \acs{HTML}, ist eine textbasierte Auszeichnungssprache zur Strukturierung elektronischer Dokumente wie Texte mit Hyperlinks, Bildern und anderen Inhalten.}
}
\newglossaryentry{glos:AntwD}{name=Antwortdatei, description={Informationen zum
Installieren einer Anwendung oder des Betriebssystems.}
}
 
\makeglossaries
 
\begin{document}
\glsaddallunused % optional: auch ungenutze Einträge anzeigen
 
\tableofcontents{}
 
\section{Abkürzungen und Glossareinträge}
Die \gls{Webseite} ist mit der \gls{HTML} \gls{geschrieben}. \gls{HTML} ist dafür ein üblicher \gls{Standard}. \par
Die \gls{Abkuerzung} \acs{bzw} soll auch bei erstmaliger \gls{Verwendung} abgekürzt aufgeführt werden, also nicht ausgeschrieben \glsdesc{bzw} und auch nicht in der \gls{Form} \gls{bzw}. \par
\Gls{bspw} soll am hier groß gesetzt werden, im \gls{Unterschied} zu \gls{bspw} \par
Die \gls{Abkuerzung} \gls{oa} enthält einen \gls{Umlaut}.
 
\section{Symbole}
\gls{Berechnungen} mit \gls{symb:Pi} ergeben stets ein ungenaues
\gls{Ergebnis},
denn \glslink{symb:Pi}{die Kreiszahl} ist eine irrationale \gls{Zahl}. Weiterhin gibt es noch \gls{symb:Alpha} und \gls{symb:Hamilton}.
 
\section{Indexeinträge, die erst im Dokument ergänzt wurden}
Kommt in den Index und wird hingeschrieben: \toindex{bar}.  
 
Kommt in den Index und wird nicht hingeschrieben: \toindex*{foo} \par
Aber kann nun verwendet werden: \gls{foo}.
 
\toindex*{Gans, plural={Gänse}}  Eine \gls{Gans}, aber  viele \glspl{Gans}.
% Verzeichnisse ==============================
\newpage
%Glossar ausgeben
\printglossary[nonumberlist,
style=altlist,title=Glossar]
%
%Abkürzungen ausgeben
\renewcommand{\glsmcols}{3}
%\setglossarystyle{mcolindexspannav} % so globaler Style
\printglossary[nonumberlist,
type=\acronymtype,  
style={mcolindexspannav}, % so nur lokaler Style
title=Abkürzungsverzeichnis]
 
% Symbole ausgeben
\printglossary[nonumberlist,
type=symbolslist,
style=long-booktabs,
]
 
% Index ausgeben
\printunsrtglossary[type=index,style=bookindex,title=Stichwortverzeichnis]
\end{document}









Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.13, eingetragen 2020-04-20


Theoreme mit tcolorbox. | Index von tcolorbox. | Automatischer Index mit xparse.


· \newtcbtheorem[<init options>]{defi}{Definition}{<init options>}{<prefix for label>}
erzeugt (vgl. Handbuch) zwei Umgebungen
\begin{defi}[]{Meine Definition}{}
....
\end{defi}
und
\begin{defi*}[]{Meine Definition}{}
As written in the manual: not labeled and not listed in lists of theorems.
\end{defi*}

Ein Index kann mit tcolorbox in der Form
\begin{defi}[index=Indexeintrag]
hinzugefügt werden.

Soll also die Description "Meine Definition" automatisch in den Index wandern, könnte man via xparse so vorgehen:
\newtcbtheorem[<init options>]{defiinner}{Definition}{<options>}{def}
 
\NewDocumentEnvironment { defi } { s O{} m m }
{\IfBooleanTF{#1} 
   {\begin{defiinner}[#2]{#3}{#4}} 
   {\begin{defiinner}[#2, index={#3}]{#3}{#4}} 
} {\end{defiinner}}
 % definner has to exist!
mit dem Vorteil, dass die gesternte Version \begin{defi}* ... wahlweise keinen Index einträgt.

Allerdings hätte man hier die Probleme:
 - die gesternte Version von tcolorbox  \begin{defi*} ... ist nicht berücksichtigt
 - man müsste für jede gewünschte Umgebung (defi, satz, ...) eine solche xparse-Umgebung anlegen.


· Es bietet sich also an, diese Umgebungen vermittelst eines neuen Kommandos zu erzeugen:

% Theorems with automatical Index
%
% \newtcbtheoremautoindex[<init options>]{<name>}{<display name>}{<options>}{<prefix (label)>}
% 
% <Description> to Index
% \begin{defi}[<Options>]{<Description>}{<label>} <content>\end{defi} 
%
% <Description> not to Index
% \begin{defi}*[<Options>]{<Description>}{<label>} <content>\end{defi} 
% 
% Not labeled and not listed in lists of theorems, no Index:
% \begin{defi*}[<Options>]{<Description>} <content> \end{defi*} 
%
\NewDocumentCommand\newtcbtheoremautoindex{ O{} m  m m m }{%%
\newtcbtheorem[#1]{#2inner}{#3}{#4}{#5}%
\NewDocumentEnvironment { #2 } { s O{} m m }
{\IfBooleanTF{##1} 
   {\begin{#2inner}[##2]{##3}{##4}}% not to index 
   {\begin{#2inner}[##2, index={##3}]{##3}{##4}}% to index  
} {\end{#2inner}}
% starred version (not labeled and not listed in lists of theorems):
\NewDocumentEnvironment { #2* } { O{} m }
   {\begin{#2inner*}[##1]{##2}}% (and no index as well)
   {\end{#2inner*}}
}%%
 
\newtcbtheoremautoindex[]{defi}{Definition}{}{def}
\newtcbtheoremautoindex[]{satz}{Satz}{}{th}

womit man nun folgende Umgebungen hat




MWE
latex
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
 
\documentclass{scrartcl}
\usepackage{makeidx}
    \makeindex
\usepackage{xparse}
 
\usepackage[most]{tcolorbox}
 
% Theorems with automatical Index
%
% \newtcbtheoremautoindex[<init options>]{<name>}{<display name>}{<options>}{<prefix (label)>}
% 
% <Description> to Index
% \begin{defi}[<Options>]{<Description>}{<label>} <content>\end{defi} 
%
% <Description> not to Index
% \begin{defi}*[<Options>]{<Description>}{<label>} <content>\end{defi} 
% 
% Not labeled and not listed in lists of theorems, no Index:
% \begin{defi*}[<Options>]{<Description>} <content> \end{defi*} 
%
\NewDocumentCommand\newtcbtheoremautoindex{ O{} m  m m m }{%%
\newtcbtheorem[#1]{#2inner}{#3}{#4}{#5}%
\NewDocumentEnvironment { #2 } { s O{} m m }
{\IfBooleanTF{##1} 
   {\begin{#2inner}[##2]{##3}{##4}}% not to index 
   {\begin{#2inner}[##2, index={##3}]{##3}{##4}}% to index  
} {\end{#2inner}}
% starred version (not labeled and not listed in lists of theorems):
\NewDocumentEnvironment { #2* } { O{} m }
   {\begin{#2inner*}[##1]{##2}}% (and no index as well)
   {\end{#2inner*}}
}%%
 
\newtcbtheoremautoindex[]{defi}{Definition}{}{def}
 
\begin{document}
\section{The three kinds of indexing}
\begin{defi}{\texttt{\textbackslash begin\{defi\}}~\dots~ \texttt{\textbackslash end\{defi\}}}{}
To index. 
\end{defi}
 
\begin{defi}*{\texttt{\textbackslash begin\{defi\}*}~\dots~ \texttt{\textbackslash end\{defi\}}}{}
Not to index. 
\end{defi}
 
\begin{defi*}{\texttt{\textbackslash begin\{defi*\}}~\dots~ \texttt{\textbackslash end\{defi*\}}}
As written in the manual: not labeled and not listed in lists of theorems, and no index as well. 
\end{defi*}
 
 
\begin{defi}[colback=red]{Another Definitition to Index}{}
Using the optional argument. 
\end{defi}
 
\printindex
\end{document}


· Auf den präferenzierten Stil angewendet:

Verbesserungen ggü. #11:
- Die Theoremumgebungen sind nun eine 3/4 Leerzeile ggü. restlichem Text abgesetzt.
- Die Theoremumgebungen sind nicht eingerückt. Die satz-Umgebung ist ggü. der leftbar um 4pt. eingerückt. Die bsp-Umgebung hat Ränder von 4pt.




MWE
latex
% arara: pdflatex
% arara: makeindex
% arara: pdflatex
 
\documentclass{scrartcl}
\usepackage{makeidx}
    \makeindex
\usepackage{xparse}
 
\usepackage[most]{tcolorbox}
\tcbset{
commonstyle/.style={
theorem style=plain, % no break after title
fonttitle=\bfseries,
%fontupper=\itshape, % in “body”
separator sign none,
description delimiters parenthesis,
description font=\normalfont, 
terminator sign={.\hspace{1em}},
% Box-Einstellungen
enhanced,arc=0mm,outer arc=0mm,
boxrule=0mm,toprule=0mm,bottomrule=0mm,left=0mm,right=0mm,
titlerule=0mm,toptitle=0mm,bottomtitle=0mm,top=0mm,
colback=white,coltitle=black,
%
boxsep=0pt, bottom=0pt,  
before skip=0.75\baselineskip,  % Theorem-Umgebungen 3/4 Leerzeile 
after skip=0.75\baselineskip,  % absetzen
},
leftbar/.style={colframe=black, left=4pt, leftrule=1.75pt},
}
 
% Theorems
\newtcbtheorem[number within=none]{bsp}{Beispiel}{commonstyle,
colback=lightgray!33, boxsep=4pt,
terminator sign colon}{bsp}
 
% Theorems with automatical Index
%
% \newtcbtheoremindex[<init options>]{<name>}{<display name>}{<options>}{<prefix (label)>}
% 
% <Description> to Index
% \begin{defi}[<Options>]{<Description>}{<label>} <content>\end{defi} 
%
% <Description> not to Index
% \begin{defi}*[<Options>]{<Description>}{<label>} <content>\end{defi} 
% 
% Not labeled and not listed in lists of theorems, no Index:
% \begin{defi*}[<Options>]{<Description>} <content> \end{defi*} 
%
\NewDocumentCommand\newtcbtheoremautoindex{ O{} m  m m m }{%%
\newtcbtheorem[#1]{#2inner}{#3}{#4}{#5}%
\NewDocumentEnvironment { #2 } { s O{} m m }
{\IfBooleanTF{##1} 
   {\begin{#2inner}[##2]{##3}{##4}}% not to index 
   {\begin{#2inner}[##2, index={##3}]{##3}{##4}}% to index  
} {\end{#2inner}}
% starred version (not labeled and not listed in lists of theorems):
\NewDocumentEnvironment { #2* } { O{} m }
   {\begin{#2inner*}[##1]{##2}}% (and no index as well)
   {\end{#2inner*}}
}%%
 
\newtcbtheoremautoindex[number within=section, list inside={mylist}]{defi}{Definition}{commonstyle}{def}
\newtcbtheoremautoindex[use counter from=defiinner, list inside={mylist}]{satz}{Satz}{commonstyle, leftbar}{thm}
 
\usepackage{lipsum} % Dummy-Text
\begin{document}
\section{Theoreme mit tcolorbox}
\begin{defi}{Definition to Index}{}
\lipsum[66]
\end{defi}
\begin{bsp*}{Name des Beispiels}
Hier ein wichtiges Beispiel.
\end{bsp*}
 
\begin{defi}*{Definition not to Index}{}
\lipsum[66]
\end{defi}
 
\begin{defi*}{Definition not labeled and not listed in lists of theorems, and no index as well}
\lipsum[66]
\end{defi*}
 
\begin{satz}[index=Zusatzindex]{Ein Satz}{}
\lipsum[66]
\end{satz}
 
\lipsum[66]
\begin{satz}[]{Satz des Pythagoras}{label3}
$$a^2+b^2=c^2$$
\end{satz}
\lipsum[66]
\begin{bsp*}{}
\lipsum[66]
\end{bsp*}
 
 
\tcblistof[\addsec]{mylist}{Liste der Sätze und Definition}
 
\printindex
\end{document}







Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
MrTikZ
Aktiv Letzter Besuch: im letzten Monat
Dabei seit: 22.03.2020
Mitteilungen: 45
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.14, eingetragen 2020-04-22


Theoreme mit tcolorbox. | Index von glossaries-extras. | Automatischer Index mit xparse.


Wie in #12 erwähnt verlangt glossaries-extra.sty eine bib-Datei mit Inhalten des Typs
jobname-index.bib
  @index{Wort1}
  @index{Wort2}
...
womit ein einziges Wort (ohne Leerstellen) im Index eingetragen wird.

Sollen nun die Theorem-Notizen, üblicherweise meherer Wörter, im Index auftauchen, muss man sich in der Form
jobname-index.bib
  @index{Schlüsselwort, 
      name={Eintrag im Index}, 
        text={Anzeige bei Referenzierung mit \gls{Schlüsselwort} oder ähnlich}
        }
behelfen.

Der automatische Eintrag der Theorem-Notizen in eine (zusätzliche) Datei
jobname-aztoindex.bib kann in der in #12 vorgestellten Form geschehen.

Das o.g. Eintragsproblem kann mit Hilfe eines Platzhalter-Schlüsselwortes vorgenommen werden. Dieses unterscheidet sich von den anderen, indem man einen counter einsetzt.

Das folgende Minimalbeispiel erzeugt eine bib-Datei des Typs
jobname-autoindex.bib
@index{autoindexcounter1, name={anders eintragen},text={Definition to Index}}
@index{autoindexcounter2, name={Ein Satz},text={Ein Satz}}
@index{autoindexcounter3, name={Satz des Pythagoras},text={Satz des Pythagoras}}
....

Die vollständige xparse-Methode sieht nun so aus:
% Theorems with automatical Index
\newwrite\myoutfile
\immediate\openout\myoutfile=\jobname-autoindex.bib
\immediate\write\myoutfile{@comment{Theorem descriptions to index}} % schreiben der Datei sicherstellen
%
\newcounter{autoindexcounter}
%
\NewDocumentCommand\newtcbtheoremautoglossaries{ O{} m  m m m }{%%
\newtcbtheorem[#1]{#2inner}{#3}{#4}{#5}%
\NewDocumentEnvironment { #2 } { s O{} m m O{##3}}
{\IfBooleanTF{##1} 
   {\begin{#2inner}[##2]{##3}{##4}}% not to bib 
   {
   \stepcounter{autoindexcounter}
     \IfNoValueTF{##5}
     {\immediate\write\myoutfile{@index{autoindexcounter\theautoindexcounter, name={##3}}}%
     }
    {\immediate\write\myoutfile{@index{autoindexcounter\theautoindexcounter, name={##5},text={##3}}}%
     }
\begin{#2inner}[##2]{##3}{##4}%
\glslink{autoindexcounter\theautoindexcounter}{}%
}%
}% to bib  
{\end{#2inner}}
% starred version (not labeled and not listed in lists of theorems):
\NewDocumentEnvironment { #2* } { O{} m }
   {\begin{#2inner*}[##1]{##2}}% (and no index as well)
   {\end{#2inner*}}
}%%



MWE
latex
% Übersetzung (wegen Umlauten besser ‘lualatex’):
% arara: lualatex
% arara: lualatex
% arara: makeglossaries
% arara: bib2gls
% arara: lualatex
% arara: lualatex
% arara: cleanx: { extensions: [acn, acr,alg, aux, glg, glo, gls, ist, out, slg, syg, syi, toc, idx, ind, log, ilg, glstex, gz ] }
 
% Allgemeine Liste von Wörtern, die -sofern verwendet \gls{...}- im Index auftauchen:
\begin{filecontents*}[overwrite]{\jobname-index.bib}
@comment{Bei gleich immer Klammern: ={....} }
  @index{Wort}
  @index{geschrieben,alias={schreiben}}
  @index{Abkuerzung,name={Abkürzung},text={Abkürzung}}
  @index{Wert, plural={Werte}}
\end{filecontents*}
 
 
\documentclass[paper=a4]{scrartcl}
\usepackage{lipsum} % Dummy-Text
\usepackage{xparse}
\usepackage[most]{tcolorbox}
 
% tcolobox styles
\tcbset{
commonstyle/.style={
theorem style=plain, % no break after title
%theorem style=break, % break after title
fonttitle=\bfseries,
%fontupper=\itshape, % in “body”
separator sign none,
description delimiters parenthesis,
description font=\normalfont, 
terminator sign={.\hspace{1em}},
% Box-Einstellungen
enhanced,arc=0mm,outer arc=0mm,
boxrule=0mm,toprule=0mm,bottomrule=0mm,left=0mm,right=0mm,
titlerule=0mm,toptitle=0mm,bottomtitle=0mm,top=0mm,
colback=white,coltitle=black,
%
boxsep=0pt, bottom=0pt,  
before skip=0.75\baselineskip,  % Theorem-Umgebungen 3/4 Leerzeile 
after skip=0.75\baselineskip,  % absetzen
},
leftbar/.style={colframe=black, left=4pt, leftrule=1.75pt},
}
 
% Theorems
\newtcbtheorem[number within=none]{bsp}{Beispiel}{commonstyle,
colback=lightgray!33, boxsep=4pt,
terminator sign colon}{bsp}
 
% Theorems with automatical Index
\newwrite\myoutfile
\immediate\openout\myoutfile=\jobname-autoindex.bib
\immediate\write\myoutfile{@comment{Theorem descriptions to index}} % schreiben der Datei sicherstellen
%
\newcounter{autoindexcounter}
%
\NewDocumentCommand\newtcbtheoremautoglossaries{ O{} m  m m m }{%%
\newtcbtheorem[#1]{#2inner}{#3}{#4}{#5}%
\NewDocumentEnvironment { #2 } { s O{} m m O{##3}}
{\IfBooleanTF{##1} 
   {\begin{#2inner}[##2]{##3}{##4}}% not to bib 
   {
   \stepcounter{autoindexcounter}
     \IfNoValueTF{##5}
     {\immediate\write\myoutfile{@index{autoindexcounter\theautoindexcounter, name={##3}}}%
     }
    {\immediate\write\myoutfile{@index{autoindexcounter\theautoindexcounter, name={##5},text={##3}}}%
     }
\begin{#2inner}[##2]{##3}{##4}%
\glslink{autoindexcounter\theautoindexcounter}{}%
}%
}% to bib  
{\end{#2inner}}
% starred version (not labeled and not listed in lists of theorems):
\NewDocumentEnvironment { #2* } { O{} m }
   {\begin{#2inner*}[##1]{##2}}% (and no index as well)
   {\end{#2inner*}}
}%%
 
\newtcbtheoremautoglossaries[number within=section, list inside={mylist}]{defi}{Definition}{commonstyle}{def}
\newtcbtheoremautoglossaries[use counter from=defiinner, list inside={mylist}]{satz}{Satz}{commonstyle, leftbar}{thm}
 
% Glossaries =================================
\usepackage[
colorlinks=true, % zur Hervorhebung
pdfborder={0 0 0},
]{hyperref}% Vor glossaries-extra laden!
 
%\usepackage[ngerman]{translator}
%Paket laden
%\usepackage{makeidx}
\usepackage[%
record={alsoindex},
index,
stylemods={bookindex},
style=altlistgroup,
shortcuts,        % Abkürzungen für Befehle aktivieren
acronym,        %ein Abkürzungsverzeichnis erstellen
toc,                %Einträge im Inhaltsverzeichnis
section,          %im Inhaltsverzeichnis auf section-Ebene erscheinen
]{glossaries-extra}
 
%\glssetcategoryattribute{acronym}{glossdescfont}{textit}
%\glssetcategoryattribute{acronym}{glossnamefont}{textsf}
 
\GlsXtrLoadResources[src={\jobname-index, \jobname-autoindex},  type=index,]
 
\usepackage{glossary-mcols} % mehrspaltige Verzeichnisse
\usepackage{glossary-longbooktabs} % Tabellenverzeichnisse
 
 
% Den Punkt am Ende jeder Beschreibung deaktivieren
\renewcommand*{\glspostdescription}{}
 
 
 
\makeglossaries
 
\begin{document}
\glsaddallunused % optional: auch ungenutze Einträge anzeigen
 
% \tableofcontents{}
 
\section{Theoreme mit tcolorbox, Index mit glossaries-extra}
\begin{satz}{Satz to Index}{} 
 \newline \ttfamily 
\textbackslash begin\{satz\}[Optionen]\{Notiz\}\{th\}\\
\dots \\
\textbackslash end\{satz\}
\end{satz}
 
\begin{satz}{Satz to Index, aber anders im Index eingetragen}{}[anderer Eintrag im Index] \newline \ttfamily 
\textbackslash begin\{satz\}[Optionen]\{Notiz hier\}\{th\}[Notiz im Index]\\
\dots \\
\textbackslash end\{satz\}
\end{satz}
 
\begin{satz}*{Satz not to Index}{}  \newline \ttfamily 
\textbackslash begin\{satz\}*[Optionen]\{Notiz\}\{th\}\\
\dots \\
\textbackslash end\{satz\}
\end{satz}
 
\begin{satz*}{Satz not labeled and not listed in lists of theorems, and no index as well}  \newline \ttfamily 
\textbackslash begin\{satz*\}[Optionen]\{Notiz\}\\
\dots \\
\textbackslash end\{satz*\}
\end{satz*}
 
\begin{bsp*}{Name des Beispiels}
Ein Indexeintrag: \gls{Wort}
\end{bsp*}
 
\begin{defi}{Eine Definition}{}
\lipsum[66]
\end{defi}
 
\begin{satz}{Ein Satz}{}
\lipsum[66]
\end{satz}
\lipsum[66]
 
\newpage
\begin{satz}[]{Satz des Pythagoras}{label3}
$$a^2+b^2=c^2$$
\end{satz}
\lipsum[66]
 
\tcblistof[\addsec]{mylist}{Liste der Sätze und Definition}
 
% Index ausgeben
\printunsrtglossary[type=index,style=bookindex,title=Stichwortverzeichnis]
\end{document}








Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
RomyMariee wird per Mail über neue Antworten informiert.
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]