Hallo zusammen,

ich verwende aktuell u.a. die folgende Umgebungen mit amsthm:

Open in Online-Editor
\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8]{inputenc}                 
\usepackage{microtype}                              
\usepackage{needspace}
\usepackage{enumitem}
\usepackage{framed}
\usepackage{xcolor}

\usepackage{amsthm}

\newlength{\internalindent}
\setlength{\internalindent}     
    {.5cm}

\definecolor{def_color}         {HTML}{194D6C}
\definecolor{def_shade_color}       {HTML}{C7DDF2}
\definecolor{thm_color}         {HTML}{2F2512}
\definecolor{thm_shade_color}       {HTML}{FEEAC9}

\newtheoremstyle{thmstyle}
    {\internalindent}
    {\internalindent}{
        \addtolength{\leftskip} {\internalindent}                    
        \addtolength{\rightskip}{\internalindent}
    }
    {0pt}{}{}
    {\newline}
    {\textcolor{thm_color}{\textbf{#1} #2} \quad  \textbf{#3}}
\theoremstyle{thmstyle}  
\newtheorem*{tmp_satz*}{Satz}
\newtheorem*{tmp_def*}{Definition}
\newenvironment{satz}[1][]{
    \setlist            {rightmargin=\internalindent}
    \setitemize     {leftmargin=\leftmargin}
    \setenumerate   {leftmargin=\leftmargin+\internalindent}
    \definecolor{shadecolor}{named}{thm_shade_color}
    \needspace{4\baselineskip}
    \begin{shaded}\begin{tmp_satz*}[#1]
}{
    \end{tmp_satz*}
    \end{shaded}
    \noindent\ignorespacesafterend
}
\newenvironment{definition}[1][]{   
    \setlist            {rightmargin=\internalindent}
    \setitemize     {leftmargin=\leftmargin}
    \setenumerate   {leftmargin=\leftmargin+\internalindent}
    \definecolor{shadecolor}{named}{def_shade_color}
    \needspace{4\baselineskip}
    \begin{shaded}\begin{tmp_def*}[#1]
}{
    \end{tmp_def*}
    \end{shaded}
    \noindent\ignorespacesafterend
}

\begin{document}
\begin{satz}
Satz ohne Name
\end{satz}
\begin{satz}[Name]
Satz mit Name
\end{satz}
\end{document}

Das liefert mir bisher wie gewünscht unnummerierte Definitionen und Sätze der Form

Open in Online-Editor
Definition
Hier steht abgesetzt die Definition auf farbigem Hintergrund

Will ich nun die Definition mit einem konkreten Namen versehen um z.B. den Logarithmus zu definieren, setze ich das "Logarithmus" als optionales Argument: begin{definition}[Logarithmus] ... end{definition} was in der Ausgabe zu

Open in Online-Editor
Definition Logarithmus
...

führt. Ist es möglich, dass bei der Angabe des optionalen Arguments das "Definition" unterdrückt und stattdessen nur "Logarithmus" da steht, d.h. die Ausgabe so aussieht?

Open in Online-Editor
Logarithmus
...

Steht kein optinales Argument da, soll weiterhin Definition da stehen. Analog soll das auch für die Satz-Umgebung gelten.

gefragt 30 Mai '16, 15:57

Hirshy's gravatar image

Hirshy
73133545
Akzeptiert-Rate: 0%

bearbeitet 30 Mai '16, 16:54

Du bist nun schon einige Zeit dabei und hast mehrere Fragen gestellt. Man könnte erwarten, dass du mittlerweile weißt, wie man ein Minimalbeispiel erstellt.

(30 Mai '16, 16:34) Henri

@Henri eigentlich hatte ich ein vollständiges Minimalbeispiel erstellt. :/ Ich hatte kurz vor dem abschicken Probleme mit der Codeformatierung und habe die Umgebungen noch einmal neu in das Textfeld kopiert, da ist der Rest dann anscheinend verloren gegangen. Ich editier es noch einmal rein.

(30 Mai '16, 16:44) Hirshy

Ich habe einfach in den \newtheoremstyle einen Check eingefügt, ob der Zusatztitel leer ist.

Open in Online-Editor
{\textcolor{thm_color}{\textbf{#1} #2} \quad  \textbf{#3}}

wird zu

Open in Online-Editor
{\if\relax\detokenize{#3}\relax
   \textcolor{thm_color}{\textbf{#1} #2}%
 \else
   \textbf{#3}%
 \fi}

Den \quad Abstand brauchen wir nicht mehr, da ja immer nur der eine Titel angezeigt wird.

Open in Online-Editor
\documentclass{article}
\usepackage{amsthm}
\usepackage{enumitem}
\usepackage{framed}
\usepackage{needspace}
\usepackage{xcolor}
\newlength\internalindent
\setlength\internalindent{1em}
\definecolor{def_color}         {HTML}{194D6C}
\definecolor{def_shade_color}       {HTML}{C7DDF2}
\definecolor{thm_color}         {HTML}{2F2512}
\definecolor{thm_shade_color}       {HTML}{FEEAC9}

\newtheoremstyle{thmstyle}
    {\internalindent}
    {\internalindent}{
        \addtolength{\leftskip} {\internalindent}                    
        \addtolength{\rightskip}{\internalindent}
    }
    {0pt}{}{}
    {\newline}
    {\if\relax\detokenize{#3}\relax
       \textcolor{thm_color}{\textbf{#1} #2}%
     \else
       \textbf{#3}%
     \fi}
\theoremstyle{thmstyle}  
\newtheorem*{tmp_satz*}{Satz}
\newtheorem*{tmp_def*}{Definition}
\newenvironment{satz}[1][]{
    \setlist            {rightmargin=\internalindent}
    \setitemize     {leftmargin=\leftmargin}
    \setenumerate   {leftmargin=\leftmargin+\internalindent}
    \definecolor{shadecolor}{named}{thm_shade_color}
    \needspace{4\baselineskip}
    \begin{shaded}\begin{tmp_satz*}[#1]
}{
    \end{tmp_satz*}
    \end{shaded}
    \noindent\ignorespacesafterend
}
\newenvironment{definition}[1][]{   
    \setlist            {rightmargin=\internalindent}
    \setitemize     {leftmargin=\leftmargin}
    \setenumerate   {leftmargin=\leftmargin+\internalindent}
    \definecolor{shadecolor}{named}{def_shade_color}
    \needspace{4\baselineskip}
    \begin{shaded}\begin{tmp_def*}[#1]
}{
    \end{tmp_def*}
    \end{shaded}
    \noindent\ignorespacesafterend
}
\begin{document}
\begin{definition}
  Der Logarithmus $\log$ ist die Umkehrfunktion der
  Exponentialfunktion $\exp$.
\end{definition}

\begin{definition}[Logarithmus]
  Der Logarithmus $\log$ ist die Umkehrfunktion der
  Exponentialfunktion $\exp$.
\end{definition}

\begin{satz}
  In einem rechtwinkligen Dreieck entspricht das Quadrat der
  l\"angsten Seite der Summe der Quadrate der beiden k\"urzeren.
  \[ a^2 + b^2 = c^2 \]
\end{satz}

\begin{satz}[Satz von Pythagoras]
  In einem rechtwinkligen Dreieck entspricht das Quadrat der
  l\"angsten Seite der Summe der Quadrate der beiden k\"urzeren.
  \[ a^2 + b^2 = c^2 \]
\end{satz}
\end{document}

alt text

Permanenter link

beantwortet 30 Mai '16, 16:32

Henri's gravatar image

Henri
15.7k133943
Akzeptiert-Rate: 46%

bearbeitet 30 Mai '16, 23:06

Nicht, dass es sehr wahrscheinlich ist, dass man hier \relax als Zusatztitel eingibt, etwas sicherer wäre \if\relax\ifx\relax\detokenize{#3}\relax … \fi dennoch :)

(30 Mai '16, 19:25) cgnieder

@Clemens Danke! Bei dir scheint aber irgendwie ein \ifx\relax zuviel zu sein. Für alle anderen, richtig ist: \if\relax\detokenize{#3}\relax … \fi

(30 Mai '16, 23:08) Henri

Hoppla. Ja, ein Copy&Paste-Fehler…

(30 Mai '16, 23:10) cgnieder
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×16
×7

gestellte Frage: 30 Mai '16, 15:57

Frage wurde gesehen: 5,140 Mal

zuletzt geändert: 30 Mai '16, 23:10