Seite 1 von 1

Abkürzung bei ntheorem

Verfasst: Mi 10. Jun 2020, 19:29
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.


Re: Abkürzung bei ntheorem

Verfasst: Mi 10. Jun 2020, 22:51
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:

\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}

Re: Abkürzung bei ntheorem

Verfasst: Do 11. Jun 2020, 14:26
von Gast

Danke, das klappt hervorragend.

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

Es gilt: $...$. 

einbaue, das ebenfalls klappt. Idee dafür?


Re: Abkürzung bei ntheorem

Verfasst: Do 11. Jun 2020, 16:21
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.

\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}