Formelüberschrift und einrahmen

Formelsatz für Mathematik, Naturwissenschaften und Technik


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

Beitrag von Bartman »

Code: Alles auswählen

\documentclass[titlepage, listof=totoc, bibliography=totoc, ngerman]{scrartcl}
\usepackage[utf8]{inputenc}% bei aktueller TeX-Distribution obsolet
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=4cm, textwidth=15.0cm, top=3cm, bottom=2cm, headsep=1.0cm, foot=1.5cm]{geometry}
\usepackage[fleqn,intlimits]{amsmath}          
\setlength{\mathindent}{1cm}            
\usepackage{amsfonts}
\usepackage{amssymb}                  
\usepackage{mathtools}                  
\usepackage[fleqn,intlimits]{empheq}                     
\usepackage{tcolorbox}
\usepackage[locale=DE]{siunitx}

\tcbuselibrary{theorems, skins}

\newtcbtheorem[
   list inside=formula
]{formula}{Formel}{
   enhanced,
   coltitle=black,
   colback=white, 
   fonttitle=\bfseries,
   description font=\normalfont,
   boxrule=0.8pt,
   sharp corners,
%   ams align,
   ams nodisplayskip,% <- eingefügt
   attach boxed title to top center={yshift=4mm},
   boxed title style={colframe=white, colback=white}
}{formula}

\begin{document}
\tcblistof[\addsec]{formula}{Formelverzeichnis}
\listoffigures

\section{Abschnitt}
\begin{formula}{Test 1}{}
\begin{align}
   \text{Test 1} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
{\noindent\footnotesize Quelle: In Anlehnung an\par}
\begin{formula}{Test 2}{}
\begin{subequations}
\begin{align}
      y & =  d\\
       & =  cx+d\\
       & =  bx^{2}+cx+d\\
       & =  ax^{3}+bx^{2}+cx+d
\end{align}
\end{subequations}
\end{formula}
\begin{formula}{Test 3}{}
\begin{align}
   \text{Test 3} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
\end{document}
Das Einfügen von "Formel" vor der Nummer im Formelverzeichnis ist mir bislang nicht gelungen. Es könnte vielleicht irgendwie mit den Optionen auf Seite 99 der Dokumentation bewerkstelligt werden.
Zuletzt geändert von Bartman am Mi 5. Dez 2018, 00:04, insgesamt 1-mal geändert.

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

Beitrag von Bartman »

Das folgende Beispiel benutzt \newtcolorbox statt \newtcbtheorem. Die Einträge im Formelverzeichnis beginnen jetzt mit dem gewünschten Präfix.

Code: Alles auswählen

\documentclass[titlepage, listof=totoc, bibliography=totoc, ngerman]{scrartcl}
\usepackage[utf8]{inputenc}% bei aktueller TeX-Distribution obsolet
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=4cm, textwidth=15.0cm, top=3cm, bottom=2cm, headsep=1.0cm, foot=1.5cm]{geometry}
\usepackage[fleqn,intlimits]{amsmath}          
\setlength{\mathindent}{1cm}            
\usepackage{amsfonts}
\usepackage{amssymb}                  
\usepackage{mathtools}                  
\usepackage[fleqn,intlimits]{empheq}                     
\usepackage{tcolorbox}
\usepackage[locale=DE]{siunitx}

\tcbuselibrary{theorems, skins}

\newtcolorbox[
   list inside=formula,
   auto counter
]{formula}[2][]{
   enhanced,
   coltitle=black,
   colback=white, 
   fonttitle=\bfseries,
   boxrule=0.8pt,
   sharp corners,
   ams nodisplayskip,
   attach boxed title to top center={yshift=4mm},
   boxed title style={colframe=white, colback=white},
   title=Formel~\thetcbcounter:~\normalfont #2,
   list entry=Formel~\thetcbcounter:~#2,
   #1%
}

\begin{document}
\tcblistof[\addsec]{formula}{Formelverzeichnis}

\section{Abschnitt}
\begin{formula}{Test 1}
\begin{align}
   \text{Test 1} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
{\noindent\footnotesize Quelle: In Anlehnung an\par}
\begin{formula}{Test 2}
\begin{subequations}
\begin{align}
	y & =  d\\
	  & =  cx+d\\
	  & =  bx^{2}+cx+d\\
	  & =  ax^{3}+bx^{2}+cx+d
\end{align}
\end{subequations}
\end{formula}
\begin{formula}{Test 3}
\begin{align}
   \text{Test 3} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
\end{document}
Verweist Du im Text auf Deine Formeln?

Ruhe

Beitrag von Ruhe »

Ja, in der Art Formel \ref{x}.

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

Beitrag von Bartman »

Es mag vielleicht etwas übertrieben wirken, aber Du könntest Deine Querverweise auch so gestalten:

Code: Alles auswählen

\documentclass[titlepage, listof=totoc, bibliography=totoc, ngerman]{scrartcl}
\usepackage[utf8]{inputenc}% bei aktueller TeX-Distribution obsolet
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=4cm, textwidth=15.0cm, top=3cm, bottom=2cm, headsep=1.0cm, foot=1.5cm]{geometry}
\usepackage[fleqn,intlimits]{amsmath}          
\setlength{\mathindent}{1cm}            
\usepackage{amsfonts}
\usepackage{amssymb}                  
\usepackage{mathtools}                  
\usepackage[fleqn,intlimits]{empheq}                     
\usepackage{tcolorbox}
\usepackage[locale=DE]{siunitx}
\usepackage{varioref}
\usepackage{cleveref}
\usepackage{etoolbox}

\tcbuselibrary{theorems, skins}

\newtcolorbox[
   list inside=formula,
   auto counter,
   crefname={Formel}{Formeln}% <- eingefügt
]{formula}[2][]{
   enhanced,
   coltitle=black,
   colback=white, 
   fonttitle=\bfseries,
   boxrule=0.8pt,
   sharp corners,
   ams nodisplayskip,
   attach boxed title to top center={yshift=4mm},
   boxed title style={colframe=white, colback=white},
   title=Formel~\thetcbcounter:~\normalfont #2,
   list entry=Formel~\thetcbcounter:~#2,
   #1%
}

% Quelle: https://tex.stackexchange.com/questions/257100
\makeatletter
\patchcmd\cref@old@@vpageref
{\advance\@tempcnta-2}
{\advance\@tempcnta-2 }{\typeout{patch ok}}{\ERRORpatchFaild}
\makeatother

\begin{document}
\tcblistof[\addsec]{formula}{Formelverzeichnis}

\section{Abschnitt}
\vref{formula:test1}
\newpage
\begin{formula}[label=formula:test1]{Test 1}
\begin{align}
   \text{Test 1} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
{\noindent\footnotesize Quelle: In Anlehnung an\par}
\begin{formula}[label=formula:test2]{Test 2}
\begin{subequations}
\begin{align}
   y & =  d\\
     & =  cx+d\\
     & =  bx^{2}+cx+d\\
     & =  ax^{3}+bx^{2}+cx+d
\end{align}
\end{subequations}
\end{formula}
\vref{formula:test1}
\begin{formula}[label=formula:test3]{Test 3}
\begin{align}
   \text{Test 3} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
\newpage
\vref{formula:test2}
\newpage
\vref{formula:test3}
\end{document}

Ruhe

Beitrag von Ruhe »

Danke, das schaut sehr gut aus.
Die Idee mit dem Verwei gefällt mir sehr gut.
Leider läuft der Compiler (sowohl bei pdflatex als auch unter lualatex)bei mir damit nicht Fehlerfrei durch

Ich bekomme in der Zeile, wo {\advance\@tempcnta-2 }{\typeout{patch ok}}{\ERRORpatchFaild} steht die folgende Fehlermeldung
Undefined control sequence. ...a-2 }{\typeout{patch ok}}{\ERRORpatchFaild}

Zusätzlich habe ich noch ein weiteres Problem festgestellt.
Der Zeilenabstand in dem Formelverzeichnis ist eineinhalb fach und nicht einfach. Ich habe das bereit mal so versucht
\begin{singlespace}
\tcblistof[\addsec]{formula}{Formelverzeichnis}
\end{singlespace}
ha taber leider nicht funktioniert.
In einem Minimalspeispiel konnte ich diese Problem leider nicht darstellen.
Gibt es eine möglichkeit, wie ich den Zeilenabstand bei \tcblistof ändern kann?

Ruhe

Beitrag von Ruhe »

Ich bekomme in der Zeile, wo {\advance\@tempcnta-2 }{\typeout{patch ok}}{\ERRORpatchFaild} steht die folgende Fehlermeldung
Undefined control sequence. ...a-2 }{\typeout{patch ok}}{\ERRORpatchFaild}

Das Problem habe ich gerade selber gelöst. Habe die drei zusätzlichen Packete übersehen.

Ruhe

Beitrag von Ruhe »

Danke für die gute Hilfe

Ruhe

Beitrag von Ruhe »

Hallo zusammen,

ich habe jetzt leider noch ein weiteres Problem mit der vorgeschlagenen Lösung festgestellt.
Der Abstand zwischen Text und der Formelüberschrift/ bzw. Quellenangabe und nachfolgenden Text sollte in etwa gleich sein, wie bei einer Tabelle oder Abbildung.
Aktuelle habe ich versucht den Abstand zwischen Formel und Text mithilfe von \\[2em] versucht.

Ich habe das mal in dem folgendem Min Beispiel dargestellt.

Code: Alles auswählen

\documentclass[titlepage, listof=totoc, bibliography=totoc, ngerman]{scrartcl}
\usepackage[utf8]{inputenc}% bei aktueller TeX-Distribution obsolet
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=4cm, textwidth=15.0cm, top=3cm, bottom=2cm, headsep=1.0cm, foot=1.5cm]{geometry}
\usepackage[fleqn,intlimits]{amsmath}          
\setlength{\mathindent}{1cm}            
\usepackage{amsfonts}
\usepackage{amssymb}                  
\usepackage{mathtools}                  
\usepackage[fleqn,intlimits]{empheq}                     
\usepackage{tcolorbox}
\usepackage[locale=DE]{siunitx}
\usepackage{caption}
\usepackage{booktabs}
\usepackage{float}
%
\tcbuselibrary{theorems, skins}
\newtcolorbox[
   list inside=formula,
   auto counter
]{formula}[2][]{
   enhanced,
   coltitle=black,
   colback=white, 
   fonttitle=\bfseries,
   boxrule=0.8pt,
   sharp corners,
   ams nodisplayskip,
   attach boxed title to top center={yshift=4mm},
   boxed title style={colframe=white, colback=white},
   title=Formel~\thetcbcounter:~\normalfont #2,
   list entry=Formel~\thetcbcounter:~#2,
   #1%
}
%
\begin{document}
\tcblistof[\addsec]{formula}{Formelverzeichnis}
%
\section{Abschnitt}
%
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 
%
\begin{formula}{Test 1}
\begin{align}
   \text{Test 1} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
{\noindent\footnotesize Quelle: In Anlehnung an\\[2em]}
%
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 
%
\begin{table}[H]
\centering
\caption{Beispieltabelle 1}
\begin{tabular}[ht]{cc} 
\hline 
\textbf{Test 1} & \textbf{Test 2}\\ 
\hline\hline 
Test 1 & Test 2 \\ 
\end{tabular} \\ 
\label{tbl:beispieltabelle2} 
\footnotesize{Quelle: In Anlehnung an xyz}
\end{table} 
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 
% 
\end{document}
 

Gibt es eine Möglichkeit, wie man dies eleganter hinbekommt?

Vielen Dank für die Hilfe
[/code]

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

Beitrag von Bartman »

Mit Deiner Methode wird auch noch ein Zeilenumbruch erwirkt, der an der Stelle nicht gebraucht wird.

Stattdessen könntest Du einfach den Quelltext für die Quelle aus meinem Vorschlag um einen weiteren Befehl ergänzen.

Wenn Du z. B. eine Tabelle im Dokument nicht gleiten lassen möchtest, dann benutze keine Gleitumgebung. Als Ersatz könnten die von mir eingefügten Umgebungen dienen.

Code: Alles auswählen

\documentclass[
	titlepage, 
	listof=totoc, 
	bibliography=totoc, 
	ngerman, 
	captions=tableheading% <- geändert
]{scrartcl}
\usepackage{fontspec}
%\usepackage[utf8]{inputenc}% bei aktueller TeX-Distribution obsolet
%\usepackage[T1]{fontenc}
%\usepackage{lmodern}
\usepackage{babel}
\usepackage[left=4cm, textwidth=15.0cm, top=3cm, bottom=2cm, headsep=1.0cm, foot=1.5cm]{geometry}
\usepackage[fleqn,intlimits]{amsmath}          
\setlength{\mathindent}{1cm}            
\usepackage{amsfonts}
\usepackage{amssymb}                  
\usepackage{mathtools}                  
\usepackage[fleqn,intlimits]{empheq}                     
\usepackage{tcolorbox}
\usepackage[locale=DE]{siunitx}
\usepackage{booktabs}
%
\tcbuselibrary{theorems, skins}
\newtcolorbox[
   list inside=formula,
   auto counter
]{formula}[2][]{
   enhanced,
   coltitle=black,
   colback=white, 
   fonttitle=\bfseries,
   boxrule=0.8pt,
   sharp corners,
   ams nodisplayskip,
   attach boxed title to top center={yshift=4mm},
   boxed title style={colframe=white, colback=white},
   title=Formel~\thetcbcounter:~\normalfont #2,
   list entry=Formel~\thetcbcounter:~#2,
   #1%
}
%
\begin{document}
\tcblistof[\addsec]{formula}{Formelverzeichnis}
%
\section{Abschnitt}
%
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 

\begin{formula}{Test 1}
\begin{align}
   \text{Test 1} = \frac{\text{A}}{\text{B}} * \SI{100}{\percent}
\end{align}
\end{formula}
{\noindent\footnotesize Quelle: In Anlehnung an\par}
\bigskip

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata 

\begin{center}
\begin{minipage}{\textwidth}
	\centering
	\captionof{table}{Beispieltabelle 1}
	\label{tab:beispieltabelle2}
	\begin{tabular}{cc} 
	\toprule
	\textbf{Test 1} & \textbf{Test 2}\\ 
	\midrule
	Test 1 & Test 2 \\ 
	\bottomrule
	\end{tabular}  
	\par\bigskip
	\footnotesize Quelle: In Anlehnung an xyz
\end{minipage} 
\end{center}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
\end{document}
Hast Du von pdfLaTeX zu LuaLaTeX gewechselt oder nutzt Du weiterhin pdfLaTeX?
Zuletzt geändert von Bartman am Di 11. Dez 2018, 19:32, insgesamt 1-mal geändert.

Ruhe

Beitrag von Ruhe »

Ich musste zu LuaLaTeX wechseln, da ich Probleme mit der Anzahl der zu schreibenden Seiten bekommen habe.

Bei der alternative habe ich leider auch das Problem das der vertikale Abstand, von Text zu Überschrift (Tabelle, Formel, usw.) etwas zu klein ist.

Zusätzlich möchte ich den vertikalen Abstand von Text zu Überschrift in etwa auf die gleiche Größe, wie diese bei Verwendung der Gleitumgebungen verwendet werden, stellen.


Gibt es dafür eine Möglichkeit?

Vielen Dank für deine Hilfe

Antworten