Abkürzung bei ntheorem

Formelsatz für Mathematik, Naturwissenschaften und Technik


Gast

Abkürzung bei ntheorem

Beitrag von Gast »

[texdoc]
\documentclass[a4paper,12pt]{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[hidelinks]{hyperref}
\usepackage[thref,hyperref]{ntheorem}
\usepackage{amsmath}

\begin{document}

\pagenumbering{Roman}
\setcounter{page}{1}

\newtheorem{defi}{Definition}[section]
\newtheorem{satz}[defi]{Satz}
\newtheorem{kor}[defi]{Korollar}

\section{Kapitel}
\begin{defi}\label{def1}
Inhalt...
\end{defi}
\begin{satz}\label{satz1}
Inhalt...
\end{satz}
\begin{kor}\label{kor1}
Inhalt...
\end{kor}

\subsection{Ist-Zustand}
\begin{align*}
\overset{\textrm{\thref{def1}}}{=} \\
\overset{\textrm{\thref{satz1}}}{=}\\
\overset{\textrm{\thref{kor1}}}{=}
\end{align*}

\subsection{Soll-Zustand}
\begin{align*}
\overset{\textrm{Def.}~\ref{def1}}{=} \\
\overset{\textrm{Satz}~\ref{satz1}}{=} \\
\overset{\textrm{Kor.}~\ref{kor1}}{=} \\
\end{align*}

\end{document}
[/texdoc]

Besteht die Möglichkeit, vielleicht über einen neuen Command auch thref mit Abkürzungen zu nutzen. Also dass im Fließtext weiterhin "Definition 1.1" steht, aber in einer Formel "Def. 1.1"? Und das halt automatisch für Definition, Korollar, usw.


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2159
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Abkürzung bei ntheorem

Beitrag von Bartman »

Teste bitte mit der Vorschau vor dem Absenden Deines Beitrags, ob der gewählte BBCode auch zu der erwarteten Ausgabe führt.

Mein Vorschlag benutzt cleveref:

Code: Alles auswählen

\documentclass[fontsize=12pt,ngerman]{scrartcl}
\usepackage[T1]{fontenc}% https://texwelt.de/fragen/5537
\usepackage{lmodern}
\usepackage{babel}
\usepackage[hyperref]{ntheorem}
\usepackage{mathtools}% lädt amsmath
\usepackage{etoolbox}% für \AtBeginEnvironment
\usepackage[hidelinks]{hyperref}
\usepackage[capitalize,nameinlink]{cleveref}

\newtheorem{defi}{Definition}[section]
\newtheorem{satz}[defi]{Satz}
\newtheorem{kor}[defi]{Korollar}

\AtBeginEnvironment{align*}{
    \crefname{defi}{\textrm{Def.}}{\textrm{Def.}}
    \crefname{satz}{\textrm{Satz}}{\textrm{Satz}}
    \crefname{kor}{\textrm{Kor.}}{\textrm{Kor.}}
}

\begin{document}
% Lies die Erklärung zu dem Befehl 
% im Abschnitt 3.12. "Kopf und Fuß bei vor definierten Seitenstilen"
% in der KOMA-Script-Anleitung
\pagenumbering{Roman}
%\setcounter{page}{1}

\section{Abschnitt}
\begin{defi}\label{def1}
Inhalt~\dots
\end{defi}
\begin{satz}\label{satz1}
Inhalt~\dots
\end{satz}
\begin{kor}\label{kor1}
Inhalt~\dots
\end{kor}

\cref{def1}
\cref{satz1}
\cref{kor1}

\begin{align*}
\overset{\cref{def1}}{=}\\
\overset{\cref{satz1}}{=}\\
\overset{\cref{kor1}}{=}
\end{align*}

\cref{def1}
\cref{satz1}
\cref{kor1}
\end{document}

Gast

Re: Abkürzung bei ntheorem

Beitrag von Gast »

Danke, das klappt hervorragend.

Einziger Verbesserung, die ich noch vornehmen möchte, ist, dass im Fließtext, wo ich Formeln mit

Code: Alles auswählen

Es gilt: $...$. 

einbaue, das ebenfalls klappt. Idee dafür?


Bartman
Forum-Meister
Forum-Meister
Beiträge: 2159
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Re: Abkürzung bei ntheorem

Beitrag von Bartman »

In dem Fall lasse ich die Einschränkung auf die Umgebung weg und prüfe stattdessen, ob die Beschriftung des Querverweises im mathematischen Modus ausgegeben werden soll oder nicht. Die geschweiften Klammern (Gruppe) vor dem dafür nötigen Befehl \ifmmode im Argument des Befehls \crefname verhindern eine Fehlermeldung, die man ohne sie bekommt.

Die Ausgabe dürfte im Rahmen dieses Beispiels funktionieren. Weitere Fälle, die darüber hinaus gehen, habe ich nicht getestet.

Code: Alles auswählen

\documentclass[fontsize=12pt,ngerman]{scrartcl}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[hyperref]{ntheorem}
\usepackage{mathtools}% lädt amsmath
\usepackage[hidelinks]{hyperref}
\usepackage[capitalize,nameinlink]{cleveref}

\newtheorem{defi}{Definition}[section]
\newtheorem{satz}[defi]{Satz}
\newtheorem{kor}[defi]{Korollar}

\crefname{defi}
    {{}\ifmmode\textrm{Def.}\else Definition\fi}
    {\ifmmode\textrm{Def.}\else Definitionen\fi}
\crefname{satz}
    {{}\ifmmode\textrm{Satz}\else Satz\fi}
    {\ifmmode\textrm{Sätze}\else Sätze\fi}
\crefname{kor}
    {{}\ifmmode\textrm{Kor.}\else Korollar\fi}
    {\ifmmode\textrm{Kor.}\else Korollare\fi}

\begin{document}
\pagenumbering{Roman}
\section{Abschnitt}
\begin{defi}\label{def1}
Inhalt~\dots
\end{defi}
\begin{defi}\label{def2}
Inhalt~\dots
\end{defi}
\begin{satz}\label{satz1}
Inhalt~\dots
\end{satz}
\begin{kor}\label{kor1}
Inhalt~\dots
\end{kor}

\cref{def1}
\cref{satz1}
\cref{kor1}

\begin{align*}
\overset{\cref{def1}}{=}\\
\overset{\cref{satz1}}{=}\\
\overset{\cref{kor1}}{=}
\end{align*}

\cref{def1}
\cref{satz1}
\cref{kor1}

$\cref{def1}\ \cref{satz1}\ \cref{kor1}$
\end{document}

Antworten