From: ali Date: Thu, 4 Dec 2014 21:36:12 +0000 (+0100) Subject: Update by Ali X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/ThesisAli.git/commitdiff_plain/9c8c91a6361eff48ed86d899abc12decd36bdcf2?ds=inline Update by Ali --- diff --git a/CHAPITRE_02.tex b/CHAPITRE_02.tex new file mode 100644 index 0000000..6f3f783 --- /dev/null +++ b/CHAPITRE_02.tex @@ -0,0 +1,271 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% %% +%% CHAPITRE 02 %% +%% %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\chapter{Related Literatures} +\label{ch2} + +\section{Introduction} +\label{ch2:sec:01} +The main objective of deploying a large number of wireless sensor nodes in the target area of interest is to construct a WSN, which is responsible for monitoring and observation the sensing field, and detecting the required important event in the area of interest. The coverage problem represents the principle requirement in these applications. The main question that shared by these applications is how can the deployed wireless sensor nodes monitor the physical phenomenon properly. The coverage can be considered as one of the QoS (Quality of Service) parameters, and it is closely related with energy consumption. It represents the sensing task supplied by the wireless sensors in WSNs. + +The energy resource limitation of wireless sensor nodes have been considered as a big challenge in order to operate the WSN with less energy consumption, while fulfill the coverage requirement. The the main objective of scattering the wireless sensor nodes over the area of interest is to collect the sensed data of the physical phenomena for processing or reporting, where there are two types of reporting for sensed data in WSNs~\cite{ref138} like event-driven and on-demand. In the latter, the monitoring base station start the reporting operation by transmitting a request to the wireless sensor nodes so as to send their sensed data to the base station, for example, the inventory tracking application. In the former, the reporting operation is triggered by one or more wireless sensor nodes within the physical phenomena by transmitting their sensed data to the controlling base station, for instance, the forest-fire detection application. The hybrid scheme of the two types is more flexible. + +The ultimate goal of the coverage is to assure that each point in the sensing field is within the sensing range of at least one sensor node. There are some applications require high reliability to perform their tasks, so they need that every point in the sensing field is covered by more than one sensor node. In order to avoid the lack in monitoring the area of interest, it is necessary that the WSN are deployed with high density so as to exploit the overlapping among the sensor nodes and to prevent malfunction of sensor nodes in severe environments. The overlap can be exploited by choosing the minimum number of sensor nodes to perform the main tasks of the WSN in the sensing field and putting the rest sensor nodes in very low power sleep mode so as to prolong the network lifetime. This exploitation manner is called sensor activity scheduling that aims to set the activity state of each sensor node in the WSN so that the sensing field can be monitored for a long time as possible. The required level of coverage should be guaranteed by the activity based scheduling scheme~\cite{ref139}. There are many scheduling algorithms have been described in~\cite{ref58,ref57}. + +This dissertation focuses on the problem of covering the area of interest as long as possible. There are several proposed approches to extend the network lifetime, while maintaing the coverage have been syrvayed in this chapter. M. Cardei and J. Wu~\cite{ref113} have been surveyed the different coverage formulation models and their assumptions, as well as the solutions provided. In~\cite{ref105}, several coverage problems are presented from different angles, where the models and assumptions as well as proposed solutions in the literatures are described. In this dissertation, the main contribution of previous works that deal with the coverage problem have been addressed. We end this chapter by focusing on two algorithms, GAF~\cite{GAF} and DESK~\cite{DESK}, since they have been used for comparisons against our coverage protocols. + + +\section{Coverage Algorithms} +\label{ch2:sec:02} + +\indent This section is dedicated to the various approaches proposed in the +literature for the coverage lifetime maximization problem, where the objective +is to optimally schedule sensors' activities in order to extend network lifetime +in WSNs. Cardei and Wu~\cite{ref113} provide a taxonomy for coverage algorithms in WSNs according to several design choices: + +\begin{enumerate} [(i)] +\item Sensors scheduling algorithm implementation, i.e. centralized or distributed/localized algorithms. +\item The objective of sensor coverage, i.e. to maximize the network lifetime or + to minimize the number of sensors during a sensing round. +\item The homogeneous or heterogeneous nature of the nodes, in terms of sensing or communication capabilities. +\item The node deployment method, which may be random or deterministic. +\item Additional requirements for energy-efficient and connected coverage. +\end{enumerate} + +The choice of non-disjoint or disjoint cover sets (sensors participate or not in many cover sets), coverage type ( area, target, or barrier), coverage ratio, coverage degree (how many sensors are required to cover a target or an area) can be added to the above list. + + +Once a sensor nodes are deployed, a coverage algorithm is run to schedule the sensor nodes into cover sets so as to maintain sufficient coverage in the area of interest and extend the network lifetime. The WSN applications require (complete or partial) area coverage and complete target coverage. Many centralized algorithms and distributed algorithms for activity scheduling have been proposed in the literature, and based on different assumptions and objectives. In centralized algorithms, a central controller makes all decisions and distributes the results to sensor nodes. A distributed algorithms, on the other hand, the decision process is localized in each individual sensor node, and only information from neighboring nodes are used for the activity decision. Compared to centralized algorithms, distributed algorithms reduce the energy consumption required for radio communication and detection accuracy whilst increase the energy consumption for computation. Overall, distributed algorithms are more suitable for large-scale networks, but it can not give optimal (or near optimal) solution based only on local information. Several algorithms to retain the coverage and maximize the network lifetime were proposed in~\cite{ref113,ref153,ref103,ref105}. + + +\subsection{Centralized Algorithms} +\label{ch2:sec:03} +The major approach is to divide/organize the sensors into a suitable number of cover sets where each set completely covers an interest region and to activate these cover sets successively. The centralized algorithms always provide nearly or close to optimal solution since the algorithm has global view of the whole network. Note that centralized algorithms have the advantage of requiring very low processing power from the sensor nodes, which usually have limited processing capabilities. The main drawback of this kind of approach is its higher cost in communications, since the node that will make the decision needs information from all the sensor nodes. Moreover, centralized approaches usually suffer from the scalability problem, making them less competitive as the network size increases. + +The first algorithms proposed in the literature consider that the cover sets are disjoint: a sensor node appears in exactly one of the generated cover sets~\cite{ref114,ref115,ref116}. In the case of non-disjoint algorithms~\cite{ref117}, sensors may participate in more than one cover set. In some cases, this may prolong the lifetime of the network in comparison to the disjoint cover set algorithms, but designing algorithms for non-disjoint cover sets generally induces a higher order of complexity. Moreover, in case of a sensor's failure, non-disjoint scheduling policies are less resilient and reliable because a sensor may be involved in more than one cover sets. + +In~\cite{ref118}, the authors have considered a linear programming approach to select the minimum number of working sensor nodes, in order to preserve a maximum coverage and to extend lifetime of the network. + +The work in~\cite{ref144} addressed the target area coverage problem by proposing a geometric-based activity scheduling scheme, named GAS, to fully cover the target area in WSNs. The authors deals with small area (target area coverage), which can be monitored by a single sensor instead of area coverage, which focuses on a large area that should be monitored by many sensors cooperatively. They explained that GAS is capable to monitor the target area by using a few sensors as possible and it can produce as many cover sets as possible. + +A novel method to divide the sensors in the WSN, called node coverage grouping (NCG) suggested~\cite{ref147}. The sensors in the connectivity group are within sensing range of each other, and the data collected by them in the same group are supposed to be similar. They are proved that dividing n sensors via NCG into connectivity groups is a NP-hard problem. So, a heuristic algorithm of NCG with time complexity of $O(n^3)$ is proposed. +For some applications, such as monitoring an ecosystem with extremely diversified environment, It might be premature assumption that sensors near to each other sense similar data. + +In~\cite{ref148}, the problem of minimum cost coverage in which full coverage is performed by using the minimum number of sensors for an arbitrary geometric shape region is addressed. a geometric solution to the minimum cost coverage problem under a deterministic deployment is proposed. The probabilistic coverage solution which provides a relationship between the probability of coverage and the number of randomly deployed sensors in an arbitrarily-shaped region is suggested. The authors are clarified that with a random deployment about seven times more nodes are required to supply full coverage. + +Li et al.~\cite{ref142} presented a framework to convert any complete coverage problem to a partial coverage one with any coverage ratio by means of executing a complete coverage algorithm to find a full coverage sets with virtual radii and transforming the coverage sets to a partial coverage sets by adjusting sensing radii. The properties of the original algorithms can be maintained by this framework and the transformation process has a low execution time. + +The problem of k-coverage in WSNs was addressed~\cite{ref152}. It mathematically formulated and the spacial sensor density for full k-coverage determined, where the relation between the communication range and the sensing range constructed by this work to retain the k-coverage and connectivity in WSN. After that, a four configuration protocols have proposed for treating the k-coverage in WSNs. + +Liu et al.~\cite{ref150} formulated maximum disjoint sets problem for retaining coverage and connectivity in WSN. Two algorithms are proposed for solving this problem, heuristic algorithm and network flow algorithm. This work did not take into account the sensor node failure, which is an unpredictable event because the two solutions are full centralized algorithms. + +Cheng et al.~\cite{ref119} have defined a heuristic algorithm called Cover Sets +Balance (CSB), which chooses a set of active nodes using the tuple (data +coverage range, residual energy). Then, they have introduced a new Correlated +Node Set Computing (CNSC) algorithm to find the correlated node set for a given +node. After that, they proposed a High Residual Energy First (HREF) node selection algorithm to minimize the number of active nodes so as to prolong the network lifetime. + +In~\cite{ref141}, the problem of full grid coverage is formulated using two integer linear programming models: the first, a model that takes into account only the overall coverage constraint; the second, both the connectivity and the full grid coverage constraints have taken into consideration. This work did not take into account the energy constraint. + +The work that presented in~\cite{ref151} solved the coverage and connectivity problem in sensor networks in +an integrated way. The network lifetime is divided in a fixed number of rounds. A coverage bitmap of sensors of the domain has been generated in each round and based on this bitmap, it has been decided which sensors +stay active or turn it to sleep. They checked the connection of the graph via laplacian of adjancy graph of active sensors in each round. the generation of coverage bitmap by using Minkowski technique, the network is able to providing the desired ratio of coverage. They have been defined the connected coverage problem as an optimization problem and a centralized genetic algorithm is used to find the solution. + +The authors in~\cite{ref143} explained that in some applications of WSNs such as structural health monitoring (SHM) and volcano monitoring, the traditional coverage model which is a geographic area defined for individual sensors is not always valid. For this reason, they define a generalized coverage model, which is not need to have the coverage area of individual nodes, but only based on a function to determine whether a set of +sensor nodes is capable of satisfy the requested monitoring task for a certain area. They have proposed two approaches to divide the deployed nodes into suitable cover sets, which can be used to prolong the network lifetime. + +Various centralized methods based on column generation approaches have also been proposed~\cite{ref120,ref121,ref122}. + + + + +\subsection{Distributed Algorithms} +\label{ch2:sec:04} + +In distributed and localized coverage algorithms, the required computation to schedule the activity of sensor nodes will be done by the cooperation among neighboring nodes. These algorithms may require more computation power for the processing by the cooperating sensor nodes, but they are more scalable for large WSNs. Localized and distributed algorithms generally result in non-disjoint set covers. +Many distributed algorithms have been developed to perform the scheduling so as to preserve coverage, see for example \cite{ref123,ref124,ref125,ref126,ref109,ref127,ref128,ref129}. + +Distributed algorithms typically operate in rounds for a predetermined duration. At the beginning of each round, a sensor exchanges information with its neighbors and makes a decision to either remain turned on or to go to sleep for the round. This decision is basically made on simple greedy criteria like the largest uncovered area \cite{ref130} or maximum uncovered targets \cite{ref131}. The Distributed Adaptive Sleep Scheduling Algorithm (DASSA) \cite{ref127} does not require location information of sensors while maintaining connectivity and satisfying a user defined coverage target. In DASSA, nodes use the residual energy levels and feedback from the sink for scheduling the activity of their neighbors. This feedback mechanism reduces the randomness in scheduling that would otherwise occur due to the absence of location information. + +Cho et al.~\cite{ref145} proposed a distributed node scheduling protocol, which can retain sensing coverage needed by applications +and increase network lifetime via putting in sleep mode some redundant nodes. In this work, the effective sensing area (ESA) concept of a sensor node is used, which refers to the sensing area that is not overlapping with another sensor's sensing area. A sensor node and by compute it's ESA can be determine whether it will be active or sleep. The suggested work permits to sensor nodes to be in sleep mode opportunistically whilst fulfill the needed sensing coverage. + +In~\cite{ref146}, the authors defined a maximum sensing coverage region problem (MSCR) in WSNs and then proposed a distributed algorithm to solve it. The +maximum observed area fully covered by a minimum active sensors. In this work, the major property is to getting rid from the redundant sensors in high-density WSNs and putting them in sleep mode, and choosing a smaller number of active sensors so as to be sure that the full area is k-covered, and all events appeared in that area can be precisely and timely detected. This algorithm minimized the total energy consumption and increased the lifetime. + +A graph theoretical framework for connectivity-based coverage with configurable coverage granularity was proposed~\cite{ref149}. A new coverage criterion and scheduling approach is proposed based on cycle partition. This method is capable of build a sparse coverage set in distributed way by means of only connectivity information. This work considers only the communication range of the sensor is smaller two times the sensing range of sensor. + +The works presented in~\cite{ref134,ref135,ref136} focus on coverage-aware, distributed energy-efficient, and distributed clustering methods respectively, which aim at extending the network lifetime, while the coverage is ensured. + +More recently, Shibo et al.~\cite{ref137} have expressed the coverage problem as a minimum weight submodular set cover problem and proposed a Distributed Truncated Greedy Algorithm (DTGA) to solve it. They take advantage from both temporal and spatial correlations between data sensed by different sensors, and leverage prediction, to improve the lifetime. + + +In \cite{ref84}, Xu et al. have described an algorithm, called Geographical Adaptive Fidelity (GAF), which uses geographic location information to divide the area of interest into fixed square grids. Within each grid, it keeps only one node staying awake to take the responsibility of sensing and communication. Figure~\ref{gaf1} gives an example of fixed square grid in GAF. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{Figures/ch2/GAF1.jpeg} +\caption{ Example of fixed square grid in GAF.} +\label{gaf1} +\end{figure} + +The fixed grid is defined where, each two adjacent grids, for example, A and B in figure\ref{gaf1}, all the sensor nodes inside A can communicate with sensor nodes inside B and vice versa. Therefore, all the sensor nodes are equivalent from point of view the routing. The size of the fixed grid is based on the radio communication range $R_c$. It is supposed that the fixed grid is square with $r$ units on a side as shown in figure~\ref{gaf1}. The distance between the farthest two possible sensor nodes in two adjacent grid such as, B and C in figure~\ref{gaf1}, should not be greater than the radio communication range $R_c$ so as to satisfy the definition of fixed square grid. For instance, the sensor node \textbf{2} of grid B can communicates with the sensor node \textbf{5} of grid C. So, + +\begin{eqnarray} +r^2 + \left(2r \right)^2 \leq R_c^2 +\end{eqnarray} +or +\begin{eqnarray} +r \leq \dfrac{R_c}{\sqrt{5}} +\end{eqnarray} + +The sensor nodes in GAF can be in one of three states: active, sleep, or discovery. Figure~\ref{gaf2} shows the state transition diagram. Each sensor node is initiated with discovery state. In discovery state, the radio of each sensor node is turned on after that the discovery messages are exchanged among the sensor nodes so as to discover the other nodes within the same grid. The discovery message consisted of four fields like, node id, grid id, estimated node active time (enat), and node state. The node use its location and grid size to determine the grid id. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{Figures/ch2/GAF2.jpeg} +\caption{ Example of fixed square grid in GAF.} +\label{gaf2} +\end{figure} + +The sensor node sets a timer to $T_d$ seconds after entering in discovery state. As soon as the timer fires, the sensor node broadcast its discovery message and enters in active state. The active sensor node sets a timeout value $T_a$ to define how long it can stay in active state. After $T_a$, the sensor node will return to the discovery state. Whilst, during its active state, it re-broadcasts its discovery message at intervals $T_d$ periodically. The sensor node with discovery or active state can change its state to sleep when it detects that some other equivalent node will handle routing inside the grid. The sensor nodes in the sleeping state wake up after a sleeping time $T_s$ and go back to the discovery state. In GAF, load balancing is performed by means of periodic election of the leader (i.e., the active node that handle the routing inside the fixed grid). A rank-based election algorithm has been used to elect the leader. It is based on the remaining energy of sensor nodes inside the fixed square grid so as to extend the network lifetime In proportionally with network density. + + +In~\cite{ref132}, the author have designed a novel distributed heuristic, called Distributed Energy-efficient Scheduling for k-coverage (DESK), which ensures that the energy consumption among the sensors is balanced and the lifetime maximized while the coverage requirement is maintained. This heuristic works in rounds, requires only one-hop neighbor information, and each sensor decides its status (active or sleep) based on the perimeter coverage model from~\cite{ref133}. Figure~\ref{desk} shows the DESK network time line. + +\begin{figure}[h!] +\centering +\includegraphics[scale=0.5]{Figures/ch2/DESK.jpeg} +\caption{ DESK network time line.} +\label{desk} +\end{figure} + +DESK works into rounds manner. The network lifetime divided into R rounds. Each round consists of two phases: decision phase and sensing phase. The length of round is dRound that means each sensor node executes this algorithm every dRound unit of time. The decision phase at the starting of each round should be taken within W unit of time, where $W<< dRound$ as shown in figure~\ref{desk}. All the sensor nodes should be temporarily wake up in the decision phase so as to decide its status. Every sensor node $s_i$ decides its status to be active or sleep after $w_i$ of waiting time. The waiting time $w_i$ is dynamic and it can be changed at any time based on the status of its sensor neighbors, the remaining energy of $s_i$, and its contribution $c_i$ in the coverage level of the network, where $c_i$ is defined as the number of the neighbors $n_i$ who need $s_i$ to be active. The waiting time has been defined as follow: + +\begin{equation} +w_{i} = \left \{ +\begin{array}{ll} + \dfrac{\eta}{n_i^\alpha l(e_i,r_i)^\beta} * W + z & \mbox{If $e_i \geq e_threshold$} \\ + W & \mbox{Otherwise.}\\ +\end{array} \right. +%\label{eq12} +\notag +\end{equation} + +Where: $\alpha, \beta,$ and $\eta$ are constants, z is a random number between [0; d], where d is a time slot, to avoid the case where two sensors having the same $w_i$ to be active at the same time. $l(e_i, r_i)$ is the function computing the lifetime of sensor $s_i$ in terms of its current energy $e_i$ and its sensing range $r_i$. + +Typically, the algorithm works as follows: all the sensor nodes collect the information (coordinates, current residual energy, and sensing range) from the one-hop neighbors and store it in a list L (in the increasing order) by executing the perimeter coverage model. Each sensor node set its timer to $w_i$ and initially it is proposed that all of its neighbors need it to join the +network. When the sensor node $s_j$ joins the network, it broadcasts a mACTIVATE message to inform all of its 1-hop neighbors about its status change. Its neighbors execute the perimeter coverage model to recalculate its coverage level. If it finds any neighbor u that is useless in covering its perimeter, i.e., the perimeter that u covers was covered by other active neighbors, it will send mASK2SLEEP message to that sensor. When the sensor node receives mASK2SLEEP message, it updates its counter $n_i$, contribution $c_i$ and recalculate waiting time $w_i$. It then +check if its $n_i$ is decreased to 0 or not. If $n_i$ of a sensor node is 0 (i.e., it receives mASK2SLEEP message from all of its neighbors), then it will send message mGOSLEEP to all of its neighbors telling them that it is about to go to sleep, and set a timer $R_i$ for waking up in next round, and at last go to sleep. If the sensor node receives mGOSLEEP message, it removes the neighbor sending that message out of its list L. + + + +\begin{table} + +\begin{flushleft} +\centering +\caption{Centralized approaches for coverage problem in literature.} + \begin{tabular}{@{} cl*{13}c @{}} + & & \multicolumn{10}{c}{Characteristics} \\[2ex] + & & \mcrot{1}{l}{50}{\footnotesize Distributed} & \mcrot{1}{l}{50}{\footnotesize Centralized} & \mcrot{1}{l}{50}{ \footnotesize Area coverage} & \mcrot{1}{l}{50}{\footnotesize Target coverage} & \mcrot{1}{l}{50}{\footnotesize k-coverage} & \mcrot{1}{l}{50}{\footnotesize Heterogeneous nodes}& \mcrot{1}{l}{50}{\footnotesize Homogeneous nodes} & \mcrot{1}{l}{50}{\footnotesize Disjoint sets} & \mcrot{1}{l}{50}{\footnotesize Non-Disjoint sets} & \mcrot{1}{l}{50}{\footnotesize Energy-Efficient} & \mcrot{1}{l}{50}{\footnotesize Work in Rounds} & \mcrot{1}{l}{50}{\footnotesize Adjustable Radius} \\ + \cmidrule[1pt]{2-14} + + +& \tiny Z. Abrams et. al. (2004) & & & & & & & & & & & & &\\ + +& \tiny M. Cardei and D. Du (2005) & & & & & & & & & & & & &\\ + +& \tiny S. Slijepcevic and M. Potkonjak (2001) & & & & & & & & & & & & &\\ + +& \tiny Manjun and A. KPujari (2011) & & & & & & & & & & & & &\\ + +& \tiny M. Yang and J. Liu (2014) & & & & & & & & & & & & &\\ + +& \tiny S. Wang et. al. (2010) & & & & & & & & & & & & &\\ + +& \tiny C. Lin et. al. (2010) & & & & & & & & & & & & &\\ + +& \tiny S. A. R. Zaidi et. al. (2009) & & & & & & & & & & & & &\\ + +& \tiny Y. Li et. al. (2011) & & & & & & & & & & & &\\ + +& \tiny H. M. Ammari and S. K. Das (2012) & & & & & & & & & & & & &\\ + +& \tiny L. Liu et. al. (2010) & & & & & & & & & & & & &\\ + +& \tiny H. Cheng et. al. (2014) & & & & & & & & & & & & &\\ + +& \tiny M. Rebai et. al. (2014) & & & & & & & & & & & & &\\ + +& \tiny L. Aslanyan et. al. (2013) & & & & & & & & & & & & &\\ + +& \tiny X. Liu et. al. (2014) & & & & & & & & & & & & &\\ + +& \tiny F. Castano et. al. (2013) & & & & & & & & & & & & &\\ + +& \tiny A. Rossi et. al. (2012) & & & & & & & & & & & & &\\ + +& \tiny K. Deschinkel et. al. (2012) & & & & & & & & & & & & &\\ + +\rot{\rlap{Some Proposed Coverage Protocols in literature}} + +& \tiny A. Gallais et. al. (2006) & & & & & & & & & & & & &\\ + +& \tiny D. Tian and N. D. Georganas (2002) & & & & & & & & & & & & &\\ + +& \tiny F. Ye et. al. (2003) & & & & & & & & & & & & &\\ + +& \tiny H. Zhang and J. C. Hou (2005) & & & & & & & & & & & & &\\ + +& \tiny W. B. Heinzelman et. al. (2002) & & & & & & & & & & & & &\\ + +& \tiny T. Yardibi and E. Karasan (2010) & & & & & & & & & & & & &\\ + +& \tiny S. K. Prasad and A. Dhawan (2007) & & & & & & & & & & & & &\\ + +& \tiny S. Misra et. al. (2011) & & & & & & & & & & & & &\\ + +& \tiny P. Berman et. al. (2005) & & & & & & & & & & & &\\ + +& \tiny J. Lu and T. Suda (2003) & & & & & & & & & & & & &\\ + +& \tiny J. Cho et. al. (2007) & & & & & & & & & & & & &\\ + +& \tiny V. T. Quang and T. Miyoshi (2008) & & & & & & & & & & & & &\\ + +& \tiny D. Dong et. al. (2012) & & & & & & & & & & & & &\\ + +& \tiny B. Wang et. al. (2012) & & & & & & & & & & & & &\\ + +& \tiny Z. Liu et. al. (2012) & & & & & & & & & & & & &\\ + +& \tiny L. Zhang et. al. (2013) & & & & & & & & & & & & &\\ + +& \tiny Y. Xu et. al. (2001) & & & & & & & & & & & & &\\ + +&\textbf{\textcolor{red}{ \tiny DiLCO Protocol (2014)}} & \textbf{\textcolor{red}{\OK}} & & \textbf{\textcolor{red}{\OK}} & & & \textbf{\textcolor{red}{\OK}} & \textbf{\textcolor{red}{\OK}} & & & &\textbf{\textcolor{red}{\OK}} & & \\ + +&\textbf{\textcolor{red}{ \tiny MuDiLCO Protocol (2014)}} & \textbf{\textcolor{red}{\OK}} & & \textbf{\textcolor{red}{\OK}} & & & \textbf{\textcolor{red}{\OK}} & \textbf{\textcolor{red}{\OK}} & & & &\textbf{\textcolor{red}{\OK}} & & \\ + +&\textbf{\textcolor{red}{ \tiny LiCO Protocol (2014)}} & \textbf{\textcolor{red}{\OK}} & & \textbf{\textcolor{red}{\OK}} & & & \textbf{\textcolor{red}{\OK}} & \textbf{\textcolor{red}{\OK}} & & & &\textbf{\textcolor{red}{\OK}} & & \\ + + \cmidrule[1pt]{2-14} + \end{tabular} + \end{flushleft} + + +\label{table:1} + +\end{table} + + + +\section{Conclusion} +\label{ch2:sec:05} +This chapter has been described some coverage problems proposed in the literature, and their assumptions and proposed solutions. +The coverage problem has been considered an essential requirement for many applications in WSNs, because better +coverage of an area of interest provides better sensing measurements of the physical phenomenon. So, there are many extensive research have been focused on those problem. these problems aim at designing mechanisms that efficiently manage or schedule the sensors after deployment, since sensor nodes have a limited battery life. Several centralized approaches have been demonstrated, where they are concentrated on modeling the coverage problem and provide the maximum cover set so as to extend the network lifetime. The proposed algorithms are executed in a central node and based on global information. The central node transmits the resulted schedule to other nodes in the network. Even if the centralized algorithms have been produced optimal or near optimal solutions, It seems to be difficult and unpractical to apply the full centralized approaches in WSNs. On the other hand, many distributed algorithms have been described. These approaches seem to be more realistic to be used in WSNs from point of view of designer, but they can not assure optimal or near optimal solutions so as to extend the network lifetime as long time as possible. + diff --git a/Thesis.toc b/Thesis.toc new file mode 100644 index 0000000..c5df802 --- /dev/null +++ b/Thesis.toc @@ -0,0 +1,36 @@ +\select@language {english} +\contentsline {chapter}{Table of Contents}{vi}{chapter*.1} +\contentsline {chapter}{List of Figures}{vii}{chapter*.2} +\contentsline {chapter}{List of Tables}{ix}{chapter*.3} +\contentsline {chapter}{List of Algorithms}{xi}{chapter*.4} +\contentsline {part}{I\hspace {1em}Scientific Background}{xiii}{part.1} +\contentsline {chapter}{\numberline {1}Wireless Sensor Networks}{1}{chapter.1} +\contentsline {section}{\numberline {1.1}Introduction}{1}{section.1.1} +\contentsline {section}{\numberline {1.2}Wireless Sensor Network Architecture}{2}{section.1.2} +\contentsline {section}{\numberline {1.3}Types of Wireless Sensor Networks}{4}{section.1.3} +\contentsline {section}{\numberline {1.4}Wireless Sensor Network Applications}{6}{section.1.4} +\contentsline {section}{\numberline {1.5}The Main Challenges in Wireless Sensor Networks}{9}{section.1.5} +\contentsline {section}{\numberline {1.6}Energy-Efficient Mechanisms in Wireless Sensor Networks}{11}{section.1.6} +\contentsline {subsection}{\numberline {1.6.1}Energy-Efficient Routing}{11}{subsection.1.6.1} +\contentsline {subsection}{\numberline {1.6.2}Radio Optimization}{13}{subsection.1.6.2} +\contentsline {subsection}{\numberline {1.6.3}Scheduling Schemes}{13}{subsection.1.6.3} +\contentsline {subsubsection}{\numberline {1.6.3.1}Wake up Scheduling Schemes:}{13}{subsubsection.1.6.3.1} +\contentsline {subsubsection}{\numberline {1.6.3.2}Topology Control Schemes:}{16}{subsubsection.1.6.3.2} +\contentsline {subsection}{\numberline {1.6.4}Data-Driven Schemes:}{16}{subsection.1.6.4} +\contentsline {subsection}{\numberline {1.6.5}Battery Repletion:}{17}{subsection.1.6.5} +\contentsline {section}{\numberline {1.7}Network Lifetime in Wireless Sensor Networks}{17}{section.1.7} +\contentsline {section}{\numberline {1.8}Coverage in Wireless Sensor Networks }{18}{section.1.8} +\contentsline {section}{\numberline {1.9}Design Issues for Coverage Problems}{19}{section.1.9} +\contentsline {section}{\numberline {1.10}Energy Consumption Models}{20}{section.1.10} +\contentsline {subsection}{\numberline {1.10.1}Radio Energy Dissipation Model}{21}{subsection.1.10.1} +\contentsline {subsection}{\numberline {1.10.2}Our Energy Consumption Model}{22}{subsection.1.10.2} +\contentsline {section}{\numberline {1.11}Conclusion}{23}{section.1.11} +\contentsline {chapter}{\numberline {2}Related Literatures}{25}{chapter.2} +\contentsline {section}{\numberline {2.1}Introduction}{25}{section.2.1} +\contentsline {section}{\numberline {2.2}Coverage Algorithms}{26}{section.2.2} +\contentsline {subsection}{\numberline {2.2.1}Centralized Algorithms}{27}{subsection.2.2.1} +\contentsline {subsection}{\numberline {2.2.2}Distributed Algorithms}{29}{subsection.2.2.2} +\contentsline {section}{\numberline {2.3}Conclusion}{32}{section.2.3} +\contentsline {part}{II\hspace {1em}Contributions}{35}{part.2} +\contentsline {part}{III\hspace {1em}Conclusions and Perspectives}{37}{part.3} +\contentsline {part}{Bibliographie}{47}{chapter*.5} diff --git a/algorithme.sty b/algorithme.sty new file mode 100644 index 0000000..7eb59ca --- /dev/null +++ b/algorithme.sty @@ -0,0 +1,420 @@ +%%%%%% ************** line 192 + + +%%-------------------------------------------------------------------------------------------------------------- +%% ALGORITHME 1.1 +%%-------------------------------------------------------------------------------------------------------------- +%% Quoi de neuf depuis Algorithm 1.0 / What's new since Algorithm 1.0 +%% +%% Meilleure boîte de cadrage +%% Meilleure gestion des largeurs, permettant l'utilisation du mode multicolonnes, et permettant la césure +%% automatique des longues lignes de pseudo-instructions. +%% Widths are better handled, allowing the use of multicolumn mode, and also allowing auto line splitting into +%% long lines of pseudo-code. +%%-------------------------------------------------------------------------------------------------------------- +%% +%% Copyleft Pierre Chatelier +%% e-mail: pierre.chatelier@club-internet.fr +%% page perso: http://perso.club-internet.fr/ktd +%% +%%Un package pour ecrire du code algorithmique +%%Il propose, dans l'environnement "algorithme", d'utiliser +%% -Des remarques, pour commenter le code ( \Rem{Remarque} ) +%% -Des blocs, pour indenter le code ( \Block{code} ) +%% -Des boucles "Tant Que...faire...Fait" ( \While{condition}{code} ) +%% -Des boucles "Repeter...jusqu'a" ( \Repeat{code}{condition} ou \RepeatUntil{}{} ) +%% -Des boucles "Pour...de...a...faire...Fin Pour" ( \ForFromTo{variable}{valeur début}{valeur fin}{code} ) +%% -Des boucles "Pour...faire...Fin Pour" ( \For{controle de boucle}{code} ) +%% -Des Si...Alors...Fin Si ( \If{condition}{code} ou \IfThen{condition}{code} ) +%% -Des Si...Alors...Sinon...Fin Si ( \IfThenElse{condition}{code de alors}{code de sinon} ) +%% -Des Selon que ... Fin Selon que ( \Switch{code} ) +%% -Des fonctions ( \Function{parametres}{type de retour}{code} ) +%% -Des procédures ( \Procedure{parametres}{code} ) +%% -Une instruction de declaration de type ( \Type{nom ou liste de variable}{nom de type} ) +%% -Quelques mots-clefs d'usage courant : \True, \False, \And, \Or et \Not +%% Les versions étoilées des commandes (\WhileDo*{}, \IfThen*{}, ... ; toutes sauf \Rem, \Block \Switch, +%% \Function et \Procedure) font tout sur la meme ligne +%% +%% Une table des algorithmes est disponible via \listofalgorithms. +%% Pour introduire un algorithme dans cette table, il faut taper la commande "\caption{texte...}" dans un +%% environnemment "algorithme" +%% +%% On peut passer une option au package : [french] ou [english] pour la langue des mots-clef +%% +%%--------------------------------------------------------------------------------------------------------------- +%%This is a package to write some algorithms. +%%It provides, within an "algorithm" environment, to use +%% -Comments ( \Rem{text} ) +%% -Blocks, to indent code ( \Block{text} ) +%% -While ... do ... done ( \While{condition}{code} ) +%% -Repeat ... until ( \Repeat{code}{condition} or \RepeatUntil{}{} ) +%% -Repeat ... until ( \RepeatUntil{code}{condition} ) +%% -For...from...to...do...done ( \ForFromTo{variable}{initial value}{final value}{code} ) +%% -For...do...done ( \For{loop control}{code} ) +%% -If...then...end if ( \If{condition}{code} or \IfThen{condition}{code} ) +%% -If...then...else...end if ( \IfThenElse{condition}{then code}{else code} ) +%% -Switch ( \Switch{code} ) +%% -Function ( \Function{parameters}{return type}{code} ) +%% -Procedure ( \Procedure{parametres}{code} ) +%% -A type declaration instruction ( \Type{name or list of variables}{type name} ) +%% -Some useful keywords: \True, \False, \And, \Or and \Not. +%% Most of these commands have a star-form (\WhileDo*{}, \IfThen*{}, ... ; all but \Rem, \Block \Switch +%% \Function and \Procedure). These star-forms are single-lined. +%% +%% A list of algorithms is provided through \listofalgorithms. +%% To add an entry in this table, the matching algorithm must have a caption, thanks to "\caption{text}". +%% +%% You can specifiy an option to the package : [french] ou [english] for the language of the keywords. +%% +%%--------------------------------------------------------------------------------------------------------------- + + +%%-----------------------------------------------------------------%% +%%---------------------- Identification ---------------------------%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesClass{algorithme} %Nom de la classe / Class name +%%-----------------------------------------------------------------%% +%% +%% +%%-----------------------------------------------------------------%% +%%------------------------ Inclusions -----------------------------%% +\RequirePackage{float, ifthen, calc} +%% +%% +%%-----------------------------------------------------------------%% +%%------------------------ Langage/Language -----------------------%% + +%% Changer le langage dans le contexte de babel /Change langage according to babel +\@ifpackageloaded{babel} +{ + %\iflanguage{french}{\def\alg@language{french}}{} + \iflanguage{english}{\def\alg@language{english}}{} + \iflanguage{american}{\def\alg@language{english}}{} +} +{ + % \def\alg@language{french} %Langage par defaut / Default language +} + +%% Tenir compte de l'option specifiee explicitement / Handle explicit langage option +%\DeclareOption{french}{\def\alg@language{french}} +\DeclareOption{english}{\def\alg@language{english}} +\DeclareOption{american}{\def\alg@language{english}} +\ProcessOptions\relax + + +%% Declaration des commandes / Commands declaration +\ifthenelse{\equal{\alg@language}{french}} +{ + \def\alg@floatname{Algorithme} + \def\alg@listname{Liste des Algorithmes} + + \newcommand{\@TRUE}{\textbf{vrai}}% + \newcommand{\@FALSE}{\textbf{faux}}% + \newcommand{\@AND}{\textbf{ET }}% + \newcommand{\@OR}{\textbf{OU }}% + \newcommand{\@NOT}{\textbf{$\neg$}}% + + \newcommand{\@WHILE}{\textbf{Tant que }}% + \newcommand{\@DO}{\textbf{faire }}% + \newcommand{\@ENDWHILE}{\textbf{Fait}}% + + \newcommand{\@REPEAT}{\textbf{R\'ep\'eter }}% + \newcommand{\@UNTIL}{\textbf{jusqu'\`a ce que }}% + + \newcommand{\@FOR}{\textbf{Pour }}% + \newcommand{\@FROM}{\textbf{de }}% + \newcommand{\@TO}{\textbf{\`a }}% + \newcommand{\@ENDFOR}{\textbf{Fin Pour}}% + + \newcommand{\@IF}{\textbf{Si }}% + \newcommand{\@THEN}{\textbf{Alors }}% + \newcommand{\@ELSE}{\textbf{Sinon }}% + \newcommand{\@ENDIF}{\textbf{Fin Si}}% + + \newcommand{\@SWITCH}{\textbf{Selon que }}% + \newcommand{\@ENDSWITCH}{\textbf{Fin Selon que}}% + + \newcommand{\@FUNCTION}{\textbf{Fonction }}% + \newcommand{\@RETURN}{\textbf{Retourner }}% + \newcommand{\@ENDFUNCTION}{\textbf{Fin}}% + + \newcommand{\@PROCEDURE}{\textbf{Proc\'edure }}% + \newcommand{\@ENDPROCEDURE}{\textbf{Fin}}% +}{} +\ifthenelse{\equal{\alg@language}{english}} +{ + \def\alg@floatname{Algorithm} + \def\alg@listname{List of Algorithms} + + \newcommand{\@TRUE}{\textbf{true}}% + \newcommand{\@FALSE}{\textbf{false}}% + \newcommand{\@AND}{\textbf{AND }}% + \newcommand{\@OR}{\textbf{OR }}% + \newcommand{\@NOT}{\textbf{$\neg$}}% + + \newcommand{\@WHILE}{\textbf{While }}% + \newcommand{\@DO}{\textbf{do }}% + \newcommand{\@ENDWHILE}{\textbf{done}}% + + \newcommand{\@REPEAT}{\textbf{Repeat }}% + \newcommand{\@UNTIL}{\textbf{until }}% + + \newcommand{\@FOR}{\textbf{For }}% + \newcommand{\@FROM}{\textbf{from }}% + \newcommand{\@TO}{\textbf{to }}% + \newcommand{\@ENDFOR}{\textbf{end For}}% + + \newcommand{\@IF}{\textbf{If }}% + \newcommand{\@THEN}{\textbf{then }}% + \newcommand{\@ELSE}{\textbf{else }}% + \newcommand{\@ENDIF}{\textbf{end If}}% + + \newcommand{\@SWITCH}{\textbf{Switch }}% + \newcommand{\@ENDSWITCH}{\textbf{end Switch}}% + + \newcommand{\@FUNCTION}{\textbf{Function }}% + \newcommand{\@RETURN}{\textbf{return }}% + \newcommand{\@ENDFUNCTION}{\textbf{End}}% + + \newcommand{\@PROCEDURE}{\textbf{Procedure }}% + \newcommand{\@ENDPROCEDURE}{\textbf{End}}% +}{} + +%% +%% +%%-----------------------------------------------------------------%% +%%----------------------- Commandes/Commands ----------------------%% + +%% Adequation au package "float" / Match "float" package +\newcommand\floatc@alg[2]{\begin{center}{\bfseries\rmfamily #1:} #2\end{center}} +\newcommand\fs@alg{ + \let\@fs@capt\floatc@alg + \def\@fs@pre{}\def\@fs@post{}\def\@fs@mid{\vspace{3pt}} + \let\@fs@iftopcapt\iftrue} +\newfloat{algorithmfloat}{h}{loa} +\floatname{algorithmfloat}{\alg@floatname} +%\newcommand{\listofalgorithms}{\listof{algorithmfloat}{\alg@listname}} +\newlength{\alglength} + +%% Les commandes disponibles / Provided commands +\newenvironment{algorithme}[1][H] +{ + \setlength{\alglength}{.95\linewidth} + \begin{algorithmfloat}[#1] + + %%Rem{texte} : ecrit une remarque + %%Rem{text} : puts a comment + \newcommand{\@Rem}[1]{\begin{minipage}[t]{\alglength} + \emph{[##1]} + \vspace*{.5ex} + \end{minipage} + }% + + %%Bloc{code} : Encapsule quelques lignes / encapsulate some lines + \newcommand{\@Block}[1]{\begin{minipage}[t]{\alglength} + ##1 + \vspace*{.5ex} + \end{minipage} + }% + + %%WhileDo{condition}{code} + \newcommand{\@WhileDo}[2]{\begin{minipage}[t]{\alglength} + \@WHILE (##1) \@DO \\ + \hspace*{1em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##2\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDWHILE% + \vspace*{.5ex} + \end{minipage} + }% + %%WhileDo{condition}{code} sur une seule ligne / on a single line + \newcommand{\@ShortWhileDo}[2]{\begin{minipage}[t]{\alglength} + \@WHILE (##1) \@DO ##2 \@ENDWHILE + \vspace*{.5ex} + \end{minipage} + }% + + %%RepeatUntil{code}{condition} + \newcommand{\@RepeatUntil}[2]{\begin{minipage}[t]{\alglength} + \@REPEAT \\ + \hspace*{1em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##1\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@UNTIL (##2)% + \vspace*{.5ex} + \end{minipage} + }% + %%RepeatUntil{code}{condition} sur une seule ligne / on a single line + \newcommand{\@ShortRepeatUntil}[2]{\begin{minipage}[t]{\alglength} + \@REPEAT ##1 \@UNTIL (##2)% + \vspace*{.5ex} + \end{minipage} + }% + + %%ForFromToDo{variable}{valeur initiale}{valeur finale}{code} + %%ForFromToDo{variable}{initial value}{final value}{code} + \newcommand{\@ForFromToDo}[4]{\begin{minipage}[t]{\alglength} + \@FOR ##1 \@FROM ##2 \@TO ##3 \@DO \\ + \hspace*{.3em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##4\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDFOR% + \vspace*{.5ex} + \end{minipage} + }% + %%ForFromToDo{variable}{valeur initiale}{valeur finale}{code} sur une seule ligne + %%ForFromToDo{variable}{initial value}{final value}{code} on a single line + \newcommand{\@ShortForFromToDo}[4]{\begin{minipage}[t]{\alglength} + \@FOR ##1 \@FROM ##2 \@TO ##3 \@DO ##4 \@ENDFOR% + \vspace*{.5ex} + \end{minipage} + }% + + %%For{controle de boucle style C}{code} + %%For{C-like loop control}{code} + \newcommand{\@ForDo}[2]{\begin{minipage}[t]{\alglength} + \@FOR ##1 \@DO \vspace*{.5ex}\\ + \hspace*{.3em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##2\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDFOR% + \vspace*{.5ex} + \end{minipage} + }% + %%For{controle de boucle style C}{code} sur une seule ligne + %%For{C-like loop control}{code} on a single line + \newcommand{\@ShortForDo}[2]{\begin{minipage}[t]{\alglength} + \@FOR ##1 \@DO ##2 \@ENDFOR% + \vspace*{.5ex} + \end{minipage} + }% + + %%IfThen{condition}{code} + \newcommand{\@IfThen}[2]{\begin{minipage}[t]{\alglength} + \@IF (##1) \@THEN \\ + \hspace*{.5em} + \addtolength{\alglength}{-1.5em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##2\\ \end{tabular}% + \addtolength{\alglength}{1.5em+\tabcolsep+\arrayrulewidth} + \\ \@ENDIF% + \vspace*{.5ex} + \end{minipage} + }% + %%IfThen{condition}{code} sur une seule ligne / on a single line + \newcommand{\@ShortIfThen}[2]{\begin{minipage}[t]{\alglength} + \@IF (##1) \@THEN ##2 \@ENDIF% + \vspace*{.5ex} + \end{minipage} + }% + + %%IfThenElse{condition}{code du then}{code du else} NE PAS CONFONDRE avec le \ifthenelse de LaTeX + %%IfThenElse{condition}{then-code}{else-code} DO NOT CONFUSE with \ifthenelse from LaTeX + \newcommand{\@IfThenElse}[3]{\begin{minipage}[t]{\alglength} + \@IF (##1) \@THEN \\ + \hspace*{.5em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##2\\ \end{tabular}% + \\ \@ELSE\\ + \hspace*{.5em} + \begin{tabular}{|p{\alglength}} ##3\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDIF% + \vspace*{.5ex} + \end{minipage} + }% + %%IfThenElse{condition}{code du then}{code du else} sur une seule ligne + %%IfThenElse{condition}{then-code}{else-code} on a single line + \newcommand{\@ShortIfThenElse}[3]{\begin{minipage}[t]{\alglength} + \@IF (##1) \@THEN ##2 \@ELSE ##3 \@ENDIF% + \vspace*{.5ex} + \end{minipage} + }% + + %%Switch{code} (C'est le selon que) + \newcommand{\@Switch}[1]{\begin{minipage}[t]{\alglength} + \@SWITCH \\ + \hspace*{1em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##1\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDSWITCH% + \vspace*{.5ex} + \end{minipage} + }% + + %%Function{parametres}{type de retour}{code} + %%Function{parameters}{return type}{code} + \newcommand{\@Function}[4]{\begin{minipage}[t]{\alglength} + \@FUNCTION ##1(##2) : \textbf{##3}\\ + \hspace*{1em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##4\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDFUNCTION% + \vspace*{.5ex} + \end{minipage} + }% + + %%Procedure{parametres}{code} + %%Procedure{parameters}{code} + \newcommand{\@Procedure}[3]{\begin{minipage}[t]{\alglength} + \@PROCEDURE ##1(##2)\\ + \hspace*{1em} + \addtolength{\alglength}{-2em-\tabcolsep-\arrayrulewidth} + \begin{tabular}{|p{\alglength}} ##3\\ \end{tabular}% + \addtolength{\alglength}{2em+\tabcolsep+\arrayrulewidth} + \\ \@ENDPROCEDURE% + \vspace*{.5ex} + \end{minipage} + }% + + %%Type{nom ou liste de variable}{nom de type} + %%Type{name or list of variables}{type name} + \newcommand{\@Type}[2]{##1 : \textbf{##2}} + + %%Definition des macro-commandes pratiques pour l'utilisateur. + %%La forme etoilee de certaines commandes est un alias de leur version courte (sur une seule ligne) + %%Definition of macro-commands useful for the user. + %%The star-from of some commands is an alias towards ther short form (on a single line) + \def\True{ \@TRUE}% + \def\False{ \@FALSE}% + \def\And{ \@AND}% + \def\Or{ \@OR}% + \def\Not{ \@NOT}% + \def\Rem{ \@Rem} + \def\Block{ \@Block} + \def\While{ \@ifstar{\@ShortWhileDo} {\@WhileDo}} + \def\WhileDo{ \@ifstar{\@ShortWhileDo} {\@WhileDo}} + \def\Repeat{ \@ifstar{\@ShortRepeatUntil} {\@RepeatUntil}} + \def\RepeatUntil{\@ifstar{\@ShortRepeatUntil} {\@RepeatUntil}} + \def\ForFromTo{ \@ifstar{\@ShortForFromToDo} {\@ForFromToDo}} + \def\ForFromToDo{\@ifstar{\@ShortForFromToDo} {\@ForFromToDo}} + \def\ForDo{ \@ifstar{\@ShortForDo} {\@ForDo}} + \def\For{ \@ifstar{\@ShortForDo} {\@ForDo}} + \def\If{ \@ifstar{\@ShortIfThen} {\@IfThen}} + \def\IfThen{ \@ifstar{\@ShortIfThen} {\@IfThen}} + \def\IfThenElse{ \@ifstar{\@ShortIfThenElse} {\@IfThenElse}} + \def\Switch{ \@ifstar{\@Switch} {\@Switch}} + \def\Function{ \@ifstar{\@Function} {\@Function}} + \def\Return{ \@RETURN} + \def\Procedure{ \@ifstar{\@Procedure} {\@Procedure}} + \def\Type{ \@Type} + + \begin{minipage}[t]{\alglength} + \begin{center}\begin{tabular}{|c|}\hline\\ + \hspace*{.5em} + \begin{minipage}[t]{\alglength} +} +%% Fin de l'environnement "algorithme" / end of "algorithme" environnment +{ + \end{minipage}\hspace*{.5em} + \\\\\hline\end{tabular}\end{center} + \end{minipage} + \end{algorithmfloat} +} + +%% ----------------------------- FIN / END --------------------------------------- diff --git a/bib.bib b/bib.bib new file mode 100644 index 0000000..2c7bd8c --- /dev/null +++ b/bib.bib @@ -0,0 +1,1558 @@ +@article{ref1, + title={Wireless sensor networks: a survey}, + author={Akyildiz, Ian F and Su, Weilian and Sankarasubramaniam, Yogesh and Cayirci, Erdal}, + journal={Computer networks}, + volume={38}, + number={4}, + pages={393--422}, + year={2002}, + publisher={Elsevier} +} + + +@book{ref2, + title={Guide to wireless sensor networks}, + author={Misra, Sudip and Misra, Subhas Chandra and Woungang, Isaac}, + volume={7}, + year={2009}, + publisher={Springer} +} + +@article{ref3, + title={Wireless sensor networks: A survey on the state of the art and the 802.15. 4 and ZigBee standards}, + author={Baronti, Paolo and Pillai, Prashant and Chook, Vince WC and Chessa, Stefano and Gotta, Alberto and Hu, Y Fun}, + journal={Computer communications}, + volume={30}, + number={7}, + pages={1655--1695}, + year={2007}, + publisher={Elsevier} +} + +@article{ref4, + title={Wireless sensor network survey}, + author={Yick, Jennifer and Mukherjee, Biswanath and Ghosal, Dipak}, + journal={Computer networks}, + volume={52}, + number={12}, + pages={2292--2330}, + year={2008}, + publisher={Elsevier} +} + +@article{ref5, + title={Wireless sensor networks: a survey on recent developments and potential synergies}, + author={Rawat, Priyanka and Singh, Kamal Deep and Chaouchi, Hakima and Bonnin, Jean Marie}, + journal={The Journal of Supercomputing}, + volume={68}, + number={1}, + pages={1--48}, + year={2014}, + publisher={Springer} +} + +@article{ref6, + title={Application-driven design of aerial communication networks}, + author={Andre, Torsten and Hummel, Karin Anna and Schoellig, Angela P and Yanmaz, Evsen and Asadpour, Mahdi and Bettstetter, Christian and Grippa, Pasquale and Hellwagner, Hermann and Sand, Stephan and Zhang, Siwei}, + journal={Communications Magazine, IEEE}, + volume={52}, + number={5}, + pages={129--137}, + year={2014}, + publisher={IEEE} +} + +@inproceedings{ref7, + title={Sensorflock: an airborne wireless sensor network of micro-air vehicles}, + author={Allred, Jude and Hasan, Ahmad Bilal and Panichsakul, Saroch and Pisano, William and Gray, Peter and Huang, Jyh and Han, Richard and Lawrence, Dale and Mohseni, Kamran}, + booktitle={Proceedings of the 5th international conference on Embedded networked sensor systems}, + pages={117--129}, + year={2007}, + organization={ACM} +} + +@article{ref8, + title={Flying ad-hoc networks (FANETs): a survey}, + author={Bekmezci, Ilker and Sahingoz, Ozgur Koray and Temel, {\c{S}}amil}, + journal={Ad Hoc Networks}, + volume={11}, + number={3}, + pages={1254--1270}, + year={2013}, + publisher={Elsevier} +} + +@article{ref9, + title={Wireless underground sensor networks: Research challenges}, + author={Akyildiz, Ian F and Stuntebeck, Erich P}, + journal={Ad Hoc Networks}, + volume={4}, + number={6}, + pages={669--686}, + year={2006}, + publisher={Elsevier} +} + +@article{ref10, + title={Signal propagation techniques for wireless underground communication networks}, + author={Akyildiz, Ian F and Sun, Zhi and Vuran, Mehmet C}, + journal={Physical Communication}, + volume={2}, + number={3}, + pages={167--183}, + year={2009}, + publisher={Elsevier} +} + +@inproceedings{ref11, + title={Underwater wireless sensor networks}, + author={Davis, Almir and Chang, Hwa}, + booktitle={Oceans, 2012}, + pages={1--5}, + year={2012}, + organization={IEEE} +} + +@article{ref12, + title={Underwater acoustic sensor networks: research challenges}, + author={Akyildiz, Ian F and Pompili, Dario and Melodia, Tommaso}, + journal={Ad hoc networks}, + volume={3}, + number={3}, + pages={257--279}, + year={2005}, + publisher={Elsevier} +} + +@article{ref13, + title={A survey on wireless multimedia sensor networks}, + author={Akyildiz, Ian F and Melodia, Tommaso and Chowdhury, Kaushik R}, + journal={Computer networks}, + volume={51}, + number={4}, + pages={921--960}, + year={2007}, + publisher={Elsevier} +} + +@article{ref14, + title={Wireless multimedia sensor networks: Applications and testbeds}, + author={Akyildiz, Ian F and Melodia, Tommaso and Chowdhury, Kaushik R}, + journal={Proceedings of the IEEE}, + volume={96}, + number={10}, + pages={1588--1605}, + year={2008}, + publisher={IEEE} +} +@article{ref15, + title={Wireless multimedia sensor networks: A survey}, + author={Akyildiz, Ian F and Melodia, Tommaso and Chowdury, Kaushik R}, + journal={Wireless Communications, IEEE}, + volume={14}, + number={6}, + pages={32--39}, + year={2007}, + publisher={IEEE} +} + +@article{ref16, + title={Mobility in Wireless Sensor Networks—Survey and Proposal}, + author={Silva, Ricardo and Silva, Jorge Sa and Boavida, Fernando}, + journal={Computer Communications}, + year={2014}, + publisher={Elsevier} +} + +@article{ref17, + title={A survey on sensor networks}, + author={Akyildiz, Ian F and Su, Weilian and Sankarasubramaniam, Yogesh and Cayirci, Erdal}, + journal={Communications magazine, IEEE}, + volume={40}, + number={8}, + pages={102--114}, + year={2002}, + publisher={IEEE} +} + +@book{ref18, + title={Fundamentals of wireless sensor networks: theory and practice}, + author={Dargie, Waltenegus and Poellabauer, Christian}, + year={2010}, + publisher={John Wiley \& Sons} +} + +@book{ref19, + title={Wireless sensor networks}, + author={Akyildiz, Ian F and Vuran, Mehmet Can}, + volume={4}, + year={2010}, + publisher={John Wiley \& Sons} +} + +@article{ref20, + title={Energy harvesting: State-of-the-art}, + author={Harb, Adnan}, + journal={Renewable Energy}, + volume={36}, + number={10}, + pages={2641--2654}, + year={2011}, + publisher={Elsevier} +} + +@article{ref21, + title={Micropower energy harvesting}, + author={Vullers, RJM and van Schaijk, Rob and Doms, Inge and Van Hoof, Chris and Mertens, R}, + journal={Solid-State Electronics}, + volume={53}, + number={7}, + pages={684--693}, + year={2009}, + publisher={Elsevier} +} + +@article{ref22, + title={Energy efficiency in wireless sensor networks: A top-down survey}, + author={Rault, Tifenn and Bouabdallah, Abdelmadjid and Challal, Yacine}, + journal={Computer Networks}, + volume={67}, + pages={104--122}, + year={2014}, + publisher={Elsevier} +} + +@inproceedings{ref23, + title={PIPENET: A wireless sensor network for pipeline monitoring}, + author={Stoianov, Ivan and Nachman, Lama and Madden, Sam and Tokmouline, Timur and Csail, M}, + booktitle={Information Processing in Sensor Networks, 2007. IPSN 2007. 6th International Symposium on}, + pages={264--273}, + year={2007}, + organization={IEEE} +} + +@article{ref24, + title={Focal design issues affecting the deployment of wireless sensor networks for pipeline monitoring}, + author={Owojaiye, Gbenga and Sun, Yichuang}, + journal={Ad Hoc Networks}, + volume={11}, + number={3}, + pages={1237--1253}, + year={2013}, + publisher={Elsevier} +} + +@article{ref25, + title={Wireless multimedia sensor and actor networks for the next generation power grid}, + author={Erol-Kantarci, Melike and Mouftah, Hussein T}, + journal={Ad Hoc Networks}, + volume={9}, + number={4}, + pages={542--551}, + year={2011}, + publisher={Elsevier} +} + +@article{ref26, + title={A survey on the communication architectures in smart grid}, + author={Wang, Wenye and Xu, Yi and Khanna, Mohit}, + journal={Computer Networks}, + volume={55}, + number={15}, + pages={3604--3629}, + year={2011}, + publisher={Elsevier} +} + +@article{ref27, + title={Wireless sensor networks for healthcare: A survey}, + author={Alemdar, Hande and Ersoy, Cem}, + journal={Computer Networks}, + volume={54}, + number={15}, + pages={2688--2710}, + year={2010}, + publisher={Elsevier} +} + +@article{ref28, + title={Wireless sensor networks for rehabilitation applications: Challenges and opportunities}, + author={Hadjidj, Abdelkrim and Souil, Marion and Bouabdallah, Abdelmadjid and Challal, Yacine and Owen, Henry}, + journal={Journal of Network and Computer Applications}, + volume={36}, + number={1}, + pages={1--15}, + year={2013}, + publisher={Elsevier} +} + +@article{ref29, + title={Environmental parameters monitoring in precision agriculture using wireless sensor networks}, + author={Srbinovska, Mare and Gavrovski, Cvetan and Dimcev, Vladimir and Krkoleva, Aleksandra and Borozan, Vesna}, + journal={Journal of Cleaner Production}, + year={2014}, + publisher={Elsevier} +} + +@article{ref30, + title={A review of wireless sensors and networks' applications in agriculture}, + author={Abbasi, Abu Zafar and Islam, Noman and Shaikh, Zubair Ahmed and others}, + journal={Computer Standards \& Interfaces}, + volume={36}, + number={2}, + pages={263--270}, + year={2014}, + publisher={Elsevier} +} + +@article{ref31, + title={Virtual fencing applications: Implementing and testing an automated cattle control system}, + author={Bishop-Hurley, GJ and Swain, David L and Anderson, DM and Sikka, Pavan and Crossman, Christopher and Corke, Peter}, + journal={Computers and Electronics in Agriculture}, + volume={56}, + number={1}, + pages={14--22}, + year={2007}, + publisher={Elsevier} +} + +@article{ref32, + title={ZigBee-based wireless sensor networks for classifying the behaviour of a herd of animals using classification trees}, + author={Nadimi, ES and S{\o}gaard, Henning Tangen and Bak, Thomas}, + journal={Biosystems engineering}, + volume={100}, + number={2}, + pages={167--176}, + year={2008}, + publisher={Elsevier} +} + +@article{ref33, + title={Challenges in the design of a GNSS ear tag for feedlot cattle}, + author={Schleppe, JB and Lachapelle, G and Booker, CW and Pittman, T}, + journal={Computers and electronics in agriculture}, + volume={70}, + number={1}, + pages={84--95}, + year={2010}, + publisher={Elsevier} +} + +@article{ref34, + title={Practical considerations for wireless sensor networks in cattle monitoring applications}, + author={Kwong, Kae Hsiang and Wu, Tsung-Ta and Goh, Hock Guan and Sasloglou, Konstantinos and Stephen, Bruce and Glover, Ian and Shen, Chong and Du, Wencai and Michie, Craig and Andonovic, Ivan}, + journal={Computers and Electronics in Agriculture}, + volume={81}, + pages={33--44}, + year={2012}, + publisher={Elsevier} +} + +@article{ref35, + title={ZigBee-based wireless sensor network localization for cattle monitoring in grazing fields}, + author={Huirc{\'a}n, Juan Ignacio and Mu{\~n}oz, Carlos and Young, H{\'e}ctor and Von Dossow, Ludwig and Bustos, Jaime and Vivallo, Gabriel and Toneatti, Marcelo}, + journal={Computers and Electronics in Agriculture}, + volume={74}, + number={2}, + pages={258--264}, + year={2010}, + publisher={Elsevier} +} + +@article{ref36, + title={Wireless sensor networks for traffic monitoring in a logistic centre}, + author={Bottero, Marco and Dalla Chiara, Bruno and Deflorio, Francesco Paolo}, + journal={Transportation Research Part C: Emerging Technologies}, + volume={26}, + pages={99--124}, + year={2013}, + publisher={Elsevier} +} + +@article{ref37, + title={Using wireless sensor networks to support intelligent transportation systems}, + author={Tacconi, David and Miorandi, Daniele and Carreras, Iacopo and Chiti, Francesco and Fantacci, Romano}, + journal={Ad Hoc Networks}, + volume={8}, + number={5}, + pages={462--473}, + year={2010}, + publisher={Elsevier} +} + +@inproceedings{ref38, + title={VS 3: A Vehicular Surveillance and Sensing System for security applications}, + author={Chen, Lien-Wu and Syue, Kun-Ze and Tseng, Yu-Chee}, + booktitle={Mobile Adhoc and Sensor Systems, 2009. MASS'09. IEEE 6th International Conference on}, + pages={1071--1073}, + year={2009}, + organization={IEEE} +} + +@article{ref39, + title={An infrastructure-less framework for preventing rear-end collisions by vehicular sensor networks}, + author={Chen, Lien-Wu and Peng, Yu-Hao and Tseng, Yu-Chee}, + journal={Communications Letters, IEEE}, + volume={15}, + number={3}, + pages={358--360}, + year={2011}, + publisher={IEEE} +} + +@article{ref40, + title={Applying telecommunications methodology to road safety for rear-end collision avoidance}, + author={Benedetto, Francesco and Calvi, Alessandro and D’Amico, Fabrizio and Giunta, Gaetano}, + journal={Transportation Research Part C: Emerging Technologies}, + year={2014}, + publisher={Elsevier} +} + +@inproceedings{ref41, + title={An integrated network of roadside sensors and vehicles for driving safety: Concept, design and experiments}, + author={Qin, Hua and Li, Zi and Wang, Yanfei and Lu, Xuejia and Zhang, Wensheng and Wang, Guiling}, + booktitle={Pervasive Computing and Communications (PerCom), 2010 IEEE International Conference on}, + pages={79--87}, + year={2010}, + organization={IEEE} +} + +@article{ref42, + title={Classical and swarm intelligence based routing protocols for wireless sensor networks: A survey and comparison}, + author={Zungeru, Adamu Murtala and Ang, Li-Minn and Seng, Kah Phooi}, + journal={Journal of Network and Computer Applications}, + volume={35}, + number={5}, + pages={1508--1536}, + year={2012}, + publisher={Elsevier} +} + +@article{ref43, + title={A survey on clustering algorithms for wireless sensor networks}, + author={Abbasi, Ameer Ahmed and Younis, Mohamed}, + journal={Computer communications}, + volume={30}, + number={14}, + pages={2826--2841}, + year={2007}, + publisher={Elsevier} +} + +@article{ref44, + title={COCA: Constructing optimal clustering architecture to maximize sensor network lifetime}, + author={Li, Huan and Liu, Yanlei and Chen, Weifeng and Jia, Weijia and Li, Bing and Xiong, Junwu}, + journal={Computer Communications}, + volume={36}, + number={3}, + pages={256--268}, + year={2013}, + publisher={Elsevier} +} + +@article{ref45, + title={Energy-aware routing for biomedical wireless sensor networks}, + author={Abreu, Carlos and Ricardo, Manuel and Mendes, PM}, + journal={Journal of Network and Computer Applications}, + volume={40}, + pages={270--278}, + year={2014}, + publisher={Elsevier} +} + +@article{ref46, + title={Modeling and optimization of energy efficient routing in wireless sensor networks}, + author={Lee, Jeong-Hun and Moon, Ilkyeong}, + journal={Applied Mathematical Modelling}, + volume={38}, + number={7}, + pages={2280--2289}, + year={2014}, + publisher={Elsevier} +} + +@inproceedings{ref47, + title={Energy aware routing for wireless sensor networks}, + author={Vidhyapriya, R and Vanathi, PT}, + booktitle={Signal Processing, Communications and Networking, 2007. ICSCN'07. International Conference on}, + pages={545--550}, + year={2007}, + organization={IEEE} +} + +@inproceedings{ref48, + title={Energy aware routing for low energy ad hoc sensor networks}, + author={Shah, Rahul C and Rabaey, Jan M}, + booktitle={Wireless Communications and Networking Conference, 2002. WCNC2002. 2002 IEEE}, + volume={1}, + pages={350--355}, + year={2002}, + organization={IEEE} +} + +@article{ref49, + title={Energy-aware geographic routing in wireless sensor networks with anchor nodes}, + author={Huang, Haojun and Hu, Guangmin and Yu, Fucai}, + journal={International Journal of Communication Systems}, + volume={26}, + number={1}, + pages={100--113}, + year={2013}, + publisher={Wiley Online Library} +} + +@article{ref50, + title={Multipath routing techniques in wireless sensor networks: A survey}, + author={Sha, Kewei and Gehlot, Jegnesh and Greve, Robert}, + journal={Wireless personal communications}, + volume={70}, + number={2}, + pages={807--829}, + year={2013}, + publisher={Springer} +} + +@article{ref51, + title={Multipath routing in wireless sensor networks: survey and research challenges}, + author={Radi, Marjan and Dezfouli, Behnam and Bakar, Kamalrulnizam Abu and Lee, Malrey}, + journal={Sensors}, + volume={12}, + number={1}, + pages={650--685}, + year={2012}, + publisher={Molecular Diversity Preservation International} +} + +@article{ref52, + title={Relay node placement in wireless sensor networks}, + author={Lloyd, Errol L and Xue, Guoliang}, + journal={Computers, IEEE Transactions on}, + volume={56}, + number={1}, + pages={134--138}, + year={2007}, + publisher={IEEE} +} + +@inproceedings{ref53, + title={Design Guidelines for Maximizing Lifetime and Avoiding Energy Holes in Sensor Networks with Uniform Distribution and Uniform Reporting.}, + author={Olariu, Stephan and Stojmenovic, Ivan}, + booktitle={INFOCOM}, + pages={1--12}, + year={2006} +} + +@article{ref54, + title={A rendezvous-based approach enabling energy-efficient sensory data collection with mobile sinks}, + author={Konstantopoulos, Charalampos and Pantziou, Grammati and Gavalas, Damianos and Mpitziopoulos, Aristides and Mamalis, Basilis}, + journal={Parallel and Distributed Systems, IEEE Transactions on}, + volume={23}, + number={5}, + pages={809--817}, + year={2012}, + publisher={IEEE} +} + +@article{ref55, + title={Distributed algorithm for lifetime maximization in a delay-tolerant wireless sensor network with a mobile sink}, + author={Yun, YoungSang and Xia, Ye and Behdani, Behnam and Smith, J Cole}, + journal={Mobile Computing, IEEE Transactions on}, + volume={12}, + number={10}, + pages={1920--1930}, + year={2013}, + publisher={IEEE} +} + +@article{ref56, + title={Energy conservation in wireless sensor networks: A survey}, + author={Anastasi, Giuseppe and Conti, Marco and Di Francesco, Mario and Passarella, Andrea}, + journal={Ad Hoc Networks}, + volume={7}, + number={3}, + pages={537--568}, + year={2009}, + publisher={Elsevier} +} + +@article{ref57, + title={Survey on wakeup scheduling for environmentally-powered wireless sensor networks}, + author={Valera, Alvin C and Soh, Wee-Seng and Tan, Hwee-Pink}, + journal={Computer Communications}, + year={2014}, + publisher={Elsevier} +} + + +@article{ref58, + title={A survey of energy-efficient scheduling mechanisms in sensor networks}, + author={Wang, Lan and Xiao, Yang}, + journal={Mobile Networks and Applications}, + volume={11}, + number={5}, + pages={723--740}, + year={2006}, + publisher={Springer} +} + +@article{ref59, + title={Energy management in Wireless Sensor Networks: A survey}, + author={Khan, Junaid Ahmed and Qureshi, Hassaan Khaliq and Iqbal, Adnan}, + journal={Computers \& Electrical Engineering}, + year={2014}, + publisher={Elsevier} +} + +@inproceedings{ref60, + title={An energy-efficient MAC protocol for wireless sensor networks}, + author={Ye, Wei and Heidemann, John and Estrin, Deborah}, + booktitle={INFOCOM 2002. Twenty-First Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings. IEEE}, + volume={3}, + pages={1567--1576}, + year={2002}, + organization={IEEE} +} + +@inproceedings{ref61, + title={An adaptive energy-efficient MAC protocol for wireless sensor networks}, + author={Van Dam, Tijs and Langendoen, Koen}, + booktitle={Proceedings of the 1st international conference on Embedded networked sensor systems}, + pages={171--180}, + year={2003}, + organization={ACM} +} + +@inproceedings{ref62, + title={PMAC: an adaptive energy-efficient MAC protocol for wireless sensor networks}, + author={Zheng, Tao and Radhakrishnan, Sridhar and Sarangan, Venkatesh}, + booktitle={Parallel and Distributed Processing Symposium, 2005. Proceedings. 19th IEEE International}, + pages={8--pp}, + year={2005}, + organization={IEEE} +} + +@inproceedings{ref63, + title={Medium access control with a dynamic duty cycle for sensor networks}, + author={Lin, Peng and Qiao, Chunming and Wang, Xin}, + booktitle={Wireless Communications and Networking Conference, 2004. WCNC. 2004 IEEE}, + volume={3}, + pages={1534--1539}, + year={2004}, + organization={IEEE} +} + +@inproceedings{ref64, + title={ESC: Energy synchronized communication in sustainable sensor networks}, + author={Gu, Yu and Zhu, Ting and He, Tian}, + booktitle={Network Protocols, 2009. ICNP 2009. 17th IEEE International Conference on}, + pages={52--62}, + year={2009}, + organization={IEEE} +} + +@article{ref65, + title={Extending the lifetime of wireless sensor networks through adaptive sleep}, + author={Anastasi, Giuseppe and Conti, Marco and Di Francesco, Mario}, + journal={Industrial Informatics, IEEE Transactions on}, + volume={5}, + number={3}, + pages={351--365}, + year={2009}, + publisher={IEEE} +} + +@inproceedings{ref66, + title={Sleep-based topology control for wakeup scheduling in wireless sensor networks}, + author={Zhou, Yuanyuan and Medidi, Muralidhar}, + booktitle={Sensor, Mesh and Ad Hoc Communications and Networks, 2007. SECON'07. 4th Annual IEEE Communications Society Conference on}, + pages={304--313}, + year={2007}, + organization={IEEE} +} + +@inproceedings{ref67, + title={RMAC: A routing-enhanced duty-cycle MAC protocol for wireless sensor networks}, + author={Du, Shu and Saha, Amit Kumar and Johnson, David B}, + booktitle={INFOCOM 2007. 26th IEEE International Conference on Computer Communications. IEEE}, + pages={1478--1486}, + year={2007}, + organization={IEEE} +} + +@inproceedings{ref68, + title={Delay efficient sleep scheduling in wireless sensor networks}, + author={Lu, Gang and Sadagopan, Narayanan and Krishnamachari, Bhaskar and Goel, Ashish}, + booktitle={INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE}, + volume={4}, + pages={2470--2481}, + year={2005}, + organization={IEEE} +} + +@article{ref69, + title={Sleep scheduling for wireless sensor networks via network flow model}, + author={Ha, Rick W and Ho, Pin-Han and Shen, X Sherman and Zhang, Junshan}, + journal={Computer Communications}, + volume={29}, + number={13}, + pages={2469--2481}, + year={2006}, + publisher={Elsevier} +} + +@article{ref70, + title={Adaptive duty cycle control with queue management in wireless sensor networks}, + author={Byun, Heejung and Yu, Junglok}, + journal={Mobile Computing, IEEE Transactions on}, + volume={12}, + number={6}, + pages={1214--1224}, + year={2013}, + publisher={IEEE} +} + +@article{ref71, + title={Energy-neutral scheduling and forwarding in environmentally-powered wireless sensor networks}, + author={Valera, Alvin C and Soh, Wee-Seng and Tan, Hwee-Pink}, + journal={Ad Hoc Networks}, + volume={11}, + number={3}, + pages={1202--1220}, + year={2013}, + publisher={Elsevier} +} + +@inproceedings{ref72, + title={Energy and delivery capacity of wireless sensor networks with random duty-cycles}, + author={Dai, Lillian and Basu, Prithwish}, + booktitle={Communications, 2006. ICC'06. IEEE International Conference on}, + volume={8}, + pages={3503--3510}, + year={2006}, + organization={IEEE} +} + +@inproceedings{ref73, + title={An energy-efficient markov chain-based randomized duty cycling scheme for wireless sensor networks}, + author={Ghidini, Giacomo and Das, Sajal K}, + booktitle={Distributed Computing Systems (ICDCS), 2011 31st International Conference on}, + pages={67--76}, + year={2011}, + organization={IEEE} +} + +@article{ref74, + title={Optimal sleep/wake scheduling for time-synchronized sensor networks with QoS guarantees}, + author={Wu, Yan and Fahmy, Sonia and Shroff, Ness B}, + journal={Networking, IEEE/ACM Transactions on}, + volume={17}, + number={5}, + pages={1508--1521}, + year={2009}, + publisher={IEEE} +} + +@inproceedings{ref75, + title={X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks}, + author={Buettner, Michael and Yee, Gary V and Anderson, Eric and Han, Richard}, + booktitle={Proceedings of the 4th international conference on Embedded networked sensor systems}, + pages={307--320}, + year={2006}, + organization={ACM} +} + +@inproceedings{ref76, + title={Versatile low power media access for wireless sensor networks}, + author={Polastre, Joseph and Hill, Jason and Culler, David}, + booktitle={Proceedings of the 2nd international conference on Embedded networked sensor systems}, + pages={95--107}, + year={2004}, + organization={ACM} +} + +@inproceedings{ref77, + title={RC-MAC: A receiver-centric medium access control protocol for wireless sensor networks}, + author={Huang, Pei and Wang, Chen and Xiao, Li and Chen, Hongyang}, + booktitle={Quality of Service (IWQoS), 2010 18th International Workshop on}, + pages={1--9}, + year={2010}, + organization={IEEE} +} + +@incollection{ref78, + title={A Receiver-Initiated MAC Protocol for Energy Harvesting Sensor Networks}, + author={Nguyen, Kien and Nguyen, Vu-Hoang and Le, Duy-Dinh and Ji, Yusheng and Duong, Duc Anh and Yamada, Shigeki}, + booktitle={Ubiquitous Information Technologies and Applications}, + pages={603--610}, + year={2014}, + publisher={Springer} +} + +@inproceedings{ref79, + title={iQueue-MAC: A traffic adaptive duty-cycled MAC protocol with dynamic slot allocation}, + author={Zhuo, Shuguo and Wang, Zhi and Song, Ye-Qiong and Wang, Zhibo and Almeida, Luis}, + booktitle={Sensor, Mesh and Ad Hoc Communications and Networks (SECON), 2013 10th Annual IEEE Communications Society Conference on}, + pages={95--103}, + year={2013}, + organization={IEEE} +} + +@article{ref80, + title={Z-MAC: a hybrid MAC for wireless sensor networks}, + author={Rhee, Injong and Warrier, Ajit and Aia, Mahesh and Min, Jeongki and Sichitiu, Mihail L}, + journal={IEEE/ACM Transactions on Networking (TON)}, + volume={16}, + number={3}, + pages={511--524}, + year={2008}, + publisher={IEEE Press} +} + +@inproceedings{ref81, + title={Asynchronous wakeup for ad hoc networks}, + author={Zheng, Rong and Hou, Jennifer C and Sha, Lui}, + booktitle={Proceedings of the 4th ACM international symposium on Mobile ad hoc networking \& computing}, + pages={35--45}, + year={2003}, + organization={ACM} +} + +@inproceedings{ref82, + title={A distributed wake-up scheduling for opportunistic forwarding in wireless sensor networks}, + author={Lee, Chul-Ho and others}, + booktitle={Global Telecommunications Conference (GLOBECOM 2010), 2010 IEEE}, + pages={1--5}, + year={2010}, + organization={IEEE} +} + +@article{ref83, + title={Heterogenous quorum-based wake-up scheduling in wireless sensor networks}, + author={Lai, Shouwen and Ravindran, Binoy and Cho, Hyeonjoong}, + journal={Computers, IEEE Transactions on}, + volume={59}, + number={11}, + pages={1562--1575}, + year={2010}, + publisher={IEEE} +} + +@inproceedings{ref84, + title={Geography-informed energy conservation for ad hoc routing}, + author={Xu, Ya and Heidemann, John and Estrin, Deborah}, + booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking}, + pages={70--84}, + year={2001}, + organization={ACM} +} + +@article{ref85, + title={Span: An energy-efficient coordination algorithm for topology maintenance in ad hoc wireless networks}, + author={Chen, Benjie and Jamieson, Kyle and Balakrishnan, Hari and Morris, Robert}, + journal={Wireless networks}, + volume={8}, + number={5}, + pages={481--494}, + year={2002}, + publisher={Springer} +} + +@article{ref86, + title={In-network aggregation techniques for wireless sensor networks: a survey}, + author={Fasolo, Elena and Rossi, Michele and Widmer, Jorg and Zorzi, Michele}, + journal={Wireless Communications, IEEE}, + volume={14}, + number={2}, + pages={70--87}, + year={2007}, + publisher={IEEE} +} + +@inproceedings{ref87, + title={Energy-efficient continuous activity recognition on mobile phones: An activity-adaptive approach}, + author={Yan, Zhixian and Subbaraju, Vigneshwaran and Chakraborty, Dipanjan and Misra, Archan and Aberer, Karl}, + booktitle={Wearable Computers (ISWC), 2012 16th International Symposium on}, + pages={17--24}, + year={2012}, + organization={Ieee} +} + +@article{ref88, + title={ASAP: an adaptive sampling approach to data collection in sensor networks}, + author={Gedik, Bugra and Liu, Ling and Yu, Philip S}, + journal={Parallel and Distributed Systems, IEEE Transactions on}, + volume={18}, + number={12}, + pages={1766--1783}, + year={2007}, + publisher={IEEE} +} + +@article{ref89, + title={A taxonomy and survey on green data center networks}, + author={Bilal, Kashif and Malik, Saif Ur Rehman and Khalid, Osman and Hameed, Abdul and Alvarez, Enrique and Wijaysekara, Vidura and Irfan, Rizwana and Shrestha, Sarjan and Dwivedy, Debjyoti and Ali, Mazhar and others}, + journal={Future Generation Computer Systems}, + year={2013} +} + +@article{ref90, + title={A spatial correlation aware algorithm to perform efficient data collection in wireless sensor networks}, + author={Villas, Leandro A and Boukerche, Azzedine and De Oliveira, Horacio ABF and De Araujo, Regina B and Loureiro, Antonio AF}, + journal={Ad Hoc Networks}, + year={2011}, + publisher={Elsevier} +} + +@article{ref91, + title={Power management in energy harvesting sensor networks}, + author={Kansal, Aman and Hsu, Jason and Zahedi, Sadaf and Srivastava, Mani B}, + journal={ACM Transactions on Embedded Computing Systems (TECS)}, + volume={6}, + number={4}, + pages={32}, + year={2007}, + publisher={ACM} +} + +@article{ref92, + title={On the lifetime of wireless sensor networks}, + author={Dietrich, Isabel and Dressler, Falko}, + journal={ACM Transactions on Sensor Networks (TOSN)}, + volume={5}, + number={1}, + pages={5}, + year={2009}, + publisher={ACM} +} + +@article{ref93, + title={A survey on distributed topology control techniques for extending the lifetime of battery powered wireless sensor networks}, + author={Aziz, Azrina Abd and Sekercioglu, Y Ahmet and Fitzpatrick, Paul and Ivanovich, Milosh}, + journal={Communications Surveys \& Tutorials, IEEE}, + volume={15}, + number={1}, + pages={121--144}, + year={2013}, + publisher={IEEE} +} + +@article{ref94, + title={Mobile ad hoc networking: milestones, challenges, and new research directions}, + author={Conti, Marco and Giordano, Silvia}, + journal={Communications Magazine, IEEE}, + volume={52}, + number={1}, + pages={85--96}, + year={2014}, + publisher={IEEE} +} + +@book{ref95, + author = {A. Nayak and I. Stojmenovic}, + title = {Wireless Sensor and Actuator Networks: Algorithms and Protocols for Scalable Coordination and Data Communication}, + publisher = {John Wiley and Sons, Inc}, + year = {2010}, +} + +@article{ref96, + title={A Survey on Topology Control in Wireless Sensor Networks: Taxonomy, Comparative Study, and Open Issues}, + author={Li, Mo and Vasilakos, Athanasios V}, + journal={Proceedings of the IEEE}, + volume={101}, + number={12}, + year={2013} +} + +@ARTICLE{ref97, + author = "S. Misra and M. P. Kumar and M. S. Obaidat", + title = "Connectivity preserving localized coverage algorithm for area monitoring using +wireless sensor networks ", + JOURNAL = {Computer Communications}, + VOLUME = {34}, + NUMBER = {12}, + PAGES = {1484-1496}, + YEAR = {2011}, +} + +@ARTICLE{ref98, +author={Changlin Yang and Kwan-Wu Chin}, +journal={Communications Letters, IEEE}, +title={Novel Algorithms for Complete Targets Coverage in Energy Harvesting Wireless Sensor Networks}, +year={2014}, +month={January}, +volume={18}, +number={1}, +pages={118-121}, +keywords={energy harvesting;linear programming;secondary cells;telecommunication power supplies;wireless sensor networks;MUA;WSN;activation schedule;complete targets coverage;energy conservation;energy harvesting wireless sensor networks;linear programming based solution;maximum utility algorithm;network lifetime maximization problem;recharging opportunities;sensor nodes;sleep state;time interval;wake-up schedule;Batteries;Energy harvesting;Erbium;Monitoring;Schedules;Sensors;Wireless sensor networks;Wireless sensor network;energy harvesting;targets coverage}, +doi={10.1109/LCOMM.2013.111513.132436}, +ISSN={1089-7798},} + +@inproceedings{ref99, + author = {Kumar, Santosh and Lai, Ten H. and Arora, Anish}, + title = {Barrier Coverage with Wireless Sensors}, + booktitle = {Proceedings of the 11th Annual International Conference on Mobile Computing and Networking}, + series = {MobiCom '05}, + year = {2005}, + isbn = {1-59593-020-5}, + location = {Cologne, Germany}, + pages = {284--298}, + numpages = {15}, + url = {http://doi.acm.org/10.1145/1080829.1080859}, + doi = {10.1145/1080829.1080859}, + acmid = {1080859}, + publisher = {ACM}, + address = {New York, NY, USA}, + keywords = {barrier coverage, coverage, critical conditions, localized algorithms, network topology, random geometric graphs, wireless sensor networks}, +} + +@inproceedings{ref100, + title={Maximum lifetime of reinforced barrier-coverage in Wireless Sensor Networks}, + author={Kim, Hyunbum and Cobb, Jorge A}, + booktitle={Networks (ICON), 2013 19th IEEE International Conference on}, + pages={1--6}, + year={2013}, + organization={IEEE} +} + +@article{ref101, + title={Coverage and connectivity issues in wireless sensor networks: A survey}, + author={Ghosh, Amitabha and Das, Sajal K}, + journal={Pervasive and Mobile Computing}, + volume={4}, + number={3}, + pages={303--334}, + year={2008}, + publisher={Elsevier} +} + +@article{ref102, + title={A survey on topology control in wireless sensor networks: Taxonomy, comparative study, and open issues}, + author={Li, Mo and Li, Zhenjiang and Vasilakos, Athanasios V}, + year={2013}, + publisher={IEEE} +} + +@article{ref103, + title={Coverage problems in sensor networks: A survey}, + author={Wang, Bang}, + journal={ACM Computing Surveys (CSUR)}, + volume={43}, + number={4}, + pages={32}, + year={2011}, + publisher={ACM} +} + +@inproceedings{ref104, + title={Irregular sensing range detection model for coverage based protocols in wireless sensor networks}, + author={Fei, Xin and Boukerche, Azzedine and Araujo, Regina B}, + booktitle={Global Telecommunications Conference, 2009. GLOBECOM 2009. IEEE}, + pages={1--6}, + year={2009}, + organization={IEEE} +} + +@article{ref105, + title={A survey on coverage and connectivity issues in wireless sensor networks}, + author={Zhu, Chuan and Zheng, Chunlin and Shu, Lei and Han, Guangjie}, + journal={Journal of Network and Computer Applications}, + volume={35}, + number={2}, + pages={619--632}, + year={2012}, + publisher={Elsevier} +} + +@article{ref106, + title={Dynamic adjustment of sensing range for event coverage in wireless sensor networks}, + author={Alam, Kh Mahmudul and Kamruzzaman, Joarder and Karmakar, Gour and Murshed, Manzur}, + journal={Journal of Network and Computer Applications}, + volume={46}, + pages={139--153}, + year={2014}, + publisher={Elsevier} +} + +@article{ref107, + title={Strategies and techniques for node placement in wireless sensor networks: A survey}, + author={Younis, Mohamed and Akkaya, Kemal}, + journal={Ad Hoc Networks}, + volume={6}, + number={4}, + pages={621--655}, + year={2008}, + publisher={Elsevier} +} + +@article{ref108, + title={Integrated coverage and connectivity configuration for energy conservation in sensor networks}, + author={Xing, Guoliang and Wang, Xiaorui and Zhang, Yuanfang and Lu, Chenyang and Pless, Robert and Gill, Christopher}, + journal={ACM Transactions on Sensor Networks (TOSN)}, + volume={1}, + number={1}, + pages={36--72}, + year={2005}, + publisher={ACM} +} + +@article{ref109, + title={An application-specific protocol architecture for wireless microsensor networks}, + author={Heinzelman, Wendi B and Chandrakasan, Anantha P and Balakrishnan, Hari}, + journal={Wireless Communications, IEEE Transactions on}, + volume={1}, + number={4}, + pages={660--670}, + year={2002}, + publisher={IEEE} +} + +@inproceedings{ref110, + title={Energy-efficient communication protocol for wireless microsensor networks}, + author={Heinzelman, Wendi Rabiner and Chandrakasan, Anantha and Balakrishnan, Hari}, + booktitle={System Sciences, 2000. Proceedings of the 33rd Annual Hawaii International Conference on}, + pages={10--pp}, + year={2000}, + organization={IEEE} +} + +@ARTICLE{ref111, +author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li}, +title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks}, +journal ={MILCOM}, +volume = {0}, +isbn = {1-4244-0617-X}, +year = {2006}, +pages = {1-7}, +doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146}, +publisher = {IEEE Computer Society}, +address = {Los Alamitos, CA, USA}, +} + + +@ARTICLE{ref112, + title={Energy-aware wireless microsensor networks}, + author={Raghunathan, Vijay and Schurgers, Curt and Park, Sung and Srivastava, Mani B}, + journal={Signal Processing Magazine, IEEE}, + volume={19}, + number={2}, + pages={40--50}, + year={2002}, + publisher={IEEE} +} + +@ARTICLE{ref113, + title={Energy-efficient coverage problems in wireless ad-hoc sensor networks}, + author={Cardei, Mihaela and Wu, Jie}, + journal={Computer communications}, + volume={29}, + number={4}, + pages={413-420}, + year={2006}, + publisher={Elsevier} +} + +@inproceedings{ref114, + title={Set k-cover algorithms for energy efficient monitoring in wireless sensor networks}, + author={Abrams, Zo{\"e} and Goel, Ashish and Plotkin, Serge}, + booktitle={Proceedings of the 3rd international symposium on Information processing in sensor networks}, + pages={424-432}, + year={2004}, + organization={ACM} +} + +@ARTICLE{ref115, + title={Improving wireless sensor network lifetime through power aware organization}, + author={Cardei, Mihaela and Du, Ding-Zhu}, + journal={Wireless Networks}, + volume={11}, + number={3}, + pages={333-340}, + year={2005}, + publisher={Springer-Verlag New York, Inc.} +} + +@INPROCEEDINGS{ref116, + author = {S. Slijepcevic and M. Potkonjak}, + title = {Power Efficient Organization of Wireless Sensor Networks}, + booktitle = {IEEE International conference on Communications}, + year = {2001}, + pages = {472-476} +} + +@ARTICLE{ref117, + title={High-{E}nergy-{F}irst ({HEF}) Heuristic for Energy-Efficient Target Coverage Problem}, + author={Manjun and Pujari, Arun K}, + journal={International Journal of Ad Hoc, Sensor \& Ubiquitous Computing}, + volume={2}, + number={1}, + pages={45--58}, + year={2011} +} + +@article{ref118, + title={A Maximum Lifetime Coverage Algorithm Based on Linear Programming}, + author={Yang, Mengmeng and Liu, Jie}, + journal={Journal of Information Hiding and Multimedia Signal Processing }, + volume={5}, + number={2}, + pages={296--301}, + year={2014} +} + +@article{ref119, + title={Energy-Efficient Node Selection Algorithms with Correlation Optimization in Wireless Sensor Networks}, + author={Cheng, Hongju and Su, Zhihuang and Zhang, Daqiang and Lloret, Jaime and Yu, Zhiyong}, + journal={International Journal of Distributed Sensor Networks}, + volume={2014}, + year={2014}, + publisher={Hindawi Publishing Corporation} +} + +@article{ref120, + title={A column generation approach to extend lifetime in wireless sensor networks with coverage and connectivity constraints}, + author={Casta{\~n}o, Fabian and Rossi, Andr{\'e} and Sevaux, Marc and Velasco, Nubia}, + journal={Computers \& Operations Research}, + pages={--}, + year={2013}, + publisher={Elsevier} +} + +@article{ref121, + title={An exact approach for maximizing the lifetime of sensor networks with adjustable sensing ranges}, + author={Rossi, Andr{\'e} and Singh, Alok and Sevaux, Marc}, + journal={Computers \& Operations Research}, + volume={39}, + number={12}, + pages={3166--3176}, + year={2012}, + publisher={Elsevier} +} + +@article{ref122, + title={A Column Generation based Heuristic to Extend Lifetime in Wireless Sensor Network.}, + author={Deschinkel, Karine}, + journal={Sensors \& Transducers Journal}, + volume={14-2}, + pages={242--253}, + year={2012} +} + +@inproceedings{ref123, + author = {Gallais, Antoine and Carle, Jean and Simplot-Ryl, David and Stojmenovic, Ivan}, + title = {Localized Sensor Area Coverage with Low Communication Overhead}, + booktitle = {Proceedings of the Fourth Annual IEEE International Conference on Pervasive Computing and Communications}, + year = {2006}, + pages = {328-337}, +} + +@inproceedings{ref124, + author = {Tian, Di and Georganas, Nicolas D.}, + title = {A coverage-preserving node scheduling scheme for large wireless sensor networks}, + booktitle = {Proceedings of the 1st ACM international workshop on Wireless sensor networks and applications}, + series = {WSNA '02}, + year = {2002}, + pages = {32-41}, + publisher = {ACM}, +} + +@inproceedings{ref125, + author = {Ye, Fan and Zhong, Gary and Cheng, Jesse and Lu, Songwu and Zhang, Lixia}, + title = {PEAS: A Robust Energy Conserving Protocol for Long-lived Sensor Networks}, + booktitle = {Proceedings of the 23rd International Conference on Distributed Computing Systems}, + series = {ICDCS'03}, + year = {2003}, + pages = {28-37}, +} + +@ARTICLE{ref126, + author = {H. Zhang and J. C. Hou}, + title = {Maintaining Sensing Coverage and Connectivity in Large Sensor Networks}, + journal = {Ad Hoc {\&} Sensor Wireless Networks}, + volume = {1}, + number = {1-2}, + pages = {89--124}, + year = {2005}, + +} + +@article{ref127, + title={A distributed activity scheduling algorithm for wireless sensor networks with partial coverage}, + author={Yardibi, Tarik and Karasan, Ezhan}, + journal={Wireless Networks}, + volume={16}, + number={1}, + pages={213--225}, + year={2010}, + publisher={Springer} +} + +@incollection{ref128, + title={Distributed algorithms for lifetime of wireless sensor networks based on dependencies among cover sets}, + author={Prasad, Sushil K and Dhawan, Akshaye}, + booktitle={High Performance Computing--HiPC 2007}, + pages={381-392}, + year={2007}, + publisher={Springer} +} + +@ARTICLE{ref129, + author = "S. Misra and M. P. Kumar and M. S. Obaidat", + title = "Connectivity preserving localized coverage algorithm for area monitoring using +wireless sensor networks ", + JOURNAL = {Computer Communications}, + VOLUME = {34}, + NUMBER = {12}, + PAGES = {1484-1496}, + YEAR = {2011}, +} + +@INPROCEEDINGS{ref130, + author = {P. Berman and G. Calinescu and C. Shah and A. Zelikovsky}, + title = {Efficient energy management in sensor networks}, + booktitle = {Ad Hoc and Sensor Networks. Nova Science Publishers}, + year = {2005}, + publisher = {Nova Science Publisher} +} + +@inproceedings{ref131, + title={Coverage-aware self-scheduling in sensor networks}, + author={Lu, Jun and Suda, Tatsuya}, + booktitle={Computer Communications, 2003. CCW 2003. Proceedings. 2003 IEEE 18th Annual Workshop on}, + pages={117--123}, + year={2003}, + organization={IEEE} +} + +@ARTICLE{ref132, +author = {Chinh Vu and Shan Gao and Wiwek Deshmukh and Yingshu Li}, +title = {Distributed Energy-Efficient Scheduling Approach for K-Coverage in Wireless Sensor Networks}, +journal ={MILCOM}, +volume = {0}, +isbn = {1-4244-0617-X}, +year = {2006}, +pages = {1-7}, +doi = {http://doi.ieeecomputersociety.org/10.1109/MILCOM.2006.302146}, +publisher = {IEEE Computer Society}, +address = {Los Alamitos, CA, USA}, +} + +@ARTICLE{ref133, + author = "C.-F. Huang and Y.-C. Tseng", + title = "The Coverage Problem in a Wireless Sensor Network", + JOURNAL = {Mobile Networks and Applications}, + VOLUME = {10}, + NUMBER = {4}, + PAGES = {519-528}, + YEAR = {2005}, + } + +@ARTICLE{ref134, + author = "B. Wang and H. B. Lim and D. Ma ", + title = "A coverage-aware clustering protocol for wireless sensor networks", + JOURNAL = {Computer Networks}, + VOLUME = {56}, + NUMBER = {5}, + PAGES = {1599-1611}, + YEAR = {2012}, + } + +@ARTICLE{ref135, + author = "Z. Liu and Q. Zheng and L. Xue and X. Guan", + title = "A distributed energy-efficient clustering algorithm with improved coverage in +wireless sensor networks", + JOURNAL = {Future Generation Computer Systems}, + VOLUME = {28}, + NUMBER = {5}, + PAGES = {780-790}, + YEAR = {2012}, + } + +@ARTICLE{ref136, + author = "L. Zhang and Q. Zhu and J. Wang", + title = "Adaptive Clustering for Maximizing Network Lifetime and Maintaining Coverage ", + journal = {Journal of Networks}, + volume = {8}, + number = {3}, + pages = {616-622}, + year = {2013}, + } + +@ARTICLE{ref137, + author = " S. He and J. Chen and X. Li and X. Shen and Y. Sun ", + title = "Leveraging Prediction to Improve the Coverage of Wireless Sensor Networks", + JOURNAL = {IEEE Transations on Parallel Distributed Systems}, + VOLUME = {23}, + NUMBER = {4}, + PAGES = {701-712}, + YEAR = {2012}, + } + + @article{ref138, + title={Energy-efficient area monitoring for sensor networks}, + author={Carle, Jean and Simplot-Ryl, David}, + journal={Computer}, + volume={37}, + number={2}, + pages={40--46}, + year={2004}, + publisher={IEEE Computer Society} +} + +@inproceedings{GAF, + title={Geography-informed energy conservation for ad hoc routing}, + author={Xu, Ya and Heidemann, John and Estrin, Deborah}, + booktitle={Proceedings of the 7th annual international conference on Mobile computing and networking}, + pages={70--84}, + year={2001}, + organization={ACM} +} + +@inproceedings{DESK, + title={Distributed energy-efficient scheduling approach for k-coverage in wireless sensor networks}, + author={Vu, Chinh T and Gao, Shan and Deshmukh, Wiwek P and Li, Yingshu}, + booktitle={Military Communications Conference, 2006. MILCOM 2006. IEEE}, + pages={1--7}, + year={2006}, + organization={IEEE} +} + +@book{ref139, + title={Wireless ad hoc networking: personal-area, local-area, and the sensory-area networks}, + author={Wu, Shih-Lin and Tseng, Yu-Chee}, + year={2007}, + publisher={CRC Press} +} + +@article{ref140, + title={Handbook of sensor networks: Compact wireless and wired sensing systems}, + author={Haenggi, Martin and Reuther, Albert I and Goodman, Joel I and Martinez, David R and Ruiz, Linnyer Beatrys and Nogueira, Jos{\'e}Marcos and Loureiro, Antonio AF and Boulis, Athanassios and Warneke, Brett and Kamal, Ahmed E and others}, + journal={Opportunities and Challenges in Wire—less Sensor Networks. Boca Raton, FL: CRC Press}, + year={2005} +} + +@article{ref141, + title={A Branch and Bound Algorithm for the Critical Grid Coverage Problem in Wireless Sensor Networks}, + author={Rebai, Maher and Le Berre, Matthieu and Hnaien, Faicel and Snoussi, Hichem and Khoukhi, Lyes}, + journal={International Journal of Distributed Sensor Networks}, + volume={2014}, + year={2014}, + publisher={Hindawi Publishing Corporation} +} + +@article{ref142, + title={Transforming complete coverage algorithms to partial coverage algorithms for wireless sensor networks}, + author={Li, Yingshu and Vu, Chinh and Ai, Chunyu and Chen, Guantao and Zhao, Yi}, + journal={Parallel and Distributed Systems, IEEE Transactions on}, + volume={22}, + number={4}, + pages={695--703}, + year={2011}, + publisher={IEEE} +} + +@inproceedings{ref143, + title={A generalized coverage-preserving scheduling in WSNs: A case study in structural health monitoring}, + author={Liu, Xuefeng and Cao, Jiannong and Tang, Shaojie and Guo, Peng}, + booktitle={INFOCOM, 2014 Proceedings IEEE}, + pages={718--726}, + year={2014}, + organization={IEEE} +} + +@inproceedings{ref144, + title={Preserving target area coverage in wireless sensor networks by using computational geometry}, + author={Wang, San-Yuan and Shih, Kuei-Ping and Chen, Yen-Da and Ku, Hsin-Hui}, + booktitle={Wireless Communications and Networking Conference (WCNC), 2010 IEEE}, + pages={1--6}, + year={2010}, + organization={IEEE} +} + +@inproceedings{ref145, + title={A Distributed node scheduling protocol considering sensing coverage in wireless sensor networks}, + author={Cho, Jaekyu and Kim, Gilsoo and Kwon, Taekyoung and Choi, Yanghee}, + booktitle={Vehicular Technology Conference, 2007. VTC-2007 Fall. 2007 IEEE 66th}, + pages={352--356}, + year={2007}, + organization={IEEE} +} + +@inproceedings{ref146, + title={An algorithm for sensing coverage problem in wireless sensor networks}, + author={Quang, Vinh Tran and Miyoshi, Takumi}, + booktitle={Sarnoff Symposium, 2008 IEEE}, + pages={1--5}, + year={2008}, + organization={IEEE} +} + +@inproceedings{ref147, + title={Partitioning sensors by node coverage grouping in wireless sensor networks}, + author={Lin, Chow-Sing and Chen, Chih-Chung and Chen, An-Chi}, + booktitle={Parallel and Distributed Processing with Applications (ISPA), 2010 International Symposium on}, + pages={306--312}, + year={2010}, + organization={IEEE} +} + +@inproceedings{ref148, + title={On minimum cost coverage in wireless sensor networks}, + author={Zaidi, Syed Ali Raza and Hafeez, Maryam and Khayam, Syed A and McLernon, Desmond C and Ghogho, Mounir and Kim, K}, + booktitle={Information Sciences and Systems, 2009. CISS 2009. 43rd Annual Conference on}, + pages={213--218}, + year={2009}, + organization={IEEE} +} + +@article{ref149, + title={Distributed coverage in wireless ad hoc and sensor networks by topological graph approaches}, + author={Dong, Dezun and Liao, Xiangke and Liu, Kebin and Liu, Yunhao and Xu, Weixia}, + journal={Computers, IEEE Transactions on}, + volume={61}, + number={10}, + pages={1417--1428}, + year={2012}, + publisher={IEEE} +} + +@article{ref150, + title={Energy conservation algorithms for maintaining coverage and connectivity in wireless sensor networks}, + author={Liu, L and Hu, B and Li, L}, + journal={IET communications}, + volume={4}, + number={7}, + pages={786--800}, + year={2010}, + publisher={IET} +} + +@inproceedings{ref151, + title={Optimal node scheduling for integrated connected-coverage in wireless sensor networks}, + author={Aslanyan, Levon and Aslanyan, Hakob and Khosravi, Hamid}, + booktitle={Computer Science and Information Technologies (CSIT), 2013}, + pages={1--13}, + year={2013}, + organization={IEEE} +} + +@article{ref152, + title={Centralized and clustered k-coverage protocols for wireless sensor networks}, + author={Ammari, Habib M and Das, Sajal K}, + journal={Computers, IEEE Transactions on}, + volume={61}, + number={1}, + pages={118--133}, + year={2012}, + publisher={IEEE} +} + +@article{ref153, + title={Coverage and connectivity issues in wireless sensor networks: A survey}, + author={Ghosh, Amitabha and Das, Sajal K}, + journal={Pervasive and Mobile Computing}, + volume={4}, + number={3}, + pages={303--334}, + year={2008}, + publisher={Elsevier} +} diff --git a/changemargin.sty b/changemargin.sty new file mode 100644 index 0000000..9919dcb --- /dev/null +++ b/changemargin.sty @@ -0,0 +1,16 @@ +% Change margins on the fly +\newenvironment{changemargin}[2]{% + \begin{list}{}{% + \setlength{\topsep}{0pt}% + \setlength{\leftmargin}{#1}% + \setlength{\rightmargin}{#2}% + \setlength{\listparindent}{\parindent}% + \setlength{\itemindent}{\parindent}% + \setlength{\parsep}{\parskip}% + }% + \item[] ~ \par% + % Get rid of the extra space inserted by the previous line + \vspace*{-2em}% +}{ + \end{list} +} diff --git a/drop.sty b/drop.sty new file mode 100644 index 0000000..f4a5d77 --- /dev/null +++ b/drop.sty @@ -0,0 +1,67 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% DROP.DOC +% Macro for dropping and enlarging the first letter(s) of a paragraph. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% Macro written by David G. Cantor, and published Fri, 12 Feb 88, in +% TeXhax, 1988 #16. +% Internet: dgc@math.ucla.edu +% UUCP: ...!{ihnp4, randvax, sdcrdcf, ucbvax}!ucla-cs!dgc +% +% Modified for use with LaTeX by Dominik Wujastyk, February 17, 1988 +% Internet: dow@wjh12.harvard.edu +% Bitnet: dow@harvunxw.bitnet +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% This LaTeX macro is for dropping and enlarging the first letter(s) of a +% paragraph. The argument may be one or more letters. +% +% Here is an example of its usage: +% +% \documentstyle[drop]{article} +% \begin{document} +% \drop{IN} THE beginning God created the heaven and the earth. Now the +% earth was unformed and void, and darkness was upon the face of the +% deep; and the spirit of God hovered over the face of the waters. +% \end{document} +% +% Which will produce something along these lines: +% +% I I\ I THE beginning God created the heaven and the earth. +% I I \ I Now the earth was unformed and void, and darkness was +% I I \I upon the face of the deep; and the spirit of God hov- +% ered over the face of the waters. +% +% In the first instance the macro will pause during LaTeX processing and +% ask you for the font you wish to use for you drop capital. When you +% have something that looks good, then comment out box one in DROP.STY, +% and comment in box two, replacing "cmr10 scaled \magstep5" with the font +% of your choice. +% +% In my opinion (DW) there are no fonts available in the standard +% TeX/LaTeX set that are ideal for this use, unless you go down to 9pt or +% 8pt for your text face, and this is too small. If you have Metafont you +% should consider generating a cmr17 font at a magstep of two (about 25pt) +% or three (about 30pt), or even more, depending on the point size of your +% main text. Why not go the whole hog and design some really fancy +% capitals from scratch! +% +%%%%%%%%%%%%%%%%%%%%% BOX ONE %%%%%%%%%%%%%%%%%%%%%%%%% +\typein[\dropinitialfont]{Font for Dropped initial:} % +\font\largefont \dropinitialfont % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%%%%%%%%%%%%%%%%%%%%% BOX TWO %%%%%%%%%%%%%%%%%%%%%%%%% +%\font\largefont= cmr10 scaled \magstep5 % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\def\drop#1#2{{\noindent + \setbox0\hbox{\largefont #1}\setbox1\hbox{#2}\setbox2\hbox{(}% + \count0=\ht0\advance\count0 by\dp0\count1\baselineskip + \advance\count0 by-\ht1\advance\count0by\ht2 + \dimen1=.5ex\advance\count0by\dimen1\divide\count0 by\count1 + \advance\count0 by1\dimen0\wd0 + \advance\dimen0 by.25em\dimen1=\ht0\advance\dimen1 by-\ht1 + \global\hangindent\dimen0\global\hangafter-\count0 + \hskip-\dimen0\setbox0\hbox to\dimen0{\raise-\dimen1\box0\hss}% + \dp0=0in\ht0=0in\box0}#2} diff --git a/dropping.sty b/dropping.sty new file mode 100644 index 0000000..0092ea8 --- /dev/null +++ b/dropping.sty @@ -0,0 +1,137 @@ +%% +%% This is file `dropping.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% dropping.dtx (with options: `paketkod') +%% +%% Copyright (c) 1996-97 by Mats Dahlgren . +%% All rights reserved. See the file `dropping.ins' for information +%% on how you may (re-)distribute the `dropping' package files. +%% +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{dropping}[1997/06/12 v.0.12] +\newcount\bigscale +\newcount\down +\newdimen\saveunitlength +\newdimen\wantedheight +\newif\ifstrtcmmnd \strtcmmndfalse +\DeclareOption{dvips}{% +\newcount\wantedcount +\newcount\actualcount% +\newdimen\actualheight% +\def\findsize#1#2{% +\bigscale=1000% +\font\BIG=#1 scaled \bigscale% +\setbox0=\hbox{\BIG #2\/}% +\actualheight=\ht0% +\wantedcount=\wantedheight \actualcount=\actualheight% +\advance\actualcount by 50% +\divide\actualcount by 100% +\multiply\wantedcount by 10% +\divide\wantedcount by \actualcount% +\font\BIG=#1 scaled \wantedcount% +\setbox0=\hbox{\BIG #2\/}% +\bigscale=\wantedcount}} +\DeclareOption{other}{% +\def\nextmagstep#1#2#3{% +\bigscale=#3% +\font\BIG=#1 scaled \bigscale% +\setbox0=\hbox{\BIG #2\/}}% +\def\findsize#1#2{% +\nextmagstep{#1}{#2}{\magstep0}% +\ifdim\ht0<\wantedheight% +\nextmagstep{#1}{#2}{\magstephalf}% +\ifdim\ht0<\wantedheight% +\nextmagstep{#1}{#2}{\magstep1}% +\ifdim\ht0<\wantedheight% +\nextmagstep{#1}{#2}{\magstep2}% +\ifdim\ht0<\wantedheight% +\nextmagstep{#1}{#2}{\magstep3}% +\ifdim\ht0<\wantedheight% +\nextmagstep{#1}{#2}{\magstep4}% +\ifdim\ht0<\wantedheight% +\nextmagstep{#1}{#2}{\magstep5}% +\fi\fi\fi\fi\fi\fi}} +\DeclareOption{xdvi}{\ExecuteOptions{dvips}} +\DeclareOption{dvipsone}{\ExecuteOptions{other}} +\DeclareOption{dviwindo}{\ExecuteOptions{other}} +\DeclareOption{emtex}{\ExecuteOptions{other}} +\DeclareOption{dviwin}{\ExecuteOptions{other}} +\DeclareOption{oztex}{\ExecuteOptions{dvips}} +\DeclareOption{textures}{\ExecuteOptions{other}} +\DeclareOption{pctexps}{\ExecuteOptions{other}} +\DeclareOption{pctexwin}{\ExecuteOptions{other}} +\DeclareOption{pctexhp}{\ExecuteOptions{other}} +\DeclareOption{dvi2ps}{\ExecuteOptions{other}} +\DeclareOption{dvialw}{\ExecuteOptions{other}} +\DeclareOption{dvilaser}{\ExecuteOptions{other}} +\DeclareOption{dvitops}{\ExecuteOptions{other}} +\DeclareOption{psprint}{\ExecuteOptions{other}} +\DeclareOption{pubps}{\ExecuteOptions{other}} +\DeclareOption{ln}{\ExecuteOptions{other}} +\DeclareOption*{\ExecuteOptions{other}} +\InputIfFileExists{graphics.cfg}{}{% +\PackageWarningNoLine{dropping}{% +You have no `graphics.cfg' file installed.\MessageBreak +I will assume you are using `dvips'} +\ExecuteOptions{dvips}} +\ProcessOptions +\def\bigdrop#1#2#3#4{% +\saveunitlength=\unitlength% +\unitlength=\baselineskip% +\setbox1=\hbox{\the\font I}% +\wantedheight=#2\baselineskip \advance\wantedheight by -\baselineskip% +\advance\wantedheight by \ht1% +\findsize{#3}{#4}% +\hangindent=\wd0 \advance\hangindent by #1% +\hangafter=-#2% +\ifdim\dp0>0.25\baselineskip% + \loop\ifdim\dp0>\baselineskip + \advance\baselineskip by \baselineskip + \advance\hangafter by -1 + \repeat + \advance\hangafter by -1 + \baselineskip=\unitlength +\fi% +\noindent% +\down=-#2 \advance\down by 1% +\begin{picture}(0,0)% +\put(0,\down){\makebox(0,0)[br]{\box0}}% +\end{picture}% +\unitlength=\saveunitlength} +\def\spltatspc#1 #2\spltatspc{#1} +\def\spltstrng#1{\expandafter\@split#1\end} +\def\@split#1 #2\end{\def\strngn{#1}\def\strngtw{#2}} +\def\isit#1{\expandafter\@isit\string#1\@null} +\def\@isit#1#2\@null{% + \ifnum`#1=`\\ + \global\strtcmmndtrue + \else + \global\strtcmmndfalse + \fi +} +\newcommand{\dropping}[3][0pt]{% +\get@external@font% +\edef\n@vf@nt{\expandafter\spltatspc\external@font \spltatspc}% +\setbox8=\hbox{#3\get@external@font% +\global\let\external@font@export\external@font% +\edef\n@vf@ntb@x{\expandafter\spltatspc\external@font \spltatspc}% +\global\let\n@vf@nt\n@vf@ntb@x}% +\let\external@font\external@font@export% +\edef\xprt@rgtr{\expandafter\spltatspc\external@font\expandafter{} +\spltatspc} +\def\spltslsk{#3}% +\isit{#3}% +\ifstrtcmmnd +\spltstrng\spltslsk% +\let\xprt@rgfr\strngtw +\else +\def\xprt@rgfr{#3} +\fi +\protect\bigdrop{#1}{#2}{\xprt@rgtr}{\xprt@rgfr}% +} +\endinput +%% +%% End of file `dropping.sty'. diff --git a/entete.tex b/entete.tex new file mode 100644 index 0000000..128f76e --- /dev/null +++ b/entete.tex @@ -0,0 +1,173 @@ +%% Use the standard UP-methodology class +%% with French language and Book layout. +%% +%% Change the 'book' option below to 'report' +%% if you want to use a report style (see your LaTeX +%% documention about the different between a report +%% and a book class). +%% +%% You may also specify 'twoside' or 'oneside' option. +%% By default 'book' is two-sided and 'report' is one-sided. +%% +%% See the documentation tex-upmethodology on +%% http://www.arakhne.org/tex-upmethodology/ +%% for details about the macros that are provided by the class and +%% to obtain the list of the packages that are already included. +%\documentclass[french,book,nopubpage,nodocumentinfo]{upmethodology-document} + + %\documentclass[french,book,nopubpage,nodocumentinfo]{spimufcphdthesis} + \documentclass[english, book,nopubpage,nodocumentinfo]{spimufcphdthesis} +%%-------------------- + +\usepackage[utf8]{inputenc} +\usepackage{enumerate} +\usepackage[english]{babel} +\usepackage{booktabs} + + +\newcommand*\rot{\rotatebox{90}} +\newcommand*\OK{\ding{51}} + +\newcommand{\mcrot}[4]{\multicolumn{#1}{#2}{\rlap{\rotatebox{#3}{#4}~}}} + +\newcommand*{\twoelementtable}[3][l]% +{% + \renewcommand{\arraystretch}{0.8}% + \begin{tabular}[t]{@{}#1@{}}% + #2\tabularnewline + #3% + \end{tabular}% +} +%%-------------------- +%% Use the style dedicated to PhD thesis from SPIM-UFC +\UseExtension{spimufcphdthesis} + + +%%-------------------- +%% Set the title, subtitle, defense date, and +%% the registration number of the PhD thesis. +%% The optional parameter is the subtitle of the PhD thesis. +%% The first mandatory parameter is the title of the PhD thesis. +%% The second mandatory parameter is the date of the PhD defense. +%% The third mandatory parameter is the reference number given by the University Library after the PhD defense. +%%\declarethesis[Sous-titre]{Titre}{17 septembre 2012}{XXX} +\declarethesis{Distributed Optimization Techniques for Improving Lifetime of Wireless Networks}{30 September 2015}{2015930} + + +%%-------------------- +%% Set the author of the PhD thesis +%%\addauthor[email]{Prénom}{Nom} +\addauthor[aidness.ali@univ-fcomte.fr]{Ali Kadhum}{IDREES} + + %\iffalse +%%-------------------- +%% Add a member of the jury +%% \addjury{Firstname}{Lastname}{Role in the jury}{Position} +\addjury{x1}{y1}{Examiner}{Professor at University of} +\addjury{x2}{y2}{Examiner}{Professor at University of} +\addjury{x3}{y3}{Examiner}{Professor at University of} +\addjury{x4}{y4}{Examiner}{Professor at University of} +\addjury{Raphaël}{Couturier}{Supervisor}{Professor at University of Franche-Comt\'e} +\addjury{Karine}{Deschinkel}{Co-Supervisor}{Assistant Prof. at University of Franche-Comt\'e} +\addjury{Michel}{Salomon}{Co-Supervisor}{Assistant Prof. at University of Franche-Comt\'e} + + %\fi + +% Supervisors:\\ +%Committee:\\ +%%-------------------- +%% Set the English abstract +\thesisabstract[english]{ + +} + +\thesiskeywords[english]{ } + + +%%-------------------- +%% Set the French abstract +\thesisabstract[french]{ + +} + +\thesiskeywords[french]{ } + + +%%-------------------- +%% Change the speciality of the PhD thesis +%\Set{speciality}{Informatique} + + +%%-------------------- +%% Change the institution +%\Set{universityname}{Universit\'e de Technologie de Belfort-Montb\'eliard} + + +%%-------------------- +%% Change the header and the foot of the pages +%% Left header +%\lhead{} +%% Center header +%\chead{} +%% Right header +%\rhead{} +%% Left footer +%\lfoot{} +%% Center footer +%\cfoot{} +%% Right footer +%\rfoot{} + +%%-------------------- +%% itemize* +%\usepackage{mdwlist} +%\usepackage{enumerate} + +%%tableaux +%\usepackage{multirow} + +%\usepackage{lscape} +%\usepackage{pdflscape} +%\usepackage{geometry} +%\usepackage{changemargin} + +%%-------------------- +%% Algorithmes +\usepackage{algorithmic} +\usepackage[ruled,english,boxed,linesnumbered]{algorithm2e} +\usepackage[english]{algorithme} +%\usepackage{subfigure} +%\usepackage{listings} +%%-------------------- +%% boxedverbatim +%\usepackage{moreverb} + +%%-------------------- +%% Mathematics +%\usepackage{amsmath,amsfonts} +%\usepackage{amssymb} +%\newcommand{\scalprod}[2]% +%{\ensuremath{\langle #1 \, , #2 \rangle}} +%\usepackage{xfrac} + +%\usepackage{drop} +%\font\largefont=yinitas % fontes yinit + +%\newtheorem{remark}{Remarque} +%\def\changemargin#1#2{\list{}{\rightmargin#2\leftmargin#1}\item[]} +%\let\endchangemargin=\endlist + +%\usepackage{lettrine} +%\usepackage{oldgerm} +%\usepackage{yfonts} +%\newcommand{\enluminure}[2]{\lettrine[lines=3]{\small \initfamily #1}{#2}} +%\usepackage{indentfirst} + + + + + + + + + diff --git a/missfont.log b/missfont.log new file mode 100644 index 0000000..02f45f8 --- /dev/null +++ b/missfont.log @@ -0,0 +1,2 @@ +mktextfm +mktextfm diff --git a/upmethodology-document.sty b/upmethodology-document.sty new file mode 100644 index 0000000..052e1ea --- /dev/null +++ b/upmethodology-document.sty @@ -0,0 +1,547 @@ +% Package for Unified Process Methodology's documents +% +% Copyright (c) 2006-2013 Stephane GALLAND +% +% This program is free library; you can redistribute it and/or modify +% it under the terms of the GNU Lesser General Public License as +% published by the Free Software Foundation; either version 3 of the +% License, or any later version. +% +% This library is distributed in the hope that it will be useful, but +% WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +% Lesser General Public License for more details. +% +% You should have received a copy of the GNU Lesser General Public +% License along with this library; see the file COPYING. If not, +% write to the Free Software Foundation, Inc., 59 Temple Place - Suite +% 330, Boston, MA 02111-1307, USA. + +\global\edef\upm@package@doc@ver{2013/09/29} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-document}[\upm@package@doc@ver] + +\RequirePackage{upmethodology-p-common} + +%---------------------------------------- +% LOCALES +%---------------------------------------- +\def\upm@document@lang@english{% + \gdef\upm@lang@@{\message{**** upmethodology-document is using English language ****}}% + \gdef\upmcurrentlang{english}% + \gdef\upmcurrentlangforbabel{english}% + \gdef\upm@lang@project{Project}% + \gdef\upm@lang@document{Document}% + \gdef\upm@lang@docref{Reference}% + \gdef\upm@lang@lastupdate{Last Update}% + \gdef\upm@lang@lastupdate@short{Updated}% + \gdef\upm@lang@document@summary{Document Summary}% + \gdef\upm@lang@status{Status}% + \gdef\upm@lang@document@authors{Authors}% + \gdef\upm@lang@document@informed{Informed People}% + \gdef\upm@lang@document@validators{Validators}% + \gdef\upm@lang@document@names{Names}% + \gdef\upm@lang@document@comments{Comments}% + \gdef\upm@lang@document@emails{Emails}% + \gdef\upm@lang@document@initials{Initials}% + \gdef\upm@lang@document@abstract{Abstract}% + \gdef\upm@lang@document@keywords{Key-words}% + \gdef\upm@lang@document@copyright@purpose{This document describes the \theupmproject\ project\Ifnotempty{\theupmsubproject}{ and its \theupmsubproject\ subproject}.}% + \gdef\upm@lang@document@copyright@tex{\TeX\ is a trademark of the American Mathematical Society.}% + \gdef\upm@lang@document@copyright@upmethodology{\texttt{tex-upmethodology} is owned by St\'ephane Galland, \arakhneorg, France.}% + \gdef\upm@lang@document@copyright@madewith{This document was realised with \LaTeX\ and \texttt{tex-upmethodology}.}% + \gdef\upm@lang@document@copyright@trademarks{This document is published by the \theupmformattedpublisher. All right reserved. No part of this publication may be reproduced, stored in a retreival system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publishers.} + \gdef\upm@lang@document@copyright@printedin{Printed in \theupmprintedin.} +} +\def\upm@document@lang@french{% + \gdef\upm@lang@@{\message{**** upmethodology-document is using French language ****}}% + \gdef\upmcurrentlang{french}% + \gdef\upmcurrentlangforbabel{frenchb}% + \gdef\upm@lang@project{Projet}% + \gdef\upm@lang@document{Document}% + \gdef\upm@lang@docref{R\'ef\'erence}% + \gdef\upm@lang@lastupdate{Derni\`ere modification}% + \gdef\upm@lang@lastupdate@short{Modifi\'e}% + \gdef\upm@lang@document@summary{Synoptique}% + \gdef\upm@lang@status{Statut}% + \gdef\upm@lang@document@authors{Auteurs}% + \gdef\upm@lang@document@comments{Commentaires}% + \gdef\upm@lang@document@informed{Pour information}% + \gdef\upm@lang@document@validators{Validateurs}% + \gdef\upm@lang@document@names{Noms}% + \gdef\upm@lang@document@emails{Emails}% + \gdef\upm@lang@document@initials{Initiales}% + \gdef\upm@lang@document@abstract{R\'esum\'e}% + \gdef\upm@lang@document@keywords{Mots-cl\'es}% + \gdef\upm@lang@document@copyright@purpose{Ce document d\'ecrit le projet \theupmproject\Ifnotempty{\theupmsubproject}{ et son sous-projet \theupmsubproject}.}% + \gdef\upm@lang@document@copyright@tex{\TeX\ et \LaTeX\ sont des marques de la Soci\'et\'e Am\'ericaine de Math\'ematiques.}% + \gdef\upm@lang@document@copyright@upmethodology{\texttt{tex-upmethodology} est la propri\'et\'e de St\'ephane Galland, \arakhneorg, France.}% + \gdef\upm@lang@document@copyright@madewith{Ce document a \'et\'e r\'ealis\'e avec \LaTeX\ et \texttt{tex-upmethodology}.}% + \gdef\upm@lang@document@copyright@trademarks{Ce document est publi\'e par \theupmformattedpublisher. Tous droits r\'eserv\'es. \par Le Code de la propri\'et\'e intellectuelle n'autorisant, aux termes de l'article L.122-5, 2\textdegree et 3\textdegree a), d'une part, que les ``copies ou reproductions strictement r\'eserv\'ees \`a l'usage priv\'e du copiste et non destin\'ees \`a une utilisation collective'' et, d'autre part, que les analyses et les courtes citations dans un but d'exemple et d'illustation, ``toute repr\'esentation ou reproduction int\'egrale ou partielle faite sans le consentement de l'auteur ou de ses ayants droit ou ayants cause est illicite'' (art. L.122-4). \par Cette repr\'esentation ou reproduction, par quelque proc\'ed\'e que ce soit, constiturait donc une contrefa\c{c}on sanctionn\'ee par les articles L.335-2 et suivants du Code de la propri\'et\'e intellectuelle.} + \gdef\upm@lang@document@copyright@printedin{Imprim\'e en \theupmprintedin.} + +} + +%---------------------------------------- +% OPTIONS +%---------------------------------------- +\DeclareOption{french}{% + \upm@document@lang@french +} +\DeclareOption{francais}{% + \upm@document@lang@french +} +\DeclareOption{english}{% + \upm@document@lang@english +} +\ExecuteOptions{english} +\ProcessOptions + +{\upm@lang@@} + +\RequirePackage[\upmcurrentlangforbabel]{babel} +\RequirePackage{vmargin} + +\RequirePackage{upmethodology-extension} +\RequirePackage{upmethodology-fmt} +\RequirePackage{upmethodology-version} + +%---------------------------------------- +% Ensure that frenchb (included by babel) +% does not use compact versions of lists +% in french mode. +%---------------------------------------- + +\newlength\listendskip +\listendskip=\parskip + + +%---------------------------------------- +% DOCUMENT MANAGEMENT +%---------------------------------------- + +%----- +% Declare a project's document +%\declaredocument{project}{name}{ref} +\newcommand{\declaredocument}[3]{% + \gdef\theupmproject{#1}% + \gdef\theupmsubproject{}% + \gdef\theupmdocname{#2}% + \gdef\theupmdocref{#3}% +} + +%----- +% Declare a project's document +%\declaredocumentex{project}{subproject}{name}{ref} +\newcommand{\declaredocumentex}[4]{% + \gdef\theupmproject{#1}% + \gdef\theupmsubproject{#2}% + \gdef\theupmdocname{#3}% + \gdef\theupmdocref{#4}% +} + +%----- +% Display the summary of the document +%\upmdocumentsummary[width] +\newcommand{\upmdocumentsummary}[1][\linewidth]{% + \noindent\begin{mtabular}[#1]{2}{|l|X|}% + \tabulartitle{\upm@lang@document@summary}% + \upm@lang@project & \theupmproject\Ifnotempty{\theupmsubproject}{ -- \theupmsubproject} \\ + \upm@lang@document & \theupmdocname \\ + \upm@lang@docref & \theupmdocref \\ + \upm@lang@version & \theupmversion \\ + \upm@lang@lastupdate & \theupmdate \\ + \hline + \end{mtabular}\par\vspace{.5cm}% +} + +%----- +% Display the the document information on a page +%\upmpublicationpage +\newcommand{\upmdocinfopage}{ + \thispagestyle{plain} + \upmdocumentsummary\upmdocumentauthors\upmdocumentvalidators\upmdocumentinformedpeople\vfill\upmhistory\clearpage% +} + +%----- +% Display the publication pag for the document +%\upmpublicationpage +\newcommand{\upmpublicationpage}{ + \thispagestyle{empty}% + \upmpublicationminipage% +} +\newcommand{\upmpublicationminipage}{ + \if@twoside\ifodd\c@page\clearpage\fi\fi% + \mbox{}\vfill\small% + \par\noindent + \upm@lang@document@copyright@purpose + \vspace{.5cm} + \par\noindent + \upm@lang@document@copyright@tex + \par\noindent + \upm@lang@document@copyright@upmethodology + \vspace{.5cm} + \par\noindent + \Get{trademarks} + \vspace{4cm} + \par\noindent + \upm@lang@document@copyright@madewith + \vspace{.15cm} + \par\noindent + Copyright~\copyright~\upmcopyrightdate~\theupmformattedcopyrighter. + \vspace{.15cm} + \par\noindent + \upm@lang@document@copyright@trademarks \Ifdefined{printed}{\upm@lang@document@copyright@printedin} + \vspace{.25cm} + \par\noindent + \upm@lang@docref~: \theupmdocref \\ + \Ifnotempty{\theupmisbn}{ISBN~:~\theupmisbn\\} + \Ifnotempty{\theupmissn}{ISSN~:~\theupmissn\\} + \Ifnotempty{\theupmdoi}{DOI~:~\theupmdoi\\} + \clearpage% +} + +%----- +%Name of the project for which this document was written +\def\theupmproject{Arakhn\^e Project} + +%----- +%Name of the sub-project for which this document was written +\def\theupmsubproject{} + +%----- +%Name of the document +\def\theupmdocname{Arakhn\^e Document} + +%----- +%Reference of the document +\def\theupmdocref{XXX} + + +%----- +%Name of the logo +\newcommand{\theupmsmalldoclogo}{\Get{smalllogo}} +\newcommand{\theupmdoclogo}{\Get{logo}} + +%----- +% Define the name of the logo picture to use +\newcommand{\defupmsmalllogo}[1]{\Set{smalllogo}{#1}} +\newcommand{\defupmlogo}[1]{\Set{logo}{#1}} + +%----- +%Full name of the document +\def\theupmfulldocname{% + \theupmproject% + \Ifnotempty{\theupmsubproject}{/\theupmsubproject}% + \Ifnotempty{\theupmdocname}{ -- \theupmdocname}% +} + +%----- +% Declare a document's abstract +%\setdocabstract[lang]{text} +\newcommand{\setdocabstract}[2][\upmcurrentlang]{% + \ifthenelse{\equal{#1}{\upmcurrentlang}}{ + \gdef\theupmdocabstract{#2}}{}% + \global\@namedef{theupmdocabstract#1}{#2}% +} + +%----- +% Declare a document's key-words +%\setdockeywords[lang]{words} +\newcommand{\setdockeywords}[2][\upmcurrentlang]{% + \ifthenelse{\equal{#1}{\upmcurrentlang}}{ + \gdef\theupmdockeywords{#2}}{}% + \global\@namedef{theupmdockeywords#1}{#2}% +} + +%----- +%Abstract of the document +\def\theupmdocabstract{} + +%----- +%Key-words of the document +\def\theupmdockeywords{} + +%---------------------------------------- +% AUTHOR MANAGEMENT +%---------------------------------------- + +\newif\ifupm@document@author@tab@hascomment +\upm@document@author@tab@hascommentfalse +\def\upm@document@author@tab{} +\def\upm@document@author@tab@commented{} + +%----- +\def\theauthorlist{} + +%----- +\newif\ifupm@document@author@isauthor +\gdef\upm@document@author@authornames{} +\newcommand{\ifdocumentauthor}[3]{% + \upm@document@author@isauthorfalse% + \@for\upm@document@author@isauthor@tmp:=\upm@document@author@authornames\do{% + \ifupm@document@author@isauthor% + \else% + \ifthenelse{\equal{#1}{\upm@document@author@isauthor@tmp}}{% + \upm@document@author@isauthortrue% + }{}% + \fi% + }% + \ifupm@document@author@isauthor{#2}\else{#3}\fi% +} + +%----- +%Add an author +%\addauthor[email]{firstname}{name} +%\addauthor*[email]{firstname}{name}{comment} +\def\addauthor{\@ifstar\upm@document@addauthorstar\upm@document@addauthor} +\newcommand{\upm@document@addauthor}[3][]{% + \lowercase{\xdef\upm@document@author@authornames{#3,\upm@document@author@authornames}}% + \protected@xdef\theauthorlist{\theauthorlist\protect\Ifnotempty{\theauthorlist}{,} \protect\upmmakename{#2}{#3}{~}} + + \global\protected@edef\upm@document@author@tab@commented{\upm@document@author@tab@commented \protect\upmmakename{#2}{#3}{~} & + & \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\} + + \ifupm@document@author@tab@hascomment\else + \global\protected@edef\upm@document@author@tab{\upm@document@author@tab \protect\upmmakename{#2}{#3}{~} & + \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\} + \fi +} +\newcommand{\upm@document@addauthorstar}[4][]{% + \lowercase{\xdef\upm@document@author@authornames{#3,\upm@document@author@authornames}}% + \global\protected@edef\theauthorlist{\theauthorlist\protect\Ifnotempty{\theauthorlist}{,} \protect\upmmakename{#2}{#3}{~}} + + \global\let\upm@document@author@tab\relax + + \global\protected@edef\upm@document@author@tab@commented{\upm@document@author@tab@commented \protect\upmmakename{#2}{#3}{~} & + #4 & \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\} + + \upm@document@author@tab@hascommenttrue +} + +%----- +% Display the summary of the authors +%\upmdocumentauthors[width] +\newcommand{\upmdocumentauthors}[1][\linewidth]{% + \ifupm@document@author@tab@hascomment% + \Ifnotempty{\upm@document@author@tab@commented}{% + \noindent\expandafter\begin{mtabular}[#1]{3}{|X|l|c|}% + \tabulartitle{\upm@lang@document@authors}% + \tabularheader{\upm@lang@document@names}{\upm@lang@document@comments}{\upm@lang@document@emails}% + \upm@document@author@tab@commented + \hline% + \expandafter\end{mtabular}\par\vspace{.5cm}}% + \else% + \Ifnotempty{\upm@document@author@tab}{% + \noindent\expandafter\begin{mtabular}[#1]{2}{|X|c|}% + \tabulartitle{\upm@lang@document@authors}% + \tabularheader{\upm@lang@document@names}{\upm@lang@document@emails}% + \upm@document@author@tab + \hline% + \expandafter\end{mtabular}\par\vspace{.5cm}}% + \fi% +} + +%---------------------------------------- +% VALIDATOR MANAGEMENT +%---------------------------------------- + +\newif\ifupm@document@validator@tab@hascomment +\upm@document@validator@tab@hascommentfalse +\def\upm@document@validator@tab{} +\def\upm@document@validator@tab@commented{} + +%----- +\def\thevalidatorlist{} + +%----- +%Add a validator +%\addvalidator[email]{firstname}{name} +%\addvalidator*[email]{firstname}{name}{comment} +\def\addvalidator{\@ifstar\upm@document@addvalidatorstar\upm@document@addvalidator} +\newcommand{\upm@document@addvalidator}[3][]{% + \global\protected@edef\thevalidatorlist{\thevalidatorlist\protect\Ifnotempty{\thevalidatorlist}{,} \protect\upmmakename{#2}{#3}{~}} + + \global\protected@edef\upm@document@validator@tab@commented{\upm@document@validator@tab@commented \protect\upmmakename{#2}{#3}{~} & + & \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} & \protect\\} + + \ifupm@document@validator@tab@hascomment\else + \global\protected@edef\upm@document@validator@tab{\upm@document@validator@tab \protect\upmmakename{#2}{#3}{~} & + \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} & \protect\\} + \fi +} +\newcommand{\upm@document@addvalidatorstar}[4][]{% + \global\protected@edef\thevalidatorlist{\thevalidatorlist\protect\Ifnotempty{\thevalidatorlist}{,} \protect\upmmakename{#2}{#3}{~}} + + \global\let\upm@document@validator@tab\relax + + \global\protected@edef\upm@document@validator@tab@commented{\upm@document@validator@tab@commented \protect\upmmakename{#2}{#3}{~} & + #4 & \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} & \protect\\} + + \upm@document@validator@tab@hascommenttrue +} + +%----- +% Display the summary of the validators +%\upmdocumentvalidators[width] +\newcommand{\upmdocumentvalidators}[1][\linewidth]{% + \ifupm@document@validator@tab@hascomment% + \Ifnotempty{\upm@document@validator@tab@commented}{% + \noindent\expandafter\begin{mtabular}[#1]{4}{|X|l|c|p{3cm}|}% + \tabulartitle{\upm@lang@document@validators}% + \tabularheader{\upm@lang@document@names}{\upm@lang@document@comments}{\upm@lang@document@emails}{\upm@lang@document@initials}% + \upm@document@validator@tab@commented + \hline% + \expandafter\end{mtabular}\par\vspace{.5cm}}% + \else% + \Ifnotempty{\upm@document@validator@tab}{% + \noindent\expandafter\begin{mtabular}[#1]{3}{|X|c|p{3cm}|}% + \tabulartitle{\upm@lang@document@validators}% + \tabularheader{\upm@lang@document@names}{\upm@lang@document@emails}{\upm@lang@document@initials}% + \upm@document@validator@tab + \hline% + \expandafter\end{mtabular}\par\vspace{.5cm}}% + \fi% +} + + +%----- +%Add an author/validator +%\addauthorvalidator[email]{firstname}{name} +%\addauthorvalidator*[email]{firstname}{name}{comment} +\def\addauthorvalidator{\@ifstar\upm@document@addauthorvalidatorstar\upm@document@addauthorvalidator} +\newcommand{\upm@document@addauthorvalidator}[3][]{% + \addauthor[#1]{#2}{#3}\addvalidator[#1]{#2}{#3}% +} +\newcommand{\upm@document@addauthorvalidatorstar}[4][]{% + \addauthor*[#1]{#2}{#3}{#4}\addvalidator*[#1]{#2}{#3}{#4}% +} + +%---------------------------------------- +% INFORMED MANAGEMENT +%---------------------------------------- + +\newif\ifupm@document@informed@tab@hascomment +\upm@document@informed@tab@hascommentfalse +\def\upm@document@informed@tab{} +\def\upm@document@informed@tab@commented{} + +%----- +\def\theinformedlist{} + +%----- +%Add an informed +%\addinformed[email]{firstname}{name} +%\addinformed*[email]{firstname}{name}{comment} +\def\addinformed{\@ifstar\upm@document@addinformedstar\upm@document@addinformed} +\newcommand{\upm@document@addinformed}[3][]{% + \global\protected@edef\theinformedlist{\theinformedlist\protect\Ifnotempty{\theinformedlist}{,} \protect\upmmakename{#2}{#3}{~}} + + \global\protected@edef\upm@document@informed@tab@commented{\upm@document@informed@tab@commented \protect\upmmakename{#2}{#3}{~} & + & \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\} + + \ifupm@document@informed@tab@hascomment\else + \global\protected@edef\upm@document@informed@tab{\upm@document@informed@tab \protect\upmmakename{#2}{#3}{~} & + \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\} + \fi +} +\newcommand{\upm@document@addinformedstar}[4][]{% + \global\protected@edef\theinformedlist{\theinformedlist\protect\Ifnotempty{\theinformedlist}{,} \protect\upmmakename{#2}{#3}{~}} + + \global\let\upm@document@informed@tab\relax + + \global\protected@edef\upm@document@informed@tab@commented{\upm@document@informed@tab@commented \protect\upmmakename{#2}{#3}{~} & + #4 & \protect\Ifnotempty{#1}{\protect\href{mailto:#1}{#1}} \protect\\} + + \upm@document@informed@tab@hascommenttrue +} + +%----- +% Display the summary of the informed people +%\upmdocumentinformedpeople[width] +\newcommand{\upmdocumentinformedpeople}[1][\linewidth]{% + \ifupm@document@validator@tab@hascomment% + \Ifnotempty{\upm@document@informed@tab@commented}{% + \noindent\expandafter\begin{mtabular}[#1]{3}{|X|l|c|}% + \tabulartitle{\upm@lang@document@informed}% + \tabularheader{\upm@lang@document@names}{\upm@lang@document@comments}{\upm@lang@document@emails}% + \upm@document@informed@tab@commented + \hline% + \expandafter\end{mtabular}\par\vspace{.5cm}}% + \else% + \Ifnotempty{\upm@document@informed@tab}{% + \noindent\expandafter\begin{mtabular}[#1]{2}{|X|c|}% + \tabulartitle{\upm@lang@document@informed}% + \tabularheader{\upm@lang@document@names}{\upm@lang@document@emails}% + \upm@document@informed@tab + \hline% + \expandafter\end{mtabular}\par\vspace{.5cm}}% + \fi% +} + +%---------------------------------------- +% PUBLISHER, COPYRIGHT, PRINTING... +%---------------------------------------- + +\gdef\theupmcopyrighter{\Get{copyrighter}} +\gdef\theupmpublisher{\Get{publisher}} +\gdef\theupmprintedin{\Get{printedin}} +\gdef\theupmisbn{} +\gdef\theupmissn{} +\gdef\theupmdoi{} +\gdef\theupmpublishingdate{} + +\newcommand{\theupmformattedpublisher}{\Ifelsedefined{publisher}{\theupmpublisher}{\textcolor{red}{???}}} +\newcommand{\theupmformattedcopyrighter}{\Ifelsedefined{copyrighter}{\theupmcopyrighter}{\textcolor{red}{???}}} + +%----- +%Set the publisher identity +%\setpublisher{name} +\newcommand{\setpublisher}[1]{\Set{publisher}{#1}} + +%----- +%Set the copyrighter identity +%\setcopyrighter{name} +\newcommand{\setcopyrighter}[1]{\Set{copyrighter}{#1}} + +%----- +%Set the address where this document is printed +%\setprintingaddress{address} +\newcommand{\setprintingaddress}[1]{\Set{printedin}{#1}} + +%----- +%Set the ISBN +%\setisbn{isbn} +\newcommand{\setisbn}[1]{% + \gdef\theupmisbn{#1}% +} + +%----- +%Set the ISSN +%\setisbn{issn} +\newcommand{\setissn}[1]{% + \gdef\theupmissn{#1}% +} + +%----- +%Set the DOI +%\setdoi{doi} +\newcommand{\setdoi}[1]{% + \gdef\theupmdoi{#1}% +} + +%---------------------------------------- +% WATERMARK +%---------------------------------------- + +\AtBeginDocument{ + \ifthenelse{\equal{\theupmstatus}{\upmrestricted}}{ + \edef\upm@doc@tmp@watermark{\uppercase{\upm@lang@restricted}} + \RequirePackage{draftwatermark} + \SetWatermarkText{\upm@doc@tmp@watermark} + \SetWatermarkScale{\Get{watermarksize}} + }{} +} + +\endinput diff --git a/upmethodology-fmt.sty b/upmethodology-fmt.sty new file mode 100644 index 0000000..cabc4a3 --- /dev/null +++ b/upmethodology-fmt.sty @@ -0,0 +1,1489 @@ +% Layout and Pagraph Format for Unified Process Methodology +% +% Copyright (c) 2006-2009, 2012-2014 Stephane GALLAND +% +% This program is free library; you can redistribute it and/or modify +% it under the terms of the GNU Lesser General Public License as +% published by the Free Software Foundation; either version 3 of the +% License, or any later version. +% +% This library is distributed in the hope that it will be useful, but +% WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +% Lesser General Public License for more details. +% +% You should have received a copy of the GNU Lesser General Public +% License along with this library; see the file COPYING. If not, +% write to the Free Software Foundation, Inc., 59 Temple Place - Suite +% 330, Boston, MA 02111-1307, USA. + +\global\edef\upm@package@fmt@ver{2014/10/13} + +\NeedsTeXFormat{LaTeX2e}[1995/12/01] +\ProvidesPackage{upmethodology-fmt}[\upm@package@fmt@ver] + +\RequirePackage{upmethodology-p-common} + +\gdef\upm@fmt@force@single@spacing#1{{\begin{singlespace}#1\end{singlespace}}} +\gdef\upm@date@head#1/#2\@nil{#1} +\gdef\upm@date@tail#1/#2\@nil{#2} +\gdef\upm@date@first#1{{\expandafter\upm@date@head#1\expandafter\@nil}} +\gdef\upm@date@second#1{{\expandafter\expandafter\expandafter\upm@date@head\expandafter\upm@date@tail#1\expandafter\@nil\expandafter\expandafter\expandafter\@nil}} +\gdef\upm@date@third#1{{\expandafter\expandafter\expandafter\upm@date@tail\expandafter\upm@date@tail#1\expandafter\@nil\expandafter\expandafter\expandafter\@nil}} + +\newif\ifupm@use@override@standard@lists +\global\upm@use@override@standard@liststrue + +%---------------------------------------- +% LOCALES +%---------------------------------------- +\global\let\upm@format@lang@extractyear\upm@date@first% +\def\upm@format@lang@english{% + \gdef\upm@lang@@{\message{**** upmethodology-fmt is using English language ****}}% + \global\renewcommand{\upm@format@lang@makedate}[3]{##3\string/\two@digits{##2}\string/\two@digits{##1}}% + \global\let\upm@format@lang@extractyear\upm@date@first% + \global\let\upm@format@lang@extractmonth\upm@date@second% + \gdef\upm@format@lang@professor{Pr.}% + \gdef\upm@format@lang@doctor{Dr.}% + \gdef\upm@format@lang@phdoctor{Ph.D.}% + \gdef\upm@format@lang@scdoctor{Sc.D.}% + \gdef\upm@format@lang@mdoctor{M.D.}% + \gdef\upm@format@lang@professionalengineer{CEng.}% + \gdef\upm@format@lang@incorporatedengineer{IEng.}% +} +\def\upm@format@lang@french{% + \gdef\upm@lang@@{\message{**** upmethodology-fmt is using French language ****}}% + \global\renewcommand{\upm@format@lang@makedate}[3]{\two@digits{##1}\string/\two@digits{##2}\string/##3}% + \global\let\upm@format@lang@extractyear\upm@date@third% + \global\let\upm@format@lang@extractmonth\upm@date@second% + \global\let\upm@format@lang@extractday\upm@date@first% + \gdef\upm@format@lang@professor{Pr.}% + \gdef\upm@format@lang@doctor{Dr.}% + \gdef\upm@format@lang@phdoctor{Ph.D.}% + \gdef\upm@format@lang@scdoctor{Sc.D.}% + \gdef\upm@format@lang@mdoctor{M.D.}% + \gdef\upm@format@lang@professionalengineer{Ing.}% + \gdef\upm@format@lang@incorporatedengineer{Ing.}% +} +\global\providecommand{\upm@format@lang@makedate}[3]{}% + +%---------------------------------------- +% OPTIONS +%---------------------------------------- +\DeclareOption{french}{% + \upm@format@lang@french + \PassOptionsToPackage{french}{varioref} +} +\DeclareOption{francais}{% + \upm@format@lang@french + \PassOptionsToPackage{french}{varioref} +} +\DeclareOption{english}{% + \upm@format@lang@english + \PassOptionsToPackage{english}{varioref} +} +\DeclareOption{standardlists}{% + \global\upm@use@override@standard@listsfalse +} +\ExecuteOptions{english} +\ProcessOptions +\upm@lang@@ + + +\RequirePackage{graphicx} +\RequirePackage{subfigure} +\RequirePackage{tabularx} +\RequirePackage{multicol} +\RequirePackage{colortbl} +\RequirePackage{picinpar} +\RequirePackage{amsmath} +\RequirePackage{amsthm} +\RequirePackage{thmtools} +\RequirePackage{pifont} +\RequirePackage{setspace} +\RequirePackage{varioref} +\RequirePackage{txfonts} +\RequirePackage{relsize} +\RequirePackage{xkeyval} +\RequirePackage{hyphenat} +\RequirePackage{bbm} +\RequirePackage{environ}% for advanced environment declaration + +%---------------------------------------- +% Exponent and indice +%---------------------------------------- +% Exponent +%\newcommand{\textsup}[1]{\ensuremath{^{\text{#1}}}\xspace} +\newcommand{\textsup}[1]{\upm@textsuperscript{#1}\xspace} +% Indice +%\newcommand{\textsub}[1]{\ensuremath{_{\text{#1}}}\xspace} +\newcommand{\textsub}[1]{\upm@textsubscript{#1}\xspace} + +%---------------------------------------- +% Major Emphazing +%---------------------------------------- +\newcommand{\Emph}[1]{\textbf{#1}\xspace} + +%---------------------------------------- +% SYMBOLS +%---------------------------------------- +\renewcommand{\copyright}{\Pisymbol{psy}{211}\xspace} +\newcommand{\trademark}{\Pisymbol{psy}{228}\xspace} +\newcommand{\regmark}{\Pisymbol{psy}{226}\xspace} +\newcommand{\smalltrade}{{\tiny\trademark}\xspace} +\newcommand{\smallreg}{{\tiny\regmark}\xspace} +\newcommand{\smallcopy}{{\tiny\copyright}\xspace} +\newcommand{\ust}{\textsup{st}} +\newcommand{\und}{\textsup{nd}} +\newcommand{\urd}{\textsup{rd}} +\newcommand{\uth}{\textsup{th}} + +%---------------------------------------- +% MATH SYMBOLS +%---------------------------------------- +\newcommand{\R}{\ensuremath{\mathbb{R}}} +\newcommand{\N}{\ensuremath{\mathbb{N}}} +\newcommand{\Z}{\ensuremath{\mathbb{Z}}} +\newcommand{\C}{\ensuremath{\mathbb{C}}} +\newcommand{\Q}{\ensuremath{\mathbb{Q}}} +\newcommand{\powerset}{\ensuremath{\mathcal{P}}} + +\DeclareMathOperator{\sgn}{sgn} + +%---------------------------------------- +% DEFAULT GRAPHICX CONFIGURATION +%---------------------------------------- + +\ifpdf + \DeclareGraphicsExtensions{.pdf,.png,.jpg,.jpeg,.gif} +\else + \DeclareGraphicsExtensions{.eps,.png,.jpg,.jpeg,.gif} +\fi +\graphicspath{{./}} + +%---------------------------------------- +% FIGURES +%---------------------------------------- + +\newcommand{\upm@mfigure}[5][ht]{ + \begin{figure}[#1]% + \begin{center}% + \includegraphics[#2]{#3}% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure}% +} +\newcommand{\upm@mfigurestar}[5][ht]{ + \begin{figure*}[#1]% + \begin{center}% + \includegraphics[#2]{#3}% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure*}% +} +%----- +%\mfigure[position]{options}{filename}{caption}{label} +\def\mfigure{\@ifstar\upm@mfigurestar\upm@mfigure} +%----- +%\figref{label} +\newcommand{\figref}[1]{\ref{fig:#1}} +%----- +%\figpageref{label} +\newcommand{\figpageref}[1]{\pageref{fig:#1}} + +%----- +% Multi-figures + +\newcounter{upm@subfigure@count} + +\newcommand{\upm@beginsubfigure}[4]{ + \let\upm@mfiguresaved\mfigure + %options,filename,caption,label + \renewcommand{\mfigure}[5][]{ + \xdef\upm@tmp@subfigure@label{\alph{upm@subfigure@count}}% + \subfigure[##4]{% + \includegraphics[##2]{##3}% + \label{fig:##5}% + \label{fig:#4:\upm@tmp@subfigure@label}% + }% + \addtocounter{upm@subfigure@count}{1}% + } + %options,filename,caption + \newcommand{\msubfigure}[3]{ + \xdef\upm@tmp@subfigure@label{\alph{upm@subfigure@count}}% + \subfigure[##3]{% + \includegraphics[##1]{##2}% + \label{fig:#4:\upm@tmp@subfigure@label}% + }% + \addtocounter{upm@subfigure@count}{1}% + } + \setcounter{upm@subfigure@count}{1} + \gdef\upm@mfigurescaption{#3}% + \gdef\upm@mfigureslabel{fig:#4}% + \begin{#1}[#2]\centering % +} + +\newcommand{\upm@endsubfigure}[1]{ + \caption{\upm@mfigurescaption}% + \label{\upm@mfigureslabel}% + \end{#1}% + \let\mfigure\upm@mfiguresaved +} + +%----- +%\mfigures[position]{caption}{label} +\newenvironment{mfigures}[3][ht]{ + \upm@beginsubfigure{figure}{#1}{#2}{#3}% +}{% + \upm@endsubfigure{figure}% +} +%----- +%\mfigures*[position]{caption}{label} +\newenvironment{mfigures*}[3][ht]{ + \upm@beginsubfigure{figure*}{#1}{#2}{#3}% +}{% + \upm@endsubfigure{figure*}% +} + +%---------------------------------------- +% IMAGES INCLUDING TeX EXPRESSIONS +%---------------------------------------- + +% +% This section is copied from the AutoLaTeX package +% http://www.arakhne.org/autolatex +% + +%----- +%\DeclareGraphicsExtensionsWtex{coma separated extensions} +\providecommand{\DeclareGraphicsExtensionsWtex}[1]{% + \xdef\@autolatex@wtfig@extensions{\zap@space#1 \@empty}% +} +\ifpdf + \DeclareGraphicsExtensionsWtex{.pdftex_t,.pdf_tex} +\else + \DeclareGraphicsExtensionsWtex{.pstex_t,.ps_tex} +\fi + +\providecommand{\@autolatex@wtfig@searchinpath}[1]{% + \IfFileExists{#1}{% + \protected@edef\@autolatex@wtfig@tmp{\protect\resizebox{\@autolatex@wtfig@width}{\@autolatex@wtfig@height}{\protect\input{#1}}}% + }{% + \@for\@autolatex@wtfig@pathtmp:=\Ginput@path\do{% + \ifx\@autolatex@wtfig@tmp\relax% + \IfFileExists{\@autolatex@wtfig@pathtmp#1}{% + \protected@edef\@autolatex@wtfig@tmp{\protect\resizebox{\@autolatex@wtfig@width}{\@autolatex@wtfig@height}{\protect\input{\@autolatex@wtfig@pathtmp#1}}}% + }{}% + \fi% + }% + }% +} + +\define@key[autolatex]{withtex}{width}{% + \gdef\@autolatex@wtfig@width{#1}% +} +\define@key[autolatex]{withtex}{height}{% + \gdef\@autolatex@wtfig@height{#1}% +} + +%----- +%\includefigurewtex[width=xx,height=yy]{filename} +\providecommand{\includefigurewtex}[2][width=\linewidth]{% + \begingroup% + \gdef\@autolatex@wtfig@width{!}% + \gdef\@autolatex@wtfig@height{!}% + \setkeys[autolatex]{withtex}{#1}% + % + \global\let\@autolatex@wtfig@tmp\relax% + \global\let\@autolatex@wtfig@ext\relax% + \global\let\@autolatex@wtfig@path\relax% + \filename@parse{#2}% + \ifx\filename@ext\relax% + \@for\@autolatex@wtfig@exttmp:=\@autolatex@wtfig@extensions\do{% + \@autolatex@wtfig@searchinpath{#2\@autolatex@wtfig@exttmp}% + }% + \else% + \@autolatex@wtfig@searchinpath{#2\@autolatex@wtfig@exttmp}% + \fi% + % + \ifx\@autolatex@wtfig@tmp\relax% + \errmessage{Package upmethodology-fmt: File not found '#2', needed for figure inclusion}% + \else% + \@autolatex@wtfig@tmp% + \fi% + % + \endgroup% +} + +\global\let\includegraphicswtex\includefigurewtex + +%---------------------------------------- +% ENVIRONMENT FOR IMAGES INCLUDING TeX EXPRESSIONS +%---------------------------------------- + +\gdef\upm@figtex@dyncaption@remove{} +\gdef\upm@figtex@figremove#1{% + \global\expandafter\let\csname FIG#1\endcsname\relax% +} +\gdef\upm@figtex@restore{% + \upm@figtex@dyncaption@remove% + \gdef\upm@figtex@dyncaption@remove{} +} +%----- +%\figmath{id}{content} +\def\figmath#1#2{% + \expandafter\gdef\csname FIG#1\endcsname{\ensuremath{#2}}% + \global\protected@edef\upm@figtex@dyncaption@remove{\upm@figtex@dyncaption@remove\protect\upm@figtex@figremove{#1}}% +} +%----- +%\figtext{id}{content} +\def\figtext#1#2{% + \expandafter\gdef\csname FIG#1\endcsname{#2}% + \global\protected@edef\upm@figtex@dyncaption@remove{\upm@figtex@dyncaption@remove\protect\upm@figtex@figremove{#1}}% +} + +\let\upm@fmt@figtex@nil\@nil +\def\upm@fmt@figtex@parseparams#1=#2\upm@fmt@figtex@nil{\gdef\@tmp{#2}} + +\newcommand{\upm@mfigurewtex}[5][ht]{ + \begin{figure}[#1]% + \begin{center}% + % Providing an ascendent compatibility on the second parameter: + % - Prefered value of the parameter: a list of key/value pairs; + % - Old fashion value of the parameter: the value for the "width" key. + {\upm@fmt@figtex@parseparams #2====\upm@fmt@figtex@nil}% + \ifthenelse{\equal{\@tmp}{===}}{% + \includegraphicswtex[width=#2]{#3}% + }{% + \includegraphicswtex[#2]{#3}% + }% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure}% + \upm@figtex@restore% +} +\newcommand{\upm@mfigurewtexstar}[5][ht]{ + \begin{figure*}[#1]% + \begin{center}% + % Providing an ascendent compatibility on the second parameter: + % - Prefered value of the parameter: a list of key/value pairs; + % - Old fashion value of the parameter: the value for the "width" key. + {\upm@fmt@figtex@parseparams #2====\upm@fmt@figtex@nil}% + \ifthenelse{\equal{\@tmp}{===}}{% + \includegraphicswtex[width=#2]{#3}% + }{% + \includegraphicswtex[#2]{#3}% + }% + \caption{#4}% + \label{fig:#5}% + \end{center}% + \end{figure*}% + \upm@figtex@restore% +} +%----- +%\mfigurewtex[position]{options}{filename}{caption}{label} +\def\mfigurewtex{\@ifstar\upm@mfigurewtexstar\upm@mfigurewtex} + + + +%---------------------------------------- +% TABLES +%---------------------------------------- + +%table's colors +\definecolor{backtableheader}{rgb}{0.92,0.94,1} +\definecolor{fronttableheader}{rgb}{0.23,0.33,0.48} +%title of a table +\def\upm@fmt@table@title#1{\color{fronttableheader} \cellcolor{backtableheader} {\bfseries #1}} +%title of columns +\def\upm@fmt@table@column@title#1{\hfil{\color{fronttableheader} \cellcolor{backtableheader} {\itshape#1}}\hfil} + +% Utility functions for mtabular +\newcounter{upm@fmt@mtabular@columnnumber} + +\gdef\upm@fmt@mtabular@expandtitle#1#2{% + \multicolumn{#1}{|c|}{\upm@fmt@table@title{\ignorespaces#2\ignorespaces}}% +} + +\newcommand{\tabulartitlespec}[1]{% + \gdef\upm@fmt@mtabular@expandtitle##1##2{% + \multicolumn{##1}{#1}{\upm@fmt@table@title{\ignorespaces##2\ignorespaces}}% + } +} + +%----- +%\mtabular[width]{ncolumns}{columns} +\newenvironment{mtabular}[3][\linewidth]{% + \newcommand{\tabulartitle}[1]{% + \hline% + \upm@fmt@mtabular@expandtitle{#2}{##1} \\% + \hline% + }% + \newcommand{\tabulartitleinside}[1]{% + \hline\hline% + \upm@fmt@mtabular@expandtitle{#2}{##1} \\% + \hline% + }% + \newcommand*{\upm@fmt@mtabular@column@next}[1]{% + & \upm@fmt@table@column@title{\ignorespaces##1\ignorespaces}% + \addtocounter{upm@fmt@mtabular@columnnumber}{-1}% + \ifnum0<\value{upm@fmt@mtabular@columnnumber}% + \let\upm@fmt@mtabular@column@continue\upm@fmt@mtabular@column@next% + \else% + \\ \hline \let\upm@fmt@mtabular@column@continue\relax% + \fi% + \upm@fmt@mtabular@column@continue% + } + \newcommand*{\upm@fmt@mtabular@column@first}[1]{% + \upm@fmt@table@column@title{\ignorespaces##1\ignorespaces}% + \addtocounter{upm@fmt@mtabular@columnnumber}{-1}% + \ifnum0<\value{upm@fmt@mtabular@columnnumber}% + \let\upm@fmt@mtabular@column@continue\upm@fmt@mtabular@column@next% + \else% + \\ \hline \let\upm@fmt@mtabular@column@continue\relax% + \fi% + \upm@fmt@mtabular@column@continue% + } + \newcommand{\tabularheader}{% + \setcounter{upm@fmt@mtabular@columnnumber}{#2}% + \upm@fmt@mtabular@column@first% + }% + \newcommand{\tabularrowheader}[1]{% + \centering\upm@fmt@table@column@title{\ignorespaces##1}% + }% + \begingroup\tabularx{#1}{#3}% +}{% + \endtabularx\endgroup% +} + +%----- +%\mtable[options]{width}{ncolumns}{columns}{caption}{label} +% size= +\define@key[autolatex]{mtable}{size}{\gdef\@autolatex@mtable@size{#1}} +% position: h t b p H ! +\define@key[autolatex]{mtable}{h}[\relax]{\gdef\@autolatex@mtable@position{h}} +\define@key[autolatex]{mtable}{t}[\relax]{\gdef\@autolatex@mtable@position{t}} +\define@key[autolatex]{mtable}{b}[\relax]{\gdef\@autolatex@mtable@position{b}} +\define@key[autolatex]{mtable}{p}[\relax]{\gdef\@autolatex@mtable@position{p}} +\define@key[autolatex]{mtable}{H}[\relax]{\gdef\@autolatex@mtable@position{H}} +\define@key[autolatex]{mtable}{ht}[\relax]{\gdef\@autolatex@mtable@position{ht}} +\define@key[autolatex]{mtable}{hb}[\relax]{\gdef\@autolatex@mtable@position{hb}} +\define@key[autolatex]{mtable}{hp}[\relax]{\gdef\@autolatex@mtable@position{hp}} +\define@key[autolatex]{mtable}{hH}[\relax]{\gdef\@autolatex@mtable@position{hH}} +\define@key[autolatex]{mtable}{h!}[\relax]{\gdef\@autolatex@mtable@position{h!}} +\define@key[autolatex]{mtable}{tb}[\relax]{\gdef\@autolatex@mtable@position{tb}} +\define@key[autolatex]{mtable}{tp}[\relax]{\gdef\@autolatex@mtable@position{tp}} +\define@key[autolatex]{mtable}{tH}[\relax]{\gdef\@autolatex@mtable@position{tH}} +\define@key[autolatex]{mtable}{t!}[\relax]{\gdef\@autolatex@mtable@position{t!}} +\define@key[autolatex]{mtable}{bp}[\relax]{\gdef\@autolatex@mtable@position{bp}} +\define@key[autolatex]{mtable}{bH}[\relax]{\gdef\@autolatex@mtable@position{bH}} +\define@key[autolatex]{mtable}{b!}[\relax]{\gdef\@autolatex@mtable@position{b!}} +\define@key[autolatex]{mtable}{pH}[\relax]{\gdef\@autolatex@mtable@position{pH}} +\define@key[autolatex]{mtable}{p!}[\relax]{\gdef\@autolatex@mtable@position{p!}} +\define@key[autolatex]{mtable}{H!}[\relax]{\gdef\@autolatex@mtable@position{H!}} +\define@key[autolatex]{mtable}{htb}[\relax]{\gdef\@autolatex@mtable@position{htb}} +\define@key[autolatex]{mtable}{htp}[\relax]{\gdef\@autolatex@mtable@position{htp}} +\define@key[autolatex]{mtable}{htH}[\relax]{\gdef\@autolatex@mtable@position{htH}} +\define@key[autolatex]{mtable}{ht!}[\relax]{\gdef\@autolatex@mtable@position{ht!}} +\define@key[autolatex]{mtable}{tbp}[\relax]{\gdef\@autolatex@mtable@position{tbp}} +\define@key[autolatex]{mtable}{tbH}[\relax]{\gdef\@autolatex@mtable@position{tbH}} +\define@key[autolatex]{mtable}{tb!}[\relax]{\gdef\@autolatex@mtable@position{tb!}} +\define@key[autolatex]{mtable}{bpH}[\relax]{\gdef\@autolatex@mtable@position{bpH}} +\define@key[autolatex]{mtable}{bp!}[\relax]{\gdef\@autolatex@mtable@position{bp!}} +\define@key[autolatex]{mtable}{pH!}[\relax]{\gdef\@autolatex@mtable@position{pH!}} +\define@key[autolatex]{mtable}{htbp}[\relax]{\gdef\@autolatex@mtable@position{htbp}} +\define@key[autolatex]{mtable}{htbH}[\relax]{\gdef\@autolatex@mtable@position{htbH}} +\define@key[autolatex]{mtable}{htb!}[\relax]{\gdef\@autolatex@mtable@position{htb!}} +\define@key[autolatex]{mtable}{tbpH}[\relax]{\gdef\@autolatex@mtable@position{tbpH}} +\define@key[autolatex]{mtable}{tbp!}[\relax]{\gdef\@autolatex@mtable@position{tbp!}} +\define@key[autolatex]{mtable}{bpH!}[\relax]{\gdef\@autolatex@mtable@position{bph!}} +\define@key[autolatex]{mtable}{htbpH}[\relax]{\gdef\@autolatex@mtable@position{htbpH}} +\define@key[autolatex]{mtable}{htbp!}[\relax]{\gdef\@autolatex@mtable@position{htbp!}} +\define@key[autolatex]{mtable}{htbpH!}[\relax]{\gdef\@autolatex@mtable@position{htbpH!}} +% +\newenvironment{mtable}[6][ht]{% + \global\let\@autolatex@mtable@position\relax% + \gdef\@autolatex@mtable@size{\normalsize}% + \setkeys[autolatex]{mtable}{#1}% + \ifx\@autolatex@mtable@position\relax% + \gdef\@autolatex@mtable@position{ht}% + \fi + % + \gdef\upm@table@caption{#5}% + \xdef\upm@table@label{tab:#6}% + \gdef\upm@table@note{}% + \newcommand{\captionastitle}{\tabulartitle{\upm@table@caption}}% + \newcommand{\tablenote}[1]{\gdef\upm@table@note{\bgroup ##1\egroup}}% + \expandafter\table[\@autolatex@mtable@position]% + \center\@autolatex@mtable@size% + \mtabular[#2]{#3}{#4}% +}{% + \endmtabular\relax% + \caption{\upm@table@caption}% + \label{\upm@table@label}% + \endcenter% + \upm@table@note% + \endtable% + \global\let\upm@table@caption\relax% + \global\let\upm@table@label\relax% + \global\let\upm@table@note\relax% +} + +%----- +%\tabref{label} +\newcommand{\tabref}[1]{\ref{tab:#1}} +%----- +%\tabpageref{label} +\newcommand{\tabpageref}[1]{\pageref{tab:#1}} + +%---------------------------------------- +% PARAGRAPHS +%---------------------------------------- +\setlength{\parindent}{0pt} +\setlength{\parskip}{.2cm} + +%---------------------------------------- +% COLORIZED SECTION'S TITLES +%---------------------------------------- + +% PRIVATE COLORS +\definecolor{sectiontitlecolor}{rgb}{0.93,0.41,0} +\definecolor{chaptertitlecolor}{rgb}{0.24,0.33,0.48} +\definecolor{parttitlecolor}{rgb}{0.24,0.33,0.48} + +% PRIVATE FORMATTING MACROS +\newcounter{upm@format@section@sectionlevel} +\setcounter{upm@format@section@sectionlevel}{0} + +\gdef\upm@format@partnum#1{\textcolor{parttitlecolor}{\expandafter\fontsize{40pt}{60pt}\selectfont#1\normalfont}} +\gdef\upm@format@parttitle#1{\textcolor{parttitlecolor}{\huge\scshape #1}} +\gdef\upm@format@chapternum#1{\textcolor{chaptertitlecolor}{\expandafter\fontsize{40pt}{60pt}\selectfont#1\normalfont}} +\gdef\upm@format@chaptertitle#1{\textcolor{chaptertitlecolor}{\Huge\scshape #1}} +\gdef\upm@format@sectionnum#1#2{\textcolor{sectiontitlecolor}{#2}} +\gdef\upm@format@sectiontitle#1#2{\textcolor{sectiontitlecolor}{#2}} + +% PART +\ifupmbookformat + \gdef\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{\thepart\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\huge\centering + \interlinepenalty \@M + \normalfont + \ifnum \c@secnumdepth >-2\relax + \upm@format@partnum{\thepart} + \par + \vskip 20\p@ + \fi + \upm@format@parttitle{\nohyphens{#2}}\par}% + \@endpart} + \gdef\@spart#1{% + {\centering + \interlinepenalty \@M + \normalfont + \upm@format@parttitle{\nohyphens{#1}}\par}% + \@endpart} +\fi + +% CHAPTER +\ifupmarticleformat\else + \newcommand{\upm@format@makechapterhead}[2]{% + %\vspace*{50\p@}% + {\parindent \z@ \Huge \raggedleft \normalfont + \ifx\@empty#1\ifnum \c@secnumdepth >\m@ne + \upm@format@chapternum{\thechapter} + \par\nobreak + \vskip 20\p@ + \fi\fi + \interlinepenalty\@M + %\ifupmbookformat\doublespacing\fi + \upm@format@chaptertitle{\nohyphens{#2}}\par\nobreak + \vskip 80\p@ + } + } + %internal implementation of \chapter + \gdef\@makechapterhead#1{\upm@format@makechapterhead{\@empty}{#1}} + %internal implementation of \chapter* + \gdef\@makeschapterhead#1{\upm@format@makechapterhead{\relax}{#1}} +\fi + +% SECTIONS +\let\upm@format@sect@old\@sect +\let\upm@format@ssect@old\@ssect + +% public implementation of sections. +\renewcommand{\section}{\setcounter{upm@format@section@sectionlevel}{1}\@startsection{section}{1}{\z@}{-3.5ex \@plus -1ex \@minus -.2ex}{2.3ex \@plus.2ex}{\normalfont\Large\scshape}} +\renewcommand{\subsection}{\setcounter{upm@format@section@sectionlevel}{2}\@startsection{subsection}{2}{\z@}{-3.25ex\@plus -1ex \@minus -.2ex}{1.5ex \@plus .2ex}{\normalfont\large\scshape}} +\renewcommand{\subsubsection}{\setcounter{upm@format@section@sectionlevel}{3}\@startsection{subsubsection}{3}{\z@}{-3.25ex\@plus -1ex \@minus -.2ex}{1.5ex \@plus .2ex}{\normalfont\normalsize\scshape}} + +% internal implementations for sections. +\gdef\@sect#1#2#3#4#5#6[#7]#8{\upm@format@sect@old{#1}{#2}{#3}{#4}{#5}{#6}[#7]{\upm@format@sectiontitle{\theupm@format@section@sectionlevel}{#8}}} +\gdef\@ssect#1#2#3#4#5{\upm@format@ssect@old{#1}{#2}{#3}{#4}{\upm@format@sectiontitle{\theupm@format@section@sectionlevel}{#5}}} +\gdef\@seccntformat#1{\upm@format@sectionnum{\theupm@format@section@sectionlevel}{\csname the#1\endcsname/}\quad} + +%---------------------------------------- +% PAGE LAYOUT +%---------------------------------------- + +% Change the factors for determining the element positions +\renewcommand{\topfraction}{.99} % max fraction of floats at top +\renewcommand{\bottomfraction}{.99} % max fraction of floats at bottom +\renewcommand{\textfraction}{.5} % allow minimal text w. figs +\renewcommand{\dbltopfraction}{.66} % fit big float above 2-col. text +\renewcommand{\floatpagefraction}{0.99} % require fuller float pages | N.B.: floatpagefraction MUST be less than topfraction !! +\renewcommand{\dblfloatpagefraction}{.66} % fit big float above 2-col. text + +% Update the format of the saved pages and sections +\renewcommand{\sectionmark}[1]{\markright{\thesection\ \textsc{#1}}} +\ifupmarticleformat\else +\renewcommand{\chaptermark}[1]{\markboth{\textsc{#1}}{}} +\renewcommand{\@mkboth}[2]{% + \let\upm@doc@MakeUppercase\MakeUppercase% + \gdef\MakeUppercase##1{##1}% + \chaptermark{#1}% + \let\MakeUppercase\upm@doc@MakeUppercase% + \let\upm@doc@MakeUppercase\relax% +} +\fi +% Make sure that the page before a part or +% a chapter title was empty +\renewcommand{\cleardoublepage}{% + \clearpage% + \if@twoside\ifodd\c@page% + \else% + \thispagestyle{facingtochapter}% + \hbox{}\newpage% + \if@twocolumn\hbox{}\newpage% + \fi\fi\fi% +} +\newcommand{\ps@facingtochapter}{\ps@empty} + +%---------------------------------------- +% ADDITIONAL SECTIONS +%---------------------------------------- + +\gdef\upm@format@newsection@alignment{} + +%----- +% Part without number but inside the TOC +%\parttoc [toctitle]{title} % left-alignment inside TOC +%\parttoc*[toctitle]{title} % right-alignment inside TOC +\def\parttoc{\@ifstar% + {\gdef\upm@format@newsection@alignment{\protect\numberline{}}\expandafter\upm@format@newsection@part}% + {\gdef\upm@format@newsection@alignment{}\expandafter\upm@format@newsection@part}} +\def\upm@format@newsection@part{\@ifnextchar [% + {\expandafter\upm@format@newsection@part@opt}% + {\expandafter\upm@format@newsection@part@nopt}} +\def\upm@format@newsection@part@opt[#1]#2{% + \part*{#2\addcontentsline{toc}{part}{\upm@format@newsection@alignment{#1}}}% + \chaptermark{}% +} +\def\upm@format@newsection@part@nopt#1{% + \part*{#1\addcontentsline{toc}{part}{\upm@format@newsection@alignment{#1}}}% + \chaptermark{}% +} + +%----- +% Chapter without number but inside the TOC +%\chaptertoc [toctitle]{title} % left-alignment inside TOC +%\chaptertoc*[toctitle]{title} % right-alignment inside TOC +\def\chaptertoc{\@ifstar% + {\gdef\upm@format@newsection@alignment{\protect\numberline{}}\expandafter\upm@format@newsection@chapter}% + {\gdef\upm@format@newsection@alignment{}\expandafter\upm@format@newsection@chapter}} + +\def\upm@format@newsection@chapter{\@ifnextchar[% + {\upm@format@newsection@chapter@a}% + {\upm@format@newsection@chapter@b}% +} + +\def\upm@format@newsection@chapter@a[#1]#2{% + \expandafter\chapter*[#1]{#2}% + \addcontentsline{toc}{chapter}{\upm@format@newsection@alignment{#1}}% +} + +\def\upm@format@newsection@chapter@b#1{% + \expandafter\chapter*{#1}% + \addcontentsline{toc}{chapter}{\upm@format@newsection@alignment{#1}}% +} + +%----- +% Section without number but inside the TOC +%\sectiontoc [toctitle]{title} % left-alignment inside TOC +%\sectiontoc*[toctitle]{title} % right-alignment inside TOC +\def\sectiontoc{\@ifstar% + {\gdef\upm@format@newsection@alignment{\protect\numberline{}}\expandafter\upm@format@newsection@section}% + {\gdef\upm@format@newsection@alignment{}\expandafter\upm@format@newsection@section}} +\def\upm@format@newsection@section{\@ifnextchar [% + {\expandafter\upm@format@newsection@section@opt}% + {\expandafter\upm@format@newsection@section@nopt}} +\def\upm@format@newsection@section@opt[#1]#2{% + \section*{#2\addcontentsline{toc}{section}{\upm@format@newsection@alignment{#1}}}% +} +\def\upm@format@newsection@section@nopt#1{% + \section*{#1\addcontentsline{toc}{section}{\upm@format@newsection@alignment{#1}}}% +} + +%----- +% Subsection without number but inside the TOC +%\subsectiontoc [toctitle]{title} % left-alignment inside TOC +%\subsectiontoc*[toctitle]{title} % right-alignment inside TOC +\def\subsectiontoc{\@ifstar% + {\gdef\upm@format@newsection@alignment{\protect\numberline{}}\expandafter\upm@format@newsection@subsection}% + {\gdef\upm@format@newsection@alignment{}\expandafter\upm@format@newsection@subsection}} +\def\upm@format@newsection@subsection{\@ifnextchar [% + {\expandafter\upm@format@newsection@subsection@opt}% + {\expandafter\upm@format@newsection@subsection@nopt}} +\def\upm@format@newsection@subsection@opt[#1]#2{% + \subsection*{#2\addcontentsline{toc}{subsection}{\upm@format@newsection@alignment{#1}}}% +} +\def\upm@format@newsection@subsection@nopt#1{% + \subsection*{#1\addcontentsline{toc}{subsection}{\upm@format@newsection@alignment{#1}}}% +} + +%----- +% Subsubsection without number but inside the TOC +%\subsubsectiontoc [toctitle]{title} % left-alignment inside TOC +%\subsubsectiontoc*[toctitle]{title} % right-alignment inside TOC +\def\subsubsectiontoc{\@ifstar% + {\gdef\upm@format@newsection@alignment{\protect\numberline{}}\expandafter\upm@format@newsection@subsubsection}% + {\gdef\upm@format@newsection@alignment{}\expandafter\upm@format@newsection@subsubsection}} +\def\upm@format@newsection@subsubsection{\@ifnextchar [% + {\expandafter\upm@format@newsection@subsubsection@opt}% + {\expandafter\upm@format@newsection@subsubsection@nopt}} +\def\upm@format@newsection@subsubsection@opt[#1]#2{% + \subsubsection*{#2\addcontentsline{toc}{subsubsection}{\upm@format@newsection@alignment{#1}}}% +} +\def\upm@format@newsection@subsubsection@nopt#1{% + \subsubsection*{#1\addcontentsline{toc}{subsubsection}{\upm@format@newsection@alignment{#1}}}% +} + +%----- +% Chapter with different titles for in the TOC, the headers and on the pages +%\chapterfull[in toc]{on page}{in header} % with number +%\chapterfull*[in toc]{on page}{in header} % without number +\def\chapterfull{\@ifstar% + {\gdef\upm@format@newsection@thesectionmacro{\chapter*}\upm@format@newsection@chapterfull}% + {\gdef\upm@format@newsection@thesectionmacro{\chapter}\upm@format@newsection@chapterfull}% +} + +\def\upm@format@newsection@chapterfull{\@ifnextchar[% + \upm@format@newsection@chapterfull@a% + \upm@format@newsection@chapterfull@b% +} + +\def\upm@format@newsection@chapterfull@a[#1]#2#3{% + \upm@format@newsection@thesectionmacro[#1]{#2}% + \chaptermark{#3}% +} + +\def\upm@format@newsection@chapterfull@b#1#2{% + \upm@format@newsection@thesectionmacro{#1}% + \chaptermark{#2}% +} + +%----- +% Section with different titles for in the TOC, the headers and on the pages +%\sectionfull[in toc]{on page}{in header} % with number +%\sectionfull*[in toc]{on page}{in header} % without number +\def\sectionfull{\@ifstar% + {\gdef\upm@format@newsection@thesectionmacro{\section*}\upm@format@newsection@sectionfull}% + {\gdef\upm@format@newsection@thesectionmacro{\section}\upm@format@newsection@sectionfull}% +} + +\def\upm@format@newsection@sectionfull{\@ifnextchar[% + \upm@format@newsection@sectionfull@a% + \upm@format@newsection@sectionfull@b% +} + +\def\upm@format@newsection@sectionfull@a[#1]#2#3{% + \upm@format@newsection@thesectionmacro[#1]{#2}% + \global\sectionmark{#3}% +} + +\def\upm@format@newsection@sectionfull@b#1#2{% + \upm@format@newsection@thesectionmacro{#1}% + \global\sectionmark{#2}% +} + +%---------------------------------------- +% BIBLIOGRAPHY +%---------------------------------------- + +%----- +%\bibsize{size} +\newcommand{\bibsize}[1]{\gdef\upm@bibsize{#1}} + +\gdef\upm@bibsize{\small} + +\gdef\@biblabel#1{{\upm@bibsize{[#1]}}} + +\gdef\@lbibitem[#1]#2{\item[\@biblabel{#1}\hfill]\upm@bibsize\if@filesw{% + \let\protect\noexpand\immediate\write\@auxout{\string\bibcite{#2}{#1}}}\fi\ignorespaces} + +\gdef\@bibitem#1{\item\upm@bibsize\if@filesw% + \immediate\write\@auxout{\string\bibcite{#1}{\the\value{\@listctr}}}\fi\ignorespaces} + + +%---------------------------------------- +% TABLE OF CONTENT +%---------------------------------------- +\setcounter{secnumdepth}{3} +\setcounter{tocdepth}{3} + +% Change the color of the TOC for the "dotted" lines +%\let\upm@format@dottedtocline@old\@dottedtocline +%\gdef\@dottedtocline#1#2#3#4#5{% +% %{depth}{left margin}{right margin}{text}{page number} +% \upm@format@dottedtocline@old{#1}{#2}{#3}{#4}{#5}% +%} + +% Change the color of the TOC for the parts +\@ifundefined{l@part}{}{ +\let\upm@format@l@part@old\l@part +\renewcommand*\l@part[2]{% + %{text}{page number} + \upm@format@l@part@old{\textcolor{parttitlecolor}{#1}}{\textcolor{parttitlecolor}{#2}}% +} +} + +% Change the color of the TOC for the chapters +\@ifundefined{l@chapter}{}{ +\let\upm@format@l@chapter@old\l@chapter +\renewcommand*\l@chapter[2]{% + %{text}{page number} + \upm@format@l@chapter@old{\textcolor{chaptertitlecolor}{#1}}{\textcolor{chaptertitlecolor}{#2}}% +} +} + +% Overide the color and font configurations of the MINITOC package +\AtBeginDocument{ + \@ifundefined{minitoc}{}{% + % Chapter + \gdef\mtifont{\normalfont\large\upshape\bfseries\color{chaptertitlecolor}} + % Section + \gdef\mtcSfont{\normalfont\small\upshape\bfseries\color{sectiontitlecolor}} + % Sub-Section and SubSub-Section + \gdef\mtcSSfont{\normalfont\small\upshape\mdseries\normalcolor} + \global\let\mtcSSSfont\mtcSSfont + } +} + +%---------------------------------------- +% ENUMERATIONS +%---------------------------------------- +\newcounter{upm@fmt@savedcounter} + +\newcommand{\savecounter}[1]{% + \setcounter{upm@fmt@savedcounter}{\value{#1}}% +} +\newcommand{\restorecounter}[1]{% + \setcounter{#1}{\theupm@fmt@savedcounter}% +} +\newcommand{\saveenumcounter}{\savecounter{\@enumctr}} +\newcommand{\restoreenumcounter}{\restorecounter{\@enumctr}} +\newcommand{\setenumcounter}[1]{\setcounter{\@enumctr}{#1}\addtocounter{\@enumctr}{-1}} +\newcommand{\getenumcounter}{\value{\@enumctr}} + +%---------------------------------------- +% FOOTNOTE +%---------------------------------------- + +\gdef\upm@footnoteref#1{\upm@textsuperscript{#1}} +\gdef\upm@footnotepageref#1#2{\upm@textsuperscript{{#1\tiny(#2)}}} + +\def\upm@savefootnote#1#2{% + \footnote{#1\label{\upm@protect{footnote:#2}}}% + \upm@nameundef{footnote:#2:cmd}% +} +\def\upm@savefootnotestar#1#2{% + \upm@namedef{footnote:#2:cmd}{\upm@savefootnote{#1}{#2}}% +} + +\DeclareRobustCommand\savefootnote{\@ifstar\upm@savefootnotestar\upm@savefootnote} + +\def\upm@reffootnote#1{% + \upm@ifdefinedname{footnote:#1:cmd}{% + \upm@nameuse{footnote:#1:cmd}}{% + \upm@footnoteref{\upm@getref{\upm@protect{footnote:#1}}}% + }% + \xspace% +} +\def\upm@reffootnotestar#1{% + \upm@ifdefinedname{footnote:#1:cmd}{% + \upm@nameuse{footnote:#1:cmd}}{% + \xdef\upm@tmp@tmp{\upm@protect{footnote:#1}}% + \upm@footnotepageref{\expandafter\upm@getref{\upm@tmp@tmp}}{\expandafter\upm@getpageref{\upm@tmp@tmp}}% + \global\let\upm@tmp@tmp\relax% + }% + \xspace% +} + +\DeclareRobustCommand\reffootnote{\@ifstar\upm@reffootnotestar\upm@reffootnote} + +%---------------------------------------- +% IMAGES IN PARAGRAPHS +%---------------------------------------- + +\newenvironment{umlinpar}[2][width=.45\linewidth]{% +\begin{window}[0,r,{\mbox{\hspace{.5cm}\includegraphics[#1]{#2}\vspace{.5cm}}},{}] +}{% +\end{window}} + +%---------------------------------------- +% DATE +%---------------------------------------- + +%Build a date this a supported format +%\makedate{day}{month}{year} +\let\makedate\upm@format@lang@makedate + +%----- +%Replies the year corresponding to the given supported date +%\extractyear{date} +\let\extractyear\upm@format@lang@extractyear + +%----- +%Replies the month corresponding to the given supported date +%\extractmonth{date} +\let\extractmonth\upm@format@lang@extractmonth + +%----- +%Replies the day corresponding to the given supported date +%\extractday{date} +\let\extractday\upm@format@lang@extractday + +% Redefine the today function +\AtBeginDocument{\global\edef\today{\makedate{\the\day}{\the\month}{\the\year}}} + +%---------------------------------------- +% PEOPLE NAME +%---------------------------------------- + +\def\makenamespacing#1{% + \upm@format@makenamespacing{#1}\xspace% +} + +\def\upm@format@makenamespacing#1{% + \upm@foreach.\in#1\do{% + \ignorespaces\upm@foreach@term.\,% + }{% + \ignorespaces\upm@foreach@term% + }% +} + +\gdef\upm@format@people@title#1{\textsc{#1}} +\def\upm@format@firstname@format#1{% + {\smaller\textsc{\upm@format@makenamespacing{#1}}}% +} +\def\upm@format@von@format#1{\mbox{\smaller\ignorespaces#1}} +\def\upm@format@lastname@format#1{\textsc{\ignorespaces#1}} + +%\upmmakename[von]{firstname}{lastname}{separator} +\newcommand{\upmmakename}[4][\relax]{% + \ifx#1\relax% + {\upm@format@firstname@format{#2}#4\upm@format@lastname@format{#3}}% + \else% + {\upm@format@firstname@format{#2}#4\upm@format@von@format{#1}#4\upm@format@lastname@format{#3}}% + \fi% + \xspace% +} + +%\makename[von]{firstname}{lastname} +\newcommand{\makename}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }% +} + +%\makelastname[von]{lastname} +\newcommand{\makelastname}[2][\relax]{% + \ifx#1\relax% + \upm@format@lastname@format{#2}% + \else% + \upm@format@von@format{#1}\ \upm@format@lastname@format{#2}% + \fi% + \xspace% +} + +%\makefirstname{firstname} +\newcommand{\makefirstname}[1]{% + \upm@format@firstname@format{#1}\xspace% +} + +%\prname[von]{firstname}{lastname} +%\prname*[von]{firstname}{lastname} +\def\prname{\@ifstar\upm@prnamestar\upm@prname} +\newcommand{\upm@prname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@professor}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@prnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@professor}% +} + +%\drname[von]{firstname}{lastname} +%\drname*[von]{firstname}{lastname} +\def\drname{\@ifstar\upm@drnamestar\upm@drname} +\newcommand{\upm@drname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@doctor}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@drnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@doctor}% +} + +%\phdname[von]{firstname}{lastname} +%\phdname*[von]{firstname}{lastname} +\def\phdname{\@ifstar\upm@phdnamestar\upm@phdname} +\newcommand{\upm@phdname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@phdoctor}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@phdnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@phdoctor}% +} + +%\scdname[von]{firstname}{lastname} +%\scdname*[von]{firstname}{lastname} +\def\scdname{\@ifstar\upm@scdnamestar\upm@scdname} +\newcommand{\upm@scdname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@scdoctor}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@scdnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@scdoctor}% +} + +%\mdname[von]{firstname}{lastname} +%\mdname*[von]{firstname}{lastname} +\def\mdname{\@ifstar\upm@mdnamestar\upm@mdname} +\newcommand{\upm@mdname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@mdoctor}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@mdnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@mdoctor}% +} + +%\pengname[von]{firstname}{lastname} +%\pengname*[von]{firstname}{lastname} +\def\pengname{\@ifstar\upm@pengnamestar\upm@pengname} +\newcommand{\upm@pengname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@professionalengineer}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@pengnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@professionalengineer}% +} + +%\iengname[von]{firstname}{lastname} +%\iengname*[von]{firstname}{lastname} +\def\iengname{\@ifstar\upm@iengnamestar\upm@iengname} +\newcommand{\upm@iengname}[3][\relax]{% + \upm@format@people@title{\upm@format@lang@incorporatedengineer}\,\upmmakename[#1]{#2}{#3}{\ }% +} +\newcommand{\upm@iengnamestar}[3][\relax]{% + \upmmakename[#1]{#2}{#3}{\ }, \upm@format@people@title{\upm@format@lang@incorporatedengineer}% +} + +%---------------------------------------- +% INLINE ENUMERATION +%---------------------------------------- + +\newcounter{@@upm@fmt@inlineenumeration} +\newcommand{\inlineenumerationlabel}[1]{(#1)} +\let\upm@fmt@inlineenum@numberformat\roman +\newenvironment{inlineenumeration}{% + \begingroup% + \let\upm@fmt@inlineenum@currentlabel\@currentlabel% + \renewcommand{\item}{\xdef\@currentlabel{\upm@fmt@inlineenum@numberformat{@@upm@fmt@inlineenumeration}}{\inlineenumerationlabel{\@currentlabel}{\addtocounter{@@upm@fmt@inlineenumeration}{1}}}~}% + \setcounter{@@upm@fmt@inlineenumeration}{1}% +}{% + \global\let\@currentlabel\upm@fmt@inlineenum@currentlabel% + \endgroup% +} + +%---------------------------------------- +% DESCRIPTION LIST WITH NUMBERS +%---------------------------------------- + +\newcounter{@upm@fmt@enumdescription@cnt@} +\gdef\upm@fmt@enumdescription@savedlabel{} +\gdef\upm@fmt@enumdescription@savedcounter{} +\newcommand{\upm@fmt@enumdescription@fmt@}[1]{} +\newcommand{\enumdescriptionlabel}[1]{\textbf{#1}} +\newcommand{\enumdescriptioncounterseparator}{~-~} +\newcommand{\enumdescriptionlabelseparator}{\upm@column@char} +% #1: counter style. +% #2: text before the counter. +% #3: text after the counter. +% #4: text between the counter and the description. +% #5: text between the description and the rest of the text. +% #6: text between the counter (no description) and the rest of the text. +\newenvironment{upm@fmt@enumdescription}[6]{% + \begin{list}{}{% + \renewcommand{\upm@fmt@enumdescription@savedlabel}{\@currentlabel}% + \edef\upm@fmt@enumdescription@savedcounter{\the@upm@fmt@enumdescription@cnt@}% + \setcounter{@upm@fmt@enumdescription@cnt@}{1}% + \ifthenelse{\equal{#1}{a}}{% + \renewcommand{\upm@fmt@enumdescription@fmt@}[1]{#2\alph{##1}#3}% + }{% + \ifthenelse{\equal{#1}{A}}{% + \renewcommand{\upm@fmt@enumdescription@fmt@}[1]{#2\Alph{##1}#3}% + }{% + \ifthenelse{\equal{#1}{i}}{% + \renewcommand{\upm@fmt@enumdescription@fmt@}[1]{#2\roman{##1}#3}% + }{% + \ifthenelse{\equal{#1}{I}}{% + \renewcommand{\upm@fmt@enumdescription@fmt@}[1]{#2\Roman{##1}#3}% + }{% + \renewcommand{\upm@fmt@enumdescription@fmt@}[1]{#2\arabic{##1}#3}% + }% + }% + }% + }% + \renewcommand{\makelabel}[1]{% + \xdef\@currentlabel{\upm@fmt@enumdescription@fmt@{@upm@fmt@enumdescription@cnt@}}% + \enumdescriptionlabel{\@currentlabel#4##1\ifthenelse{\equal{a##1}{a}}{#6}{#5}}{\addtocounter{@upm@fmt@enumdescription@cnt@}{1}}}% + \expandafter\settowidth{\labelwidth}{#2iii#3}% + } +}{% + \global\let\@currentlabel\upm@fmt@enumdescription@savedlabel% + \setcounter{@upm@fmt@enumdescription@cnt@}{\upm@fmt@enumdescription@savedcounter}% + \end{list}% +} +\newenvironment{enumdescriptionx}[3][i]{% + \begin{upm@fmt@enumdescription}{#1}{#2}{#3}{\enumdescriptioncounterseparator}{\enumdescriptionlabelseparator}{\enumdescriptionlabelseparator}% +}{% + \end{upm@fmt@enumdescription}% +} +\newenvironment{enumdescription}[1][i]{% + \begin{upm@fmt@enumdescription}{#1}{}{}{\enumdescriptioncounterseparator}{\enumdescriptionlabelseparator}{\enumdescriptionlabelseparator}% +}{% + \end{upm@fmt@enumdescription}% +} + +%% Issue #14: enumerate behaves as enumdescription +\ifupm@use@override@standard@lists + + \AtBeginDocument{ + \message{*** Overriding the 'enumerate' environment. Pass option 'standardlists' for avoiding this override.} + \global\let\enumerate\@undefined + \global\let\endenumerate\@undefined + \global\NewEnviron{enumerate}[1][1\string.~]{% + % Parse the parameter for extracting the type of the enumeration, the prefix and the postfix + \in@{a}{#1}\ifin@ + \gdef\upm@fmt@enumerate@style{a}% + \def\reserved@a##1a##2\@nil{% + \def\upm@fmt@enumerate@prefix{##1}% + \def\upm@fmt@enumerate@postfix{##2}% + }% + \reserved@a#1\@nil% + \else\in@{1}{#1}\ifin@ + \gdef\upm@fmt@enumerate@style{1}% + \def\reserved@a##11##2\@nil{% + \def\upm@fmt@enumerate@prefix{##1}% + \def\upm@fmt@enumerate@postfix{##2}% + }% + \reserved@a#1\@nil% + \else\in@{A}{#1}\ifin@ + \gdef\upm@fmt@enumerate@style{A}% + \def\reserved@a##1A##2\@nil{% + \def\upm@fmt@enumerate@prefix{##1}% + \def\upm@fmt@enumerate@postfix{##2}% + }% + \reserved@a#1\@nil% + \else\in@{i}{#1}\ifin@ + \gdef\upm@fmt@enumerate@style{i}% + \def\reserved@a##1i##2\@nil{% + \def\upm@fmt@enumerate@prefix{##1}% + \def\upm@fmt@enumerate@postfix{##2}% + }% + \reserved@a#1\@nil% + \else\in@{I}{#1}\ifin@ + \gdef\upm@fmt@enumerate@style{I}% + \def\reserved@a##1I##2\@nil{% + \def\upm@fmt@enumerate@prefix{##1}% + \def\upm@fmt@enumerate@postfix{##2}% + }% + \reserved@a#1\@nil% + \else% + \errmessage{Invalid format of the enumerate counter} + \fi\fi\fi\fi\fi% + \protected@xdef\upm@tmp{\protect\protect\protect\begin{upm@fmt@enumdescription}{\upm@fmt@enumerate@style}{\upm@fmt@enumerate@prefix}{\upm@fmt@enumerate@postfix}{}{\protect\enumdescriptionlabelseparator}{}}% + % + \upm@tmp% + %\protect\begin{upm@fmt@enumdescription}{#1}{}{\string.~}{}{\enumdescriptionlabelseparator}{}% + \BODY% + \protect\end{upm@fmt@enumdescription}% + } + } +\fi + +%---------------------------------------- +% DESCRIPTION LIST WITH BULLETS +%---------------------------------------- +\ifupm@use@override@standard@lists + \gdef\upm@fmt@itemizeddescription@separator{\iflanguage{french}{ :}{:}\ } + \newcommand{\upm@fmt@itemizeddescription@formatdescription}[1]{\textbf{#1}} + \newcommand{\upm@fmt@itemizeddescription@desc}[2]{% + \upm@fmt@itemizeddescription@formatdescription{#1#2}% + } + \let\upm@fmt@olditem\item + \let\upm@item@param\upm@fmt@olditem + \let\upm@item@noparam\upm@fmt@olditem + \def\item{\@ifnextchar[\upm@item@param\upm@item@noparam} + \AtBeginDocument{ + \message{*** Overriding the 'description' environment. Pass option 'standardlists' for avoiding this override.} + \global\let\description\@undefined + \global\let\enddescription\@undefined + \global\NewEnviron{description}[1][\upm@fmt@itemizeddescription@separator]{ + \begin{itemize}% + \renewcommand{\upm@item@param}[1][]{\upm@fmt@olditem \upm@fmt@itemizeddescription@desc{##1}{#1}}% + \renewcommand{\upm@item@noparam}{\upm@fmt@olditem }% + \BODY% + \end{itemize}% + } + } +\fi + +%---------------------------------------- +% SIZE MANAGEMENT +%---------------------------------------- +\newenvironment{upmfontsize}[1]{% + \begingroup% + \let\upm@Huge\Huge% + \let\upm@huge\huge% + \let\upm@normalsize\normalsize% + \let\upm@small\small% + \let\upm@scriptsize\scriptsize% + \let\upm@footnotesize\footnotesize% + \let\upm@tiny\tiny% + % + \ifx#1\Huge% + \let\Huge\upm@Huge% + \let\huge\upm@Huge% + \let\small\upm@huge% + \let\scriptsize\upm@normalsize% + \let\footnotesize\upm@small% + \let\tiny\upm@scriptsize% + \else\ifx#1\huge% + \let\Huge\upm@Huge% + \let\huge\upm@Huge% + \let\small\upm@normalsize% + \let\scriptsize\upm@small% + \let\footnotesize\upm@scriptsize% + \let\tiny\upm@footnotesize% + \else\ifx#1\small% + \let\Huge\upm@huge% + \let\huge\upm@normalsize% + \let\small\upm@scriptsize% + \let\scriptsize\upm@footnotesize% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \else\ifx#1\scriptsize% + \let\Huge\upm@normalsize% + \let\huge\upm@small% + \let\small\upm@footnotesize% + \let\scriptsize\upm@tiny% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \else\ifx#1\footnotesize% + \let\Huge\upm@small% + \let\huge\upm@scriptsize% + \let\small\upm@tiny% + \let\scriptsize\upm@tiny% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \else\ifx#1\tiny% + \let\Huge\upm@scriptsize% + \let\huge\upm@footnotesize% + \let\small\upm@tiny% + \let\scriptsize\upm@tiny% + \let\footnotesize\upm@tiny% + \let\tiny\upm@tiny% + \fi% + \fi% + \fi% + \fi% + \fi% + \fi% + #1% +}{\endgroup} + +%---------------------------------------- +% FRAMED MINIPAGE +%---------------------------------------- + +\newsavebox{\upm@framed@minipage} +%\begin{framedminipage}{width}...\end{framedminipage} +\newenvironment{framedminipage}[1]{% + \begin{lrbox}{\upm@framed@minipage}\begin{minipage}{#1}% + }{% + \end{minipage}\end{lrbox}\fbox{\usebox{\upm@framed@minipage}}} + +%\begin{framedcolorminipage}{width}{border}{background}...\end{framedcolorminipage} +\newenvironment{framedcolorminipage}[3]{% + \newcommand{\upm@framed@minipage@border}{#2}% + \newcommand{\upm@framed@minipage@background}{#3}% + \begin{lrbox}{\upm@framed@minipage}\begin{minipage}{#1}% + }{% + \end{minipage}\end{lrbox}\fcolorbox{\upm@framed@minipage@border}{\upm@framed@minipage@background}{\usebox{\upm@framed@minipage}}} + +%---------------------------------------- +% HIGHLIGH BOXES +%---------------------------------------- + +\newsavebox{\upm@highlight@box@save} + +\newenvironment{upm@highligh@box}[2]{% + \par + \vspace{.5cm} + \begin{tabular}{|p{#1}|} + \hline + \begin{window}[0,l,{\mbox{\includegraphics[width=1cm]{#2}}},{}] +}{% + \end{window}\\ \hline \end{tabular} + \vspace{.5cm} + \par +} + +\newenvironment{upmcaution}[1][\linewidth]{% + \upm@highligh@box{#1}{caution.png}% +}{% + \endupm@highligh@box% +} + +\newenvironment{upminfo}[1][\linewidth]{% + \upm@highligh@box{#1}{info.png}% +}{% + \endupm@highligh@box% +} + +\newenvironment{upmquestion}[1][\linewidth]{% + \upm@highligh@box{#1}{question.png}% +}{% + \endupm@highligh@box% +} + +%---------------------------------------- +% PROVIDE URL MACROS, WHICH WILL BE +% OVERRIDDEN BY THE DOCUMENT CLASS +%---------------------------------------- + +\newcommand{\url}[2][]{\texttt{#2}} +\newcommand{\href}[3][]{\texttt{#3}} + +%---------------------------------------- +% Exponents and Indices +%---------------------------------------- +\renewcommand{\textup}[1]{\textsuperscript{#1}\xspace} +\def\@textsubscript#1{% + {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}} +\newcommand{\textsubscript}[1]{\@textsubscript{\selectfont#1}} +\newcommand{\textdown}[1]{\textsubscript{#1}\xspace} + + +%---------------------------------------- +% UNDERLINE +%---------------------------------------- + +\let\upm@oldunderline\underline +\renewcommand{\underline}[1]{\upm@oldunderline{\smash{#1}}} + +%---------------------------------------- +% ENVIRONMENT FOR DEFINITIONS +%---------------------------------------- + +%----- +% Defining the style for the definitions +\colorlet{definitionbackground}{backtableheader} +\colorlet{definitionheaderforeground}{fronttableheader} +\colorlet{definitionborder}{fronttableheader} +\colorlet{definitiontextforeground}{fronttableheader} + + + \gdef\definitionname{Definition} + \gdef\listdefinitionname{List of Definitions} + + +\gdef\upm@definition@width{.9\linewidth} +\gdef\upm@definition@rule@width{\linewidth} +\gdef\upm@definition@rule@height{0.4pt} + +\newtheoremstyle{upmdefinition}% name of the style to be used + {}% measure of space to leave above the theorem. E.g.: 3pt + {}% measure of space to leave below the theorem. E.g.: 3pt + {\normalfont}% name of font to use in the body of the theorem + {}% measure of space to indent the head + {\normalfont\bfseries}% name of head font + {\\[-1em]{\textcolor{definitionborder}{\rule{\upm@definition@rule@width}{\upm@definition@rule@height}}}}% punctuation between head and body + {\newline}% space after theorem head + {\textcolor{definitionheaderforeground}{\thmname{#1}\thmnumber{~#2}\upm@column@char\thmnote{ #3}}\vspace{.25em}}% Manually specify head + +%----- +% Declare a theorem with the standard UPM style +% \declareupmtheorem[theorem_style]{name}{label}{list_label} +\newcommand{\declareupmtheorem}[4][upmdefinition]{% + \global\declaretheorem[name={#3},style=#1]{upm#2}% + \global\newenvironment{#2}[1][]{% + \par\vspace{\parsep}\centering\begin{framedcolorminipage}{\upm@definition@width}{definitionborder}{definitionbackground}% + \color{definitiontextforeground}% + \begin{upm#2}[##1]% + }{% + \end{upm#2}% + \end{framedcolorminipage}\vspace{\parsep}\par% + }% + % Check the version of the thmtools because the TeXLive distribution + % gives a too old version. + \@ifpackagelater{thm-listof}{2012/05/03}{% + \global\@namedef{listof#2s}{% + \global\let\upm@definition@old@listtheoremname\listtheoremname% + \global\let\upm@definition@old@upmtheoremopt\upm@definition@upmtheoremopt% + \gdef\listtheoremname{#4}% + \renewcommand{\upm@definition@upmtheoremopt}[1]{}% + \expandafter\listoftheorems[ignoreall,show={upm#2}]% + \global\let\listtheoremname\upm@definition@old@listtheoremname% + \global\let\upm@definition@upmtheoremopt\upm@definition@old@upmtheoremopt% + }% + }{% + \@latex@warning{Your version of the thmtools is too old. I recommend you to install the version 2012/05/04, or later.} + \global\@namedef{listof#2s}{% + \global\let\upm@tmp\listtheoremname% + \gdef\listtheoremname{#4}% + \listoftheorems% + \global\let\listtheoremname\upm@tmp% + }% + } +} +\@onlypreamble\declareupmtheorem + +\gdef\thmtformatoptarg#1{\upm@column@char\ #1}% + +% Permits to define an part of the definition's name that is +% rendered only in core part of the document, not in the +% list of theorems +\gdef\upm@definition@upmtheoremopt#1{#1} +\gdef\upmtheoremopt#1{\protect\upm@definition@upmtheoremopt{#1}} + +%----- +% Declare the definition environment +\declareupmtheorem{definition}{\definitionname}{\listdefinitionname} + +%---------------------------------------- +% ENVIRONMENT FOR EMPHBOX +%---------------------------------------- + +%----- +% Defining the style for the emphbox +\colorlet{emphboxbackground}{backtableheader} +\colorlet{emphboxborder}{fronttableheader} +\colorlet{emphboxtext}{fronttableheader} + +\NewEnviron{emphbox}[1][\linewidth]{% + \begin{framedcolorminipage}{#1}{emphboxborder}{emphboxbackground}% + \centering\color{emphboxtext}\BODY% + \end{framedcolorminipage}% +} + +\endinput diff --git a/upmext-spimufcphdthesis.cfg b/upmext-spimufcphdthesis.cfg new file mode 100644 index 0000000..f1ad8e7 --- /dev/null +++ b/upmext-spimufcphdthesis.cfg @@ -0,0 +1,180 @@ +% UP-METHODOLOGY EXTENSION FOR THE SPIM-UFC PHD THESIS +% Author: Stephane GALLAND +% Copyright (c) 2012-14 Stephane GALLAND + +\DeclareCopyright[french]{spimufcphdthesis}{2012--14}{Dr. habil. St\'ephane GALLAND}{Les noms des cit\'es, les marques cit\'ees ainsi que les logos correspondants sont la propri\'et\'e de leurs auteurs ou de leurs ayant-droits. Toute reproduction, m\^eme partielle des \'el\'ements de ce document donnera syst\'ematiquement lieu \`a des poursuites judiciaires. L'acronyme SPIM est la propri\'et\'e de l'\'Ecole Doctorale Science Pour l'Ing\'enieur et Micro\'electronique, France. L'acronymes UFC est la propri\'et\'e de l'Universit\'e de Franche-Comt\'e, France.} +\DeclareCopyright[english]{spimufcphdthesis}{2012--14}{Dr. habil. St\'ephane GALLAND}{SPIM and all SPIM-related trademarks and logos are trademarks or registered trademarks of \'Ecole Doctorale Science Pour l'Ing\'enieur et Micro\'electronique in France, other countries, or both. UFC and all UFC-related trademarks and logos are trademarks or registered trademarks of Universit\'e de Franche-Comt\'e in the France, other countries, or both.} + +\usepackage{helvet} +\usepackage{hyphenat} +\renewcommand{\familydefault}{\sfdefault} + +\definecolor{ufcgreen}{rgb}{0.388,0.478,0.051} + +\definecolor{frontpagetitle}{rgb}{0,0,0} +\definecolor{frontpageauthors}{rgb}{0,0,0} + +\definecolor{backpagetitle}{rgb}{0.698,0.862,0.094} +\definecolor{backpagetext}{rgb}{0,0,0} + +\definecolor{backtableheader}{rgb}{0.901,0.901,0.901} +\colorlet{fronttableheader}{ufcgreen} + +\colorlet{sectiontitlecolor}{ufcgreen} +\colorlet{chaptertitlecolor}{ufcgreen} +\colorlet{parttitlecolor}{ufcgreen} + +\colorlet{definitionbackground}{backtableheader!60} +\colorlet{definitionheaderforeground}{fronttableheader} +\colorlet{definitionborder}{gray!60} +\colorlet{definitiontextforeground}{black} + +\colorlet{emphemphtextcolor}{ufcgreen} +\colorlet{emphtextcolor}{ufcgreen} + +\colorlet{bibemphemphtextcolor}{ufcgreen} + +\Set{frontillustration}{spimufcphdthesis-frontpage} +\Set{p3illustration}{spimufcphdthesis-p3-head} +\Set{backillustration}{spimufcphdthesis-backpage} + +\Set{watermarksize}{.5} + +\Set{universityname}{Universit\'e de Franche-Comt\'e} +\Set{speciality}{Computer Science} +\Set{defensedate}{\today} +% Width of thye jury table +\Set{jurytabwidth}{\textwidth} + +% Style of the jury +\Set{jurystyle}{} + +% Defense message +\Set{defensemessage}{COMMITTEE:} + + +\Set{cfrontpage}{ + \begin{picture}(0,0) + \put(-100,-740){\includegraphics[width=600\unitlength,height=855\unitlength]{\Get{frontillustration}}} + \put(40,-430){\textcolor{frontpagetitle}{% + \parbox[b][8cm][t]{14cm}{\huge%this size permits to control the interline space + \mbox{}\vfill\sffamily% + \begin{flushleft}% + \noindent{\Huge\nohyphens{\theupmproject}}% + \Ifnotempty\theupmdocname{\\[.25cm]\large%this size permits to control the interline space + \noindent{\Large\nohyphens{\theupmdocname}}}% + \end{flushleft}% + %\vfill\mbox{}% + }}} + \put(70,-490){\textcolor{frontpageauthors}{% + \parbox[t][5cm][t]{10cm}{\sffamily% + \Ifnotempty\theauthorlist{\noindent\huge\theauthorlist} + }}}% + \ifpartnerlist% + \put(-50,-700){\parbox[b]{17cm}{% + \thepartnerlist% + }}% + \fi% + \end{picture}% + \cleardoublepage% + \pagestyle{empty}% + \begin{picture}(0,0) + \put(-100,-165){\includegraphics[width=600\unitlength]{\Get{p3illustration}}} + \put(-45,-200){\parbox[t][12cm][t]{17cm}{% + +\iffalse +\begin{center}% + {\Large TH\`ESE pr\'esent\'ee par} \\[.5cm] + {\huge\theauthorlist}\\[.5cm]% + pour obtenir le \\[.25cm] + {\Large Grade de Docteur de}\\[.2cm]% + {\Large l'\Get{universityname}}\\[.5cm] + Sp\'ecialit\'e~:~\textbf{\Get{speciality}} \\[1cm] + \parbox{\linewidth}{\centering\huge\nohyphens{\theupmproject}}% + \Ifnotempty\theupmdocname{\\[.25cm]\parbox{\linewidth}{\centering\Large{\nohyphens{\theupmdocname}}}}% + \ifphdthesishaslaboratory% + \\[1cm]\parbox{\linewidth}{\centering\small \ifphdthesishaslaboratorymulti Unit\'es de Recherche\,:\else Unit\'e de Recherche\,:\fi \\ % + \thethesislaboratories}% + \fi + \end{center}% + +\fi + + + + +\begin{center}% +{\huge \textbf{Distributed Optimization Techniques for Improving Lifetime of Wireless Networks}} \\[.5cm] +{\large By}\\[.5cm]% +{\huge Ali Kadhum IDREES}\\[.5cm]% +\end{center} + +\begin{center}% +{\Large Dissertation Submitted to the} \\[.5cm] +{\Large University of Franche-Comt\'e} \\[.5cm] +{\Large In Partial Fulfillment of the Requirements}\\[.5cm] +{\Large For the Ph.D. Degree in}\\[.5cm] +{\Large Computer Science}\\[.5cm] + +\end{center} + + + + +%\begin{center}% +%Copyright by \\ +%Ali Kadhum IDREES\\ +%2015 +%\end{center} + + + }} + \put(-45,-730){\parbox[b]{17cm}{% + \begin{center}% + \Get{defensemessage}\\[.25cm]% + \thejurytab% + \end{center} + }} + \put(-69,-180){% + \ifthenelse{\equal{\theupmdocref}{}}{}{% + \thespimthesisdocrefcard% + }% + } + \end{picture}% +} + +\Set{backpage}{ + \begin{picture}(0,0) + \ifupmbookformat% + \gdef\upmthesistmpaaa{-72}% + \gdef\upmthesistmpbbb{-17}% + \else% + \gdef\upmthesistmpaaa{-100}% + \gdef\upmthesistmpbbb{-45}% + \fi% + \expandafter\put(\upmthesistmpaaa,-740){\includegraphics[width=600\unitlength,height=900\unitlength]{\Get{backillustration}}} + \put(\upmthesistmpbbb,0){\parbox[t][12cm][t]{17cm}{% + \ifphdthesismainabstract% + \textcolor{backpagetitle}{\textbf{\large{\phdthesismainabstracttitle}}}\\[.5cm] + \Get{primaryabstractstyle}\nohyphens{\textcolor{backpagetext}{\ignorespaces\phdthesismainabstract}}% + \ifphdthesismainkeywords% + \vspace{.15cm}\par\noindent{\begin{tabularx}{\linewidth}{@{}lX@{}}\textcolor{backpagetitle}{\small\textbf{\phdthesismainkeywordstitle}} & % + \small\textcolor{backpagetext}{\Get{primarykeywordstyle}\ignorespaces\phdthesismainkeywords}\end{tabularx}}% + \fi% + \ifphdthesisminorabstract% + \par\vspace{2cm}% + \fi% + \fi% + \ifphdthesisminorabstract% + \textcolor{backpagetitle}{\textbf{\large{\phdthesisminorabstracttitle}}}\\[.5cm] + \Get{secondaryabstractstyle}\nohyphens{\textcolor{backpagetext}{\ignorespaces\phdthesisminorabstract}}% + \ifphdthesisminorkeywords% + \vspace{.15cm}\par\noindent{\begin{tabularx}{\linewidth}{@{}lX@{}}\small\textcolor{backpagetitle}{\textbf{\phdthesisminorkeywordstitle}} &% + \small\textcolor{backpagetext}{\Get{secondarykeywordstyle}\ignorespaces\phdthesisminorkeywords}\end{tabularx}}% + \fi% + \fi% + }}% + \end{picture} +} + +\endinput diff --git a/yfonts.sty b/yfonts.sty new file mode 100644 index 0000000..a3597d0 --- /dev/null +++ b/yfonts.sty @@ -0,0 +1,128 @@ +%% +%% This is file `yfonts.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% yfonts.dtx (with options: `package') +%% +%% IMPORTANT NOTICE: +%% +%% For the copyright see the source file. +%% +%% Any modified versions of this file must be renamed +%% with new filenames distinct from yfonts.sty. +%% +%% For distribution of the original source see the terms +%% for copying and modification in the file yfonts.dtx. +%% +%% This generated file may be distributed as long as the +%% original source files, as listed above, are part of the +%% same distribution. (The sources need not necessarily be +%% in the same archive or directory.) +\ProvidesPackage{yfonts} + [2003/01/08 v1.3 (WaS)] +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\newif\ifyf@v +\DeclareOption{varumlaut}{\yf@vtrue} +\ProcessOptions\relax +\DeclareFontEncoding{LY}{}{} +\DeclareFontSubstitution{LY}{yfrak}{m}{n} +\DeclareFontEncoding{LYG}{}{} +\DeclareFontSubstitution{LYG}{ygoth}{m}{n} +\DeclareFontFamily{LYG}{ygoth}{} +\DeclareFontShape{LYG}{ygoth}{m}{n}{% +<10><10.95><12><14.4><17.28><20.74><24.88>ygoth}{} +\DeclareFontFamily{LY}{yfrak}{} +\DeclareFontShape{LY}{yfrak}{m}{n}{% +<10><10.95><12><14.4><17.28><20.74><24.88>yfrak}{} +\DeclareFontFamily{LY}{ysmfrak}{} +\DeclareFontShape{LY}{ysmfrak}{m}{n}{% + <10><10.95><12><14.4><17.28><20.74><24.88>ysmfrak}{} +\DeclareFontFamily{LY}{yswab}{} +\DeclareFontShape{LY}{yswab}{m}{n}{% +<10><10.95><12><14.4><17.28><20.74><24.88>yswab}{} + +\DeclareFontFamily{U}{yinitas}{} +\DeclareFontShape{U}{yinitas}{m}{n}{% +<10>sfixed*yinitas% +<10.95>sfixed*[42.34]yinitas% +<12>sfixed*[46.39]yinitas% +<14.4>sfixed*[55.68]yinitas% +<17.28>sfixed*[66.82]yinitas% +<20.74>sfixed*[80.19]yinitas% +<24.88>sfixed*[96.20]yinitas% +}{} +\DeclareTextSymbol{\textemdash}{LYG}{124} +\DeclareTextSymbol{\textendash}{LYG}{123} +\DeclareTextComposite{\"}{LYG}{a}{91} +\DeclareTextComposite{\"}{LYG}{o}{93} +\DeclareTextComposite{\"}{LYG}{u}{94} +\DeclareTextComposite{\"}{LYG}{e}{92} +\DeclareTextSymbol{\ss}{LYG}{25} +\DeclareTextCommand{\SS}{LYG}{SS} +\DeclareTextSymbol{\i}{LYG}{16} +\DeclareTextSymbol{\j}{LYG}{17} +\DeclareTextSymbol{\textquotedblleft}{LYG}{95} +\DeclareTextCommand{\grqq}{LYG}{\textquotedblleft} +\DeclareTextSymbol{\textquotedblright}{LYG}{34} +\DeclareTextCommand{\"}{LY}[1]{\UseTextAccent{OT1}{\"}{#1}} +\DeclareTextAccent{\'}{LY}{19} +\DeclareTextAccent{\.}{LY}{95} +\DeclareTextAccent{\=}{LY}{22} +\DeclareTextAccent{\^}{LY}{94} +\DeclareTextAccent{\`}{LY}{18} +\DeclareTextAccent{\~}{LY}{126} +\DeclareTextAccent{\H}{LY}{125} +\DeclareTextAccent{\u}{LY}{21} +\DeclareTextAccent{\v}{LY}{20} +\DeclareTextAccent{\r}{LY}{23} +\DeclareTextSymbol{\textemdash}{LY}{124} +\DeclareTextSymbol{\textendash}{LY}{123} +\ifyf@v +\DeclareTextComposite{\"}{LY}{a}{137} +\DeclareTextComposite{\"}{LY}{o}{153} +\DeclareTextComposite{\"}{LY}{u}{158} +\DeclareTextComposite{\"}{LY}{e}{144} +\else +\DeclareTextComposite{\"}{LY}{a}{138} +\DeclareTextComposite{\"}{LY}{o}{154} +\DeclareTextComposite{\"}{LY}{u}{159} +\DeclareTextComposite{\"}{LY}{e}{145} +\fi +\DeclareTextSymbol{\textsection}{LY}{60} +\DeclareTextSymbol{\i}{LY}{16} +\DeclareTextSymbol{\j}{LY}{17} +\DeclareTextSymbol{\ss}{LY}{26} +\DeclareTextSymbol{\etc}{LY}{201} +\DeclareTextSymbol{\textquotedblleft}{LY}{34} +\DeclareTextCommand{\grqq}{LY}{\textquotedblleft} +\DeclareTextSymbol{\quotedblbase}{LY}{92} +\DeclareTextSymbol{\textquoteleft}{LY}{`\`} +\DeclareTextCommand{\grq}{LY}{\textquoteleft} +\DeclareTextSymbol{\textquoteright}{LY}{`\'} +\DeclareTextCommand{\SS}{LY} + {SS} +\def\gothdefault{ygoth} +\def\swabdefault{yswab} +\def\frakdefault{yfrak} +\def\initdefault{yinitas} +\def\gothfamily{\usefont{LYG}{\gothdefault}{m}{n}} +\def\swabfamily{\usefont{LY}{\swabdefault}{m}{n}} +\def\frakfamily{\usefont{LY}{\frakdefault}{m}{n}} +\def\initfamily{\usefont{U}{\initdefault}{m}{n}} +\DeclareTextFontCommand{\textgoth}{\gothfamily} +\DeclareTextFontCommand{\textswab}{\swabfamily} +\DeclareTextFontCommand{\textfrak}{\frakfamily} +\DeclareTextFontCommand{\textinit}{\initfamily} +\newcommand{\yinipar}[1]{\par\noindent\yinitpar{#1}} +\newcommand{\yinitpar}[1]{\setbox0=\hbox{\textinit{#1}}% +\hangindent=\wd0\hangafter=-4\advance\hangindent by .25em +{\dimen@=-3\baselineskip +\dimen@=\baselinestretch\dimen@ +\hskip-\wd0 \hskip-.25em +\raisebox{\dimen@}[0pt][0pt]{\unhbox0}\hskip.25em}} +\def\fraklines{\baselineskip\f@size dd\relax} +\endinput +%% +%% End of file `yfonts.sty'.