while mit ifelse - bezogen auf seitenzahl

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: while mit ifelse - bezogen auf seitenzahl

von hello_world » Do 27. Feb 2014, 09:39

Einmal zu wenig kompiliert.... Beim Daumenindexübersichtsding sind die Übergänge normalerweise fließend, die Kästen sind nach dem 2. mal kompilieren weg.

von hello_world » Do 27. Feb 2014, 09:35

https://www.dropbox.com/s/eqlfw6drzjm7p ... 0Stand.pdf


Es gibt Vorschriften, wie das Universitätsloge der Uni Augsburg zu platzieren ist. Im vorliegenden Fall sei darauf hingewiesen, dass dies nicht die offiziele Verwendung ist!

von Johannes_B » Do 27. Feb 2014, 09:28

Dateianhänge sind momentan nicht möglich, du musst also extern verlinken

von hello_world » Do 27. Feb 2014, 09:26

@rais:
ich dachte, wenn ich das in eine Umgebung im Dokument setze, nach der \setcounter{page}{1} steht, würde es abbrechen.
@Besserwisser:
Was ich vorhabe ist, eine Inhaltsangabe zu erstellen, die einen Rahmen besitzt und in der Balken für die einzelnen Kapitel (pro Kapitel eine Farbe) am linken Rand stehen. Siehe Anhang. Es sollte alles möglichst dynamisch programmiert sein.
\AddToShipouPicture gibt es auf allen seiten aus, ja. Wenn im Dokument, nach der gewünschten Stelle, jedoch \ClearShipOutPicture aufgerufen wird ist damit Schluss. Daran hätte es also nicht gelegen.

@u_fischer:
Danke!!! Das hat geklappt und lies sich auch gut noch an meine Zwecke anpassen!!!
Die switch-case Anweisung war mit bis lang ein Rätsel in Latex... jetzt sitzt auch die :D Danke



Die PDF im Anhang ist natürlich nicht das Endlayout. Es gibt noch einiges anzupassen, von Schrift, bis hin zum fragwürdigen Chapterstyle. Aber im großen und ganzen steht es :D

von u_fischer » Mi 26. Feb 2014, 09:37

Du rufst deinen Befehl auf Seite 1 auf. Da kannst du soviele Whileschleifen machen, wie du willst, der Inhalt wandert nicht von alleine zu den nächsten Seiten.

Verlagere des Test auf die Seitennummer *in* den Inhalt von \AddToShipoutPicture - der wird doch auf jeder Seite ausgeführt.
\documentclass{scrreprt}%
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[x11names]{xcolor}
\usepackage{tikz}

\usepackage{eso-pic}
\AddToShipoutPicture{%
    \AtPageLowerLeft{%
    \ifcase\value{page}
       %Seite 0
      \or %seite 1
             \begin{tikzpicture}[overlay]
             \fill[left color=black, right color=Firebrick1](1.3,23) rectangle (3.4,1.3);
             \fill[color=Firebrick3,opacity=0.2](1.3,23) rectangle (20.2,17.5);
             \end{tikzpicture}%
       \or
             \begin{tikzpicture}[overlay]
             \fill[left color=black, right color=RoyalBlue4](1.3,23) rectangle (3.4,1.3);
             \fill[color=RoyalBlue4,opacity=0.2](1.3,23) rectangle (20.2,17.5);
             \end{tikzpicture}
        \or  %usw
             \begin{tikzpicture}[overlay]
             \fill[left color=black, right color=yellow](1.3,23) rectangle (3.4,1.3);
             \fill[color=RoyalBlue4,opacity=0.2](1.3,23) rectangle (20.2,17.5);
             \end{tikzpicture}
       \fi}}
       
\begin{document}


\chapter{So sieht eine Kapitelseite aus, das man auch noch länger machen kann}

\section{Das wird der erste große Abschnitt in dieser Arbeit}
\subsection{Das wird die erste Subsection}
\section{zweite Section dieses Tests}
\addtocontents{toc}{\protect\newpage}
\chapter{Das ist ein Farbenspiel}
\section{hallo! ich bin bunt unterstrichten!}
\chapter{Und noch ein Chapter}
\section{ölaskdjf}
\subsection{lföaksjdfa}
\subsection{alksjdföaslkfdj}
\section{ölaskdjf}
\subsection{lföaksjdfa}
\subsection{alksjdföaslkfdj}
\section{ölaskdjf}
\subsection{lföaksjdfa}
\subsection{alksjdföaslkfdj}
\chapter{kalsdjföaslkdfjdaösldkfjaösldkfjaösldkfj}
\section{öalksdfj}
\chapter{aösldkfjasödlfkja}
\section{öalksdjf}
\subsection{öalsdkfjöasdlkfj}
\end{document}

von Besserwisser » Mi 26. Feb 2014, 09:03

Ich habe zwar keine Ahnung, was Du da tatsächlich vor hast, aber wenn Du eine while-Schleife über page machen willst, dann musst Du page in der Schleife auch verändern …

Außerdem sei darauf hingewiesen, dass eso-pic bei \AddToShipoutPicture den Inhalt auf jeder Seite ausgibt, nicht nur auf der aktuellen Seite. Außerdem kennt Tikz auch einen page-node, so dass man im Zusammenhang mit Tikz eso-pic meist nicht benötigt. Aber wie gesagt: Ich habe keine Ahnung, was Du tatsächlich vor hast, weil Du uns das nämlich hier nicht erzählt hast.

Re: while mit ifelse - bezogen auf seitenzahl

von rais » Mi 26. Feb 2014, 08:07

hello_world hat geschrieben:
\newcommand{\inh}{%
	\setcounter{\value{page}}{100}	
\whiledo{\value{page}>99}{
	\ifnum\value{page}=100%
			\AddToShipoutPicture{%
				\begin{tikzpicture}[overlay]
%chapter1
				\fill[left color=black, right color=Firebrick1](1.3,23) rectangle (3.4,1.3);
				\fill[color=Firebrick3,opacity=0.2](1.3,23) rectangle (20.2,17.5);

				\end{tikzpicture}%
			}%Ende AddToShipoutPicture
		\else
			\AddToShipoutPicture{%
				\begin{tikzpicture}[overlay]
			%chapter6
				\fill[left color=black, right color=RoyalBlue4](1.3,23) rectangle (3.4,1.3);
				\fill[color=RoyalBlue4,opacity=0.2](1.3,23) rectangle (20.2,17.5);
				\end{tikzpicture}
			}
		\fi
		}%Ende whiledo
}%Ende \inh
wie soll hier jemals das Abbruchkriterium (\value{page} unter 100) erreicht werden?

MfG
Rainer

while mit ifelse - bezogen auf seitenzahl

von hello_world » Mi 26. Feb 2014, 03:37

Hallo!
Wie schon einige wissen^^... Ich will mir ein hübsches Inhaltsverzeichnis bauen.
Es klappt ganz gut. Nur habe ich ein Problem, wenn mein Verzeichnis länger als eine Seite wird.

Es liegt folgendes vor:
-ich nutze das eso-pick packet um im Inhaltsverzeichnis mit tikz gestalten zu können.
-->die Balkenhöhen (siehe Beispielcode) passe ich "händisch" des automatischen tableofcontents an, wenn die Arbeit geschrieben ist.

Problem:
Wird das Inhaltsverzeichnis länger als eine Seite, so stellt eso-pic dort wieder das gleiche tikz Bild her. Ich will aber Farben und Balken für weitere Seiten verändern können.

Lösungsversuch:
Ich dachte, ich könnte eine while-Schleife integrieren:
1. Setze Seitenzahl auf 100 (es ist \value{page} auf 100)
2. Ich setzt nach dem Inhaltsverzeichnis die Seitenzahl auf 1

3. ich definiere in der präambel einen Befehl \inh. Da kommt rein:
3.1. eine while-Schleife für Seitennummern über 99:
\whiledo{\value{page}>99}{}{
3.2 eine if-Verzweigung in die while-Schleife:
\ifnum\value{page}=100%if zum ersten
zeichne es so
\else%else zum ersten
\ifnum\value{page}=101%if zum zweiten
zeichne es so
\else%else zum zweiten
\ifnum\value{page}=102%if zum dritten
\else Mehr Seiten habe ich nicht als Verzeichnis
\fi%Beenden drittes if
\fi%Beenden zweites if
\fi%Beenden ersets if
4. Aufrufen von \inh im Textkörper

5. Verzweifeln, weils nicht funktioniert! Fehlermeldung...



Mein Beispiel für euch. Nur eine If-Verzweigung aber selbe Fehlerausgabe:
%benutzte Packete:
\documentclass[fontsize=14pt, DIV=12,headlines=2]{scrreprt}%
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{palatino}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[onehalfspacing]{setspace}
\setcounter{secnumdepth}{5}
\usepackage{blindtext}
\usepackage[x11names]{xcolor}
\usepackage{tikz}
\usepackage{layout}
\usepackage{eso-pic}
\usepackage{titletoc}
\usepackage{framed}
\usepackage{geometry}
\geometry{left = 3.5cm, right = 3cm,top = 2.5cm,bottom = 2.8cm}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Einstellungen für Inhaltsverzeichnis - Chapter
\titlecontents{chapter}[-0.8cm]%
	{\addvspace{1cm}}%
		{%
		\raisebox{-0.2cm}[0cm][0cm]{\color{Snow1}\Huge\thecontentslabel}%
		\large\hspace{+0.5cm}%
		}%
			{%
			\large\hspace{0.5cm}%% <- Kapiteleinträge in \large
			}%
				{%
				\hfill\contentspage
				}%
					[%
					\titleline{\titlerule}%% <- horizontale Linie
					\addvspace{0.5cm}%% <- Abstand zum nächsten Eintrag
					]%


\newcommand{\inh}{%
	\setcounter{\value{page}}{100}	
\whiledo{\value{page}>99}{
	\ifnum\value{page}=100%
			\AddToShipoutPicture{%
				\begin{tikzpicture}[overlay]
%chapter1
				\fill[left color=black, right color=Firebrick1](1.3,23) rectangle (3.4,1.3);
				\fill[color=Firebrick3,opacity=0.2](1.3,23) rectangle (20.2,17.5);

				\end{tikzpicture}%
			}%Ende AddToShipoutPicture
		\else
			\AddToShipoutPicture{%
				\begin{tikzpicture}[overlay]
			%chapter6
				\fill[left color=black, right color=RoyalBlue4](1.3,23) rectangle (3.4,1.3);
				\fill[color=RoyalBlue4,opacity=0.2](1.3,23) rectangle (20.2,17.5);
				\end{tikzpicture}
			}
		\fi
		}%Ende whiledo
}%Ende \inh
%%%%%%%%%%%%%%%%%%%%%$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%$$$ N $$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%$$$$$$$$$$ E $ T $%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%$ D  K % M $$%$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%$ O % U $$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%$$$$$$$%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\begingroup
\newgeometry{left = 3.5cm, right = 3cm,top = 7cm, bottom = 2.8cm}
\renewcommand*{\chapterpagestyle}{empty}
\renewcommand*\contentsname{\vspace{-4.5cm}}%Die Überschrift "Inhaltsverzeichnis wird hier entfernt und durch eine Verschiebung (vertikal) ersetzt. So wird der tableofcontents in den Rahmen eingepasst (Affengeil!)
\pagestyle{empty}
\inh
\tableofcontents
\clearpage
\endgroup
\ClearShipoutPicture
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setcounter{page}{1}
\chapter{So sieht eine Kapitelseite aus, das man auch noch länger machen kann}

\section{Das wird der erste große Abschnitt in dieser Arbeit}
\subsection{Das wird die erste Subsection}
\section{zweite Section dieses Tests}
\chapter{Das ist ein Farbenspiel}
\section{hallo! ich bin bunt unterstrichten!}
\chapter{Und noch ein Chapter}
\section{ölaskdjf}
\subsection{lföaksjdfa}
\subsection{alksjdföaslkfdj}
\section{ölaskdjf}
\subsection{lföaksjdfa}
\subsection{alksjdföaslkfdj}
\section{ölaskdjf}
\subsection{lföaksjdfa}
\subsection{alksjdföaslkfdj}
\chapter{kalsdjföaslkdfjdaösldkfjaösldkfjaösldkfj}
\section{öalksdfj}
\chapter{aösldkfjasödlfkja}
\section{öalksdjf}
\subsection{öalsdkfjöasdlkfj}
\end{document}
Mag LaTex keine While-IfElse Kombi, wie sie in C o.Ä. standard ist?

Nach oben