aktuelle Seitenzahl zur Nummerierung nutzen

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: aktuelle Seitenzahl zur Nummerierung nutzen

von milo hirsch » Mi 11. Jan 2017, 09:33

Hallo,

bei der mir vorgegebenen Corporate-Design Vorlage scheint das maketitle bzw. thesistitle die Zähler zu manipulieren.
Entweder werden nur Seitenzahlen verwendet, aber keine weitere Unterscheidung. Oder es wird um eine Seite verschoben.
Wobei mit der Kombination aus #4 (absolute Seite) und \theperpage es bisher funktioniert.

Viele Grüße
Milo

von Gast » Di 10. Jan 2017, 17:27

#4 ist aber die absolute Seite. Das funktioniert also allenfalls in Deinem Fall aber nicht generell. Genau deshalb hatte ich \theabspage verwendet, das aber offenbar nicht expandibel ist.

Ich sehe auch nicht ganz, warum eine Titelseite ein Problem darstellen sollte:
\documentclass[a4paper,twoside,10pt]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{mwe}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{perpage}
\MakeSortedPerPage{equation}
\MakeSortedPerPage{figure}
\MakeSortedPerPage{table}


% for equation
\makeatletter
\renewcommand\theequation{\theperpage
  \expandafter\ifx\csname pp@max@equation@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@equation@\theperpage\endcsname>\z@
      .\alph{equation}%
  \fi\fi}%
   
   
% for figure
\renewcommand*{\thefigure}{%
  \theperpage
  \expandafter\ifx\csname pp@max@figure@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@figure@\theperpage\endcsname>\z@
    .\alph{figure}%
  \fi\fi
}
   
% for table
\renewcommand\thetable{%
  \theperpage
  \expandafter\ifx\csname pp@max@table@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@table@\theperpage\endcsname>\z@
      .\alph{table}%
  \fi\fi}%

\def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
    \expandafter\ifx\csname pp@max@#1@#3\endcsname\relax
      \expandafter\gdef\csname pp@max@#1@#3\endcsname{0}%
    \else
      \global\expandafter\xdef\csname pp@max@#1@#3\endcsname{\the\numexpr
        1+\csname pp@max@#1@#3\endcsname\relax}%
    \fi
    \def\next{#3}%
    \expandafter\ifx\csname pp@page@#1\endcsname\next
      \addtocounter{pp@a@#1}\@ne
    \else
      \setcounter{pp@a@#1}{\value{pp@r@#1}}%
    \fi
    \global\expandafter\let\csname pp@page@#1\endcsname\next
    \expandafter\pp@labeldef\expandafter
      {\number\value{pp@a@#1}}{#1}{#2}{#3}{#4}}}
\makeatother

\begin{document}
\title{Title}
\author{Author}
\maketitle

\begin{table}[htbp]
   \centering
   \begin{tabular}{ l c r }
     1 & 2 & 3 \\
     4 & 5 & 6 \\
     7 & 8 & 9 \\
   \end{tabular}
   \caption{beschreibung}
   \label{tab:2}
\end{table}
\begin{table}[htbp]
  \centering
  \begin{tabular}{ l c r }
    1 & 2 & 3 \\
    4 & 5 & 6 \\
    7 & 8 & 9 \\
  \end{tabular}
  \caption{beschreibung}
  \label{tab:1}
\end{table}
\begin{table}[htbp]
  \centering
  \begin{tabular}{ l c r }
    1 & 2 & 3 \\
    4 & 5 & 6 \\
    7 & 8 & 9 \\
  \end{tabular}
  \caption{beschreibung}
  \label{tab:3}
\end{table}
\newpage

\begin{table}[htbp]
   \centering
   \begin{tabular}{ l c r }
     1 & 2 & 3 \\
     4 & 5 & 6 \\
     7 & 8 & 9 \\
   \end{tabular}
   \caption{beschreibung}
   \label{tab:5}
\end{table}

\begin{figure}[htbp]
  \centering
  \includegraphics{example-image}
  \caption{beschreibung}
  \label{1}
\end{figure}
\begin{figure}[htbp]
  \centering
  \includegraphics{example-image-a}
  \caption{beschreibung}
  \label{2}
\end{figure}


Wir befinden uns auf Seite \label{p1}\pageref{p1} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p1} beginnen.

\begin{align}
a &= b \label{eq:a}
%b &= c
\end{align}


\newpage

Wir befinden uns auf Seite \label{p2}\pageref{p2} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p2} beginnen.

\begin{align}
d &= e  \label{eq:d}\\
f &= g  \label{eq:g}
\end{align}

Siehe \eqref{eq:a}, \eqref{eq:d} and \eqref{eq:g} and table~\ref{tab:2} and figure~\ref{1}.

\end{document}
Gibt nach drei LaTeX-Läufen bei mir das korrekte Ergebnis, wenn ich nicht irgend etwas übersehe.

von milo hirsch » Di 10. Jan 2017, 16:51

Hallo,

bei der Lösung gibt es Probleme bei der Verwendung der Titelseite. Die Unterscheidung ob eine Abbildung oder mehrere Abbildungen pro Seite auftreten verschiebt sich aufgrund der Titelseite um 1. Dementsprechend wird die Nummerierung falsch dargestellt.

Aber durch Verwendung von
\theperpage
im oberen Teil und
pp@max@#1@#4
anstatt
pp@max@#1@#3
im unteren Teil funktioniert es auch dann.
\MakeSortedPerPage{equation}
\MakeSortedPerPage{figure}
\MakeSortedPerPage{table}

% for equation
\makeatletter
\renewcommand\theequation{\theperpage
  \expandafter\ifx\csname pp@max@equation@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@equation@\theperpage\endcsname>\z@
      .\alph{equation}%
  \fi\fi}%
   
   
% for figure
\renewcommand*{\thefigure}{\theperpage
  \expandafter\ifx\csname pp@max@figure@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@figure@\theperpage\endcsname>\z@
    .\alph{figure}%
  \fi\fi
}
   
% for table
\renewcommand\thetable{\theperpage
  \expandafter\ifx\csname pp@max@table@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@table@\theperpage\endcsname>\z@
      .\alph{table}%
  \fi\fi}%

\def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
    \expandafter\ifx\csname pp@max@#1@#4\endcsname\relax
      \expandafter\gdef\csname pp@max@#1@#4\endcsname{0}%
    \else
      \global\expandafter\xdef\csname pp@max@#1@#4\endcsname{\the\numexpr
        1+\csname pp@max@#1@#4\endcsname\relax}%
    \fi
    \def\next{#3}%
    \expandafter\ifx\csname pp@page@#1\endcsname\next
      \addtocounter{pp@a@#1}\@ne
    \else
      \setcounter{pp@a@#1}{\value{pp@r@#1}}%
    \fi
    \global\expandafter\let\csname pp@page@#1\endcsname\next
    \expandafter\pp@labeldef\expandafter
      {\number\value{pp@a@#1}}{#1}{#2}{#3}{#4}}}
\makeatother
Vielen Dank für die Hilfe und Geduld.
Milo

von Gast » Di 10. Jan 2017, 14:38

Ich hatte befürchtet, dass \theabspage problematisch wird. Vielleicht geht es mit \theperpage besser:
\documentclass[a4paper,twoside,10pt]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{mwe}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{perpage}
\MakeSortedPerPage{equation}
\MakeSortedPerPage{figure}
\MakeSortedPerPage{table}


% for equation
\makeatletter
\renewcommand\theequation{\theperpage
  \expandafter\ifx\csname pp@max@equation@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@equation@\theperpage\endcsname>\z@
      .\alph{equation}%
  \fi\fi}%
   
   
% for figure
\renewcommand*{\thefigure}{%
  \theperpage
  \expandafter\ifx\csname pp@max@figure@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@figure@\theperpage\endcsname>\z@
    .\alph{figure}%
  \fi\fi
}
   
% for table
\renewcommand\thetable{%
  \theperpage
  \expandafter\ifx\csname pp@max@table@\theperpage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@table@\theperpage\endcsname>\z@
      .\alph{table}%
  \fi\fi}%

\def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
    \expandafter\ifx\csname pp@max@#1@#3\endcsname\relax
      \expandafter\gdef\csname pp@max@#1@#3\endcsname{0}%
    \else
      \global\expandafter\xdef\csname pp@max@#1@#3\endcsname{\the\numexpr
        1+\csname pp@max@#1@#3\endcsname\relax}%
    \fi
    \def\next{#3}%
    \expandafter\ifx\csname pp@page@#1\endcsname\next
      \addtocounter{pp@a@#1}\@ne
    \else
      \setcounter{pp@a@#1}{\value{pp@r@#1}}%
    \fi
    \global\expandafter\let\csname pp@page@#1\endcsname\next
    \expandafter\pp@labeldef\expandafter
      {\number\value{pp@a@#1}}{#1}{#2}{#3}{#4}}}
\makeatother

\begin{document}
\begin{table}[htbp]
   \centering
   \begin{tabular}{ l c r }
     1 & 2 & 3 \\
     4 & 5 & 6 \\
     7 & 8 & 9 \\
   \end{tabular}
   \caption{beschreibung}
   \label{tab:2}
\end{table}
\begin{table}[htbp]
  \centering
  \begin{tabular}{ l c r }
    1 & 2 & 3 \\
    4 & 5 & 6 \\
    7 & 8 & 9 \\
  \end{tabular}
  \caption{beschreibung}
  \label{tab:1}
\end{table}
\begin{table}[htbp]
  \centering
  \begin{tabular}{ l c r }
    1 & 2 & 3 \\
    4 & 5 & 6 \\
    7 & 8 & 9 \\
  \end{tabular}
  \caption{beschreibung}
  \label{tab:3}
\end{table}
\newpage

\begin{table}[htbp]
   \centering
   \begin{tabular}{ l c r }
     1 & 2 & 3 \\
     4 & 5 & 6 \\
     7 & 8 & 9 \\
   \end{tabular}
   \caption{beschreibung}
   \label{tab:5}
\end{table}

\begin{figure}[htbp]
  \centering
  \includegraphics{example-image}
  \caption{beschreibung}
  \label{1}
\end{figure}
\begin{figure}[htbp]
  \centering
  \includegraphics{example-image-a}
  \caption{beschreibung}
  \label{2}
\end{figure}


Wir befinden uns auf Seite \label{p1}\pageref{p1} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p1} beginnen.

\begin{align}
a &= b \label{eq:a}
%b &= c
\end{align}


\newpage

Wir befinden uns auf Seite \label{p2}\pageref{p2} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p2} beginnen.

\begin{align}
d &= e  \label{eq:d}\\
f &= g  \label{eq:g}
\end{align}

Siehe \eqref{eq:a}, \eqref{eq:d} and \eqref{eq:g} and table~\ref{tab:2} and figure~\ref{1}.

\end{document}
Die Warnung bleibt: Ich weiß nicht wirklich, was ich da tue, sondern habe schlicht mit internem Code von perpage und etwas Kreativität experimentiert.

von milo hirsch » Di 10. Jan 2017, 14:09

Hi,

ich habe versucht deine Vorlage für equations auf figure und table anzupassen.
\documentclass[a4paper,twoside,10pt]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{perpage}
\MakeSortedPerPage{equation}
\MakeSortedPerPage{figure}
\MakeSortedPerPage{table}


% for equation
\makeatletter
\renewcommand\theequation{\theperpage
  \expandafter\ifx\csname pp@max@equation@\theabspage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@equation@\theabspage\endcsname>\z@ 
      .\alph{equation}%
  \fi\fi}%
	
	
	% for figure
	\renewcommand\thefigure{\theperpage
  \expandafter\ifx\csname pp@max@figure@\theabspage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@figure@\theabspage\endcsname>\z@ 
      .\alph{figure}%
  \fi\fi}%
	
	
	% for table
		\renewcommand\thetable{\theperpage
  \expandafter\ifx\csname pp@max@table@\theabspage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@table@\theabspage\endcsname>\z@ 
      .\alph{table}%
  \fi\fi}%

\def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
    \expandafter\ifx\csname pp@max@#1@#4\endcsname\relax
      \expandafter\gdef\csname pp@max@#1@#4\endcsname{0}%
    \else
      \global\expandafter\xdef\csname pp@max@#1@#4\endcsname{\the\numexpr
        1+\csname pp@max@#1@#4\endcsname\relax}%
    \fi
    \def\next{#3}%
    \expandafter\ifx\csname pp@page@#1\endcsname\next
      \addtocounter{pp@a@#1}\@ne
    \else
      \setcounter{pp@a@#1}{\value{pp@r@#1}}%
    \fi
    \global\expandafter\let\csname pp@page@#1\endcsname\next
    \expandafter\pp@labeldef\expandafter
      {\number\value{pp@a@#1}}{#1}{#2}{#3}{#4}}}
\makeatother

\begin{document}
\begin{table}[htbp]
	\centering
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
	\caption{beschreibung}
	\label{tab:2}
\end{table}
\begin{table}[htbp]
	\centering
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
	\caption{beschreibung}
	\label{tab:1}
\end{table}
\begin{table}[htbp]
	\centering
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
	\caption{beschreibung}
	\label{tab:3}
\end{table}
\newpage

\begin{table}[htbp]
	\centering
\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}
	\caption{beschreibung}
	\label{tab:5}
\end{table}




\begin{figure}[htbp]
	\centering
		\includegraphics{}
	\caption{beschreibung}
	\label{1}
\end{figure}
\begin{figure}[htbp]
	\centering
		\includegraphics{}
	\caption{beschreibung}
	\label{2}
\end{figure}



Wir befinden uns auf Seite \label{p1}\pageref{p1} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p1} beginnen.

\begin{align}
a &= b \label{eq:a}
%b &= c
\end{align}


\newpage

Wir befinden uns auf Seite \label{p2}\pageref{p2} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p2} beginnen.

\begin{align}
d &= e  \label{eq:d}\\
f &= g  \label{eq:g}
\end{align}

Siehe \eqref{eq:a}, \eqref{eq:d} and \eqref{eq:g}.

\end{document}
Viele Grüße Milo

von Gast » Di 10. Jan 2017, 13:48

Was hast du denn gemacht?

von milo hirsch » Di 10. Jan 2017, 13:44

Hallo,

danke für die schnelle Antwort.
Was müsste ich daran änderen, damit das auch für figures funktioniert?
Dann krieg ich folgende Fehlermeldung: "! Missing \endcsname inserted" jeweils für die caption der figure.

Viele Grüße, milo

von Gast » Di 10. Jan 2017, 10:19

BTW: Warum verwendest du ansinew. Sowohl der Online-Editor als auch die Voreinstellung aller modernen LaTeX-Editoren verlangen nach utf8. Eigentlich verwenden nur noch total veraltete Vorlagen oder über Jahrzehnte gewachsene, alte Dokumente etwas anderes.

von Gast » Di 10. Jan 2017, 10:12

Ich kann nur hoffen, dass das mit der Verwendung von \theabspage so funktioniert. Ganz sicher bin ich mir leider nicht:
\documentclass[a4paper,twoside,10pt]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{perpage}
\MakeSortedPerPage{equation}

\makeatletter
\renewcommand\theequation{\theperpage
  \expandafter\ifx\csname pp@max@equation@\theabspage\endcsname\relax
  \else \expandafter\ifnum\csname pp@max@equation@\theabspage\endcsname>\z@ 
      .\alph{equation}%
  \fi\fi}%

\def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{%
    \expandafter\ifx\csname pp@max@#1@#4\endcsname\relax
      \expandafter\gdef\csname pp@max@#1@#4\endcsname{0}%
    \else
      \global\expandafter\xdef\csname pp@max@#1@#4\endcsname{\the\numexpr
        1+\csname pp@max@#1@#4\endcsname\relax}%
    \fi
    \def\next{#3}%
    \expandafter\ifx\csname pp@page@#1\endcsname\next
      \addtocounter{pp@a@#1}\@ne
    \else
      \setcounter{pp@a@#1}{\value{pp@r@#1}}%
    \fi
    \global\expandafter\let\csname pp@page@#1\endcsname\next
    \expandafter\pp@labeldef\expandafter
      {\number\value{pp@a@#1}}{#1}{#2}{#3}{#4}}}
\makeatother

\begin{document}

Wir befinden uns auf Seite \label{p1}\pageref{p1} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p1} beginnen.

\begin{align}
a &= b \label{eq:a}
%b &= c
\end{align}


\newpage

Wir befinden uns auf Seite \label{p2}\pageref{p2} und
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p2} beginnen.

\begin{align}
d &= e  \label{eq:d}\\
f &= g  \label{eq:g}
\end{align}

Siehe \eqref{eq:a}, \eqref{eq:d} and \eqref{eq:g}.

\end{document}
Es sei darauf hingewiesen, dass dabei interne Anweisungen von perpage umdefiniert und verwendet werden. Daher kann es jederzeit geschehen, dass nach einem Update nichts davon mehr funktioniert.

BTW: Bitte informiere dich über die korrekte Verwendung des Status!

von milo hirsch » Di 10. Jan 2017, 09:36

Hallo,

nochmals besten Dank.
Ich habe das Beispiel angepasst und es funktioniert soweit:
\documentclass[a4paper,twoside,10pt]{report}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage[ansinew]{inputenc}
\usepackage{lmodern} %Type1-Schriftart für nicht-englische Texte
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{perpage}
\MakeSortedPerPage{equation}

\renewcommand\theequation{\theperpage.\alph{equation}}%


\begin{document}

Wir befinden uns auf Seite \label{p1}\pageref{p1} und 
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p1} beginnen.

\begin{align}
a &= b  
%b &= c
\end{align}


\newpage

Wir befinden uns auf Seite \label{p2}\pageref{p2} und 
deshalb sollen alle Formeln auf dieser Seite auch mit der Zahl \pageref{p2} beginnen.

\begin{align}
d &= e  \\
f &= g
\end{align}

\end{document}
Ist es zusätzlich noch möglich zu unterscheiden ob sich auf einer Seite eine Formel oder mehrere Formeln befinden?
Und dementsprechend die Nummerierung zu unterscheiden:

Bei nur einer Formel auf einer Seite: nur die Seitenzahl (z. B. 1).
Bei mehreren Formeln auf einer Seite: die Seitenzahl + eine zusätzliche Unterscheidung (z. B. 2.a,2.b,...).


Beste Grüße, milo

Nach oben