BaroqueW

BaroqueW

and his sidekick nikkitaa

BaroqueW RSS Feed
 
 
 
 

Posts tagged LaTeX

Latex – Autres astuces

Voici quelques snipets de LaTeX basé sur mon rapport de stage / Master.

Pour faire cadres et avoir un fond en couleur

Pour avoir un cadre autour de votre texte, un peu de la même manière que pour afficher le code sur ce site :

\begin{figure}[htb!]
\centering
\fcolorbox{black0}{graylight}{\parbox{1\textwidth}{
\paragraph{}
A concrete example in our case would be to retrieve all the URIs watched by the client with the URI "sip:cz@iptel.org". This can be done with the following XPath query: \texttt{//service[@uri="sip:cz@iptel.org"]//entry/@uri}. This would also work in the case there are multiple \texttt{list} elements associated to the URI "sip:cz@iptel.org".
}}
\caption{The XPath query language}\label{fig:XCAPquery}
\end{figure}

Tableaux

\begin{table}[htb!]
\caption{Improvements and their level of implementation}\label{table:3lvl}
\begin{center}
\begin{tabular}{|c|c|c|c|}
\hline
Improvement  \ Level & JBoss Server & Configuration & Asterisk \\
\hline
\hline
Call control & X & & X \\
\hline
External SIP proxy support & & X & X \\
\hline
H.323 support & X & X & X \\
\hline
Statistics & X & & X \\
\hline
Non-human user detection & & & X \\
\hline
\end{tabular}
\end{center}
\end{table}

Pour ajouter des éléments dans la table des matières

Par exemple, pour ajouter la bibliographie à la table des matières :

\usepackage[nottoc]{tocbibind}

Pour faire des chapitres non-numérotés mais présents dans la table des matières :

\chapter*{Acknowledgments}\label{section:ack}\addcontentsline{toc}{chapter}{Acknowledgments}

Utiliser verbatimtab

Pour afficher du texte, tel quel :

\begin{figure}[p]
\begin{verbatimtab}
<?xml version="1.0" encoding="UTF-8"?>
<rls-services>
        <service uri="sip:smith-list@iptel.org">
                <resource-list>http://localhost/xcap-root/resource-lists/users/smith/
resource-list.xml/~~/resource-lists/list[@name=\%22default\%22]
                </resource-list>
                <packages>
                        <package>presence</package>
                </packages>
        </service>
        <service uri="sip:cz@iptel.org">
                <list name="czech iptel">
                        <entry uri="sip:abc@iptel.org">
                                <display-name>A B</display-name>
                        </entry>
                        <entry uri="sip:cde@iptel.org">
                                <display-name>C D</display-name>
                        </entry>
                        <entry uri="sip:efg@iptel.org">
                                <display-name>Ef Ge</display-name>
                        </entry>
                </list>
                <packages>
                        <package>presence</package>
                        <package>email</package>
                </packages>
        </service>
</rls-services>
\end{verbatimtab}
\centering%
\caption{Example of RLS services document~\cite{presencehandbook}}
\label{fig:rlsdoc}
\end{figure}

Résumé en plusieurs langues

Parfois, vous voulez faire un résumé (abstract) en plusieurs langues, pour ce faire vous pouvez utiliser le code ci-dessous :

\usepackage[swedish,french,english]{babel}

\selectlanguage{english}
\begin{abstract}
\paragraph{}
The increased use of computer networks has lead to the adoption of Internet-based solutions for reducing telephony costs. This has proved a boon to callers who can reach the other party directly via the Internet. Unfortunately numerous business person still need to call to and from mobile phones which are currently a domain where the customers are generally tightly bound to their operators. To provide a simple solution to this problem, Opticall AB has designed an integrated system called the Dial over Data (DoD) solution, coupling a mobile interface with an Asterisk PBX and a GSM gateway, which allows calls to be originated remotely at the best price, exploiting the company’s existing network. This scheme allows the company to easily control telecommunications costs and to monitor of their employees’ efficiency.

\end{abstract}

\selectlanguage{swedish}
\begin{abstract}
Den nuvarande ökningen av datanätverk har lett till adoptionen av Internetbaserade lösningar för att
förminskar kostnader inom telefoni. Tyvärr behöver åtskilliga affärsmän fortfarande ringa till och ifrån
mobiler som återstår som ett område där kunderna är fastkedjade till deras operatörer. För att tillföra en
enkel lösning till detta problem har Opticall AB planlagt ett integrerat system som kallas den DoD
servern som kopplar ihop ett mobilt gränssnitt, med en Asterisk PABX\glossary{[PABX] Private Automatic Branch eXchange, synonym with PBX} och en GSM förmedlingsnod, som tillåter telefonsamtal påbörjas avlägset på det billigaste priset tack vare företagets nätverk. Det ger möjligheten till företaget att  vara centralt för sina personals kommunikationer. Det medger ett enkelt sätt att kontrollera kostnader samt övervaka personalens effektivitet.

\end{abstract}

\selectlanguage{french}
\begin{abstract}
L’omniprésence des réseaux informatiques aujourd’hui a pour effet de pousser de plus en plus à l’adoption de solutions en ligne pour réduire les coûts liés à la téléphonie. Malheureusement de nombreux hommes d’affaires doivent toujours appeler vers et depuis des téléphones portables, qui, pourtant, demeurent un domaine où les clients sont étroitement dépendants des opérateurs. Afin de fournir une solution à ce problème, Opticall AB a conçu un système intégré appelé le Dial over Data Server, comprenant une interface mobile à un  PABX Asterisk et une passerelle GSM, qui permet à des appels d’être lancés à distance au meilleur prix en utilisant le réseau de l’entreprise. Un tel dispositif place l’entreprise aux centres des communications de ses employés en permanence. Ceci permet un meilleur contrôle des coûts et une surveillance centralisée de l’activité des employés.

\end{abstract}

Accolades géantes

Pour mettre une belle portion de votre texte entre accolades, et pas seulement sur une ligne : notez que ce snippet comporte aussi le “cadre couleur” évoqué plus haut

\begin{figure}[htb!]
\centering
\fcolorbox{black0}{gray1}{
The administrator $\left\{\begin{tabular}{m{4.2in}}
has access to full settings through a dedicated Web interface. Timeout periods, dialplan contexts, and the number of conferences simultaneously allowed can be adjusted to suit the needs of the company. Users and operators can also be managed via this interface.\\
\\
The manager $\left\{\begin{tabular}{m{3.2in}}
has access to detailed statistics for each user as both raw values and graphs, to allow monitoring of user activity. The manager can also access aggregated values per day, week, or month for each user.\\
\\
The user $\left\{\begin{tabular}{m{2.4in}}
can place calls and manage their contacts. He or she can also access a small subset of the statistics concerning her.
                        \end{tabular}\right.$
                \end{tabular}\right.$
           \end{tabular}\right.$
}
\caption{Access level model for the DoD interface}\label{fig:modelauth}
\end{figure}

Le secret réside dans le

$\left\{\begin{tabular}{m{4.2in}} \\ xxx \\.

Mes headers

Pour la bonne bouche, voilà tous mes includes et définitions en tête de document :

\documentclass[10pt,a4paper,onecolumn, openright]{report}
\usepackage[applemac]{inputenc}
\usepackage[swedish,french,english]{babel}
\author{Max Weltz}
\title{Dial over Data solution}

\usepackage[left=1.5in, right=1in, top=1in, bottom=1in, includefoot, headheight=13.6pt]{geometry}

\usepackage{multirow}
\usepackage{listings}
\usepackage{graphics}
\usepackage{footmisc}
\usepackage{verbatim}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[left]{eurosym}
\usepackage{array}
\usepackage{xy}
\usepackage{url}
\usepackage{afterpage}
\usepackage{float}
\restylefloat{figure}
\usepackage{moreverb}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{subfigure}
\usepackage{color}
\definecolor{gray1}{gray}{0.5}
\definecolor{graylight}{gray}{0.7}
\definecolor{black0}{gray}{0}
\setlength{\fboxrule}{1pt}%
\setlength{\fboxsep}{10pt}%

\makeglossary

\usepackage[nottoc]{tocbibind}%ajouter une entrée bibliographique à la table des matières %

\usepackage{graphicx}

\newcommand{\footnoteremember}[2]{\footnote{#2}\newcounter{#1}\setcounter{#1}{\value{footnote}}}\newcommand{\footnoterecall}[1]{\footnotemark[\value{#1}]}

\newcommand{\montitre}{\Huge Dial over Data solution}

\hyphenpenalty=5000
\tolerance=1000

\usepackage{hyperref}
\pdfcompresslevel=9
\hypersetup{
colorlinks=true, %colorise les liens
breaklinks=true, %permet le retour à la ligne dans les liens trop longs
urlcolor= blue,  %couleur des hyperliens
linkcolor= blue, %couleur des liens internes
anchorcolor = blue,
citecolor = blue,
filecolor = blue,
pagecolor = blue,
pdftitle={Dial over Data solution}, %informations apparaissant dans
pdfauthor={Max Weltz}    %dans les informations du document sous Acrobat.
}

  • Share/Save/Bookmark
Category: Articles en français, Tech >> Computer | Leave a comment

Latex – How to create a glossary?

To ease the reading of your technical reports, that usually end up being crowded with abbreviations, it’s good to add a glossary to them. Here is an example of how to add a glossary to a LaTeX file. In this case, the glossary chapter is not numbered (\chapter*) but is listed in the table of contents (\addcontentsline{toc}{chapter}{Glossary}).

\makeglossary
\begin{document}

This website is done in PHP\glossary{[PHP] PHP Hypertext Preprocessor}.

%%%%%%%%%%%
%debut du glossaire%
%%%%%%%%%%%

\chapter*{Glossary}\label{glossary}\addcontentsline{toc}{chapter}{Glossary}

\begin{itemize}
\input{Glossary}
\end{itemize}
\end{document}

Next is a script you can add in TexShop (MacOSX) to generate the glossary files properly. Click on Macros>Open Macros Editor. Chose “New Item” and copy the script below. You can also associate it to a keyboard shortcut to run it easily after every compilation. To get the glossary in your pdf file, compile your LaTeX files, compile the glossary and recompile your LaTeX files.

–AppleScript direct

set fileName to #NAMEPATH#
set n to (number of characters of contents of fileName)
set fileNamequoted to quoted form of fileName
set baseName to do shell script "basename " &amp; fileNamequoted
set m to (number of characters of contents of baseName)
set dirName to quoted form of (characters 1 thru (n-m-1) of fileName as string)

set shellScript to "cd " &amp; dirName &amp; ";"
set shellScript to shellScript &amp; "./script.sh;"
do shell script shellScript

Note that the script above requires a file named “script.sh” in the folder containing your .tex files. This file uses a PERL script named “writeglossary.prl” (cf. the end of this post) to create an item list from the glossary data. The entries are then sorted in alphabetical order and deletes the duplicates. Remember to replace “Paper.glo” in the script with ‘Your file’.glo.

#!/bin/tcsh
perl writeglossary.prl Paper.glo > Glossary.tmp
#perl script.pl
perl -e ‘while(<>) {push @lines, $_;}warn "\nSorted $. lines in ascending alphabetical order, ignoring case\n\n";print sort {lc($a) cmp lc($b)}@lines’ Glossary.tmp > Glossary.tex

And here is the file “writeglossary.prl”:

# Simple perl script for converting glossary data (*.glo) files produced by
# Latex and converting them to a form suitable for including
# as a Glossary.tex file in a report.
#
# To use:   perl writeglossary.prl filename.glo > Glossary.tex
# Then, in your Latex report file, set up a "description" environment using \begin{description}
# and use \input{Glossary} to import the formatted glossary items.
# (See me310report.tex for example.)
#
# Started 2 August 2006 -mrc
# Note: Macs and Linux usually have perl installed by default. On Windows you might need
# to install it or else use Visual Basic or simply use find/replace in MS Word to
# accomplish the same string replacements as done by this perl script.

############
# Main loop: keep reading new lines until end of file.
# Next line always goes into $_ and pattern matching is done
# on $_ by default.
line: while (<>) {

# Replace any instance of "glossaryentry{" with "item " on every line.
# /g is for global matching (as many times as applies)
s/glossaryentry{/item /g;

#Then take what comes before "}" and throw away the rest.
if(/}/){
$_ = $`;
}

#Append a newline and print to the output.
print($_,"\n");

} # end while(<>)

  • Share/Save/Bookmark
Category: Articles in English, Tech >> Computer | Comments (1)

Latex – Comment faire un glossaire ?

Pour faciliter la lecture de vos rapports techniques, qui foisonnent toujours d’abréviations, il est bon de leur ajouter un glossaire. Ci-dessous, un exemple de document LaTeX avec glossaire. Notez que le chapitre de glossaire n’est pas numéroté (\chapter*) mais apparaît dans la table des matières (\addcontentsline{toc}{chapter}{Glossary}).

\makeglossary
\begin{document}

Ce site est fait en PHP\glossary{[PHP] PHP Hypertext Preprocessor}.

%%%%%%%%%%%
%debut du glossaire%
%%%%%%%%%%%

\chapter*{Glossary}\label{glossary}\addcontentsline{toc}{chapter}{Glossary}

\begin{itemize}
\input{Glossary}
\end{itemize}
\end{document}

Ci-dessous, un script que vous pouvez ajouter à TexShop (MacOSX) pour générer le glossaire proprement. Cliquez sur Macros>Open Macros Editor. Choisissez “New Item” et copiez le script ci-dessous. Associez-lui un raccourci clavier pour régénérer le glossaire rapidement. Pour obtenir le glossaire dans votre pdf, voici la marche à suivre : compilez vos fichiers .tex, compilez votre glossaire et recompilez vos .tex.

–AppleScript direct

set fileName to #NAMEPATH#
set n to (number of characters of contents of fileName)
set fileNamequoted to quoted form of fileName
set baseName to do shell script "basename " &amp; fileNamequoted
set m to (number of characters of contents of baseName)
set dirName to quoted form of (characters 1 thru (n-m-1) of fileName as string)

set shellScript to "cd " &amp; dirName &amp; ";"
set shellScript to shellScript &amp; "./script.sh;"
do shell script shellScript

Notez que le script ci-dessus nécessite la présence d’un fichier “script.sh” dans le dossier contenant vos fichiers .tex. Ce fichier utilise le script PERL “writeglossary.prl” (ci-dessous) pour générer une liste d’items LaTeX à partir des données du glossaire. Il trie ensuite les entrées dans l’ordre alphabétique et élimine les doublons. Pensez à remplacer “Paper.glo” dans le script ci-dessous par ‘Nom de votre fichier’.glo.

#!/bin/tcsh
perl writeglossary.prl Paper.glo > Glossary.tmp
#perl script.pl
perl -e ‘while(<>) {push @lines, $_;}warn "\nSorted $. lines in ascending alphabetical order, ignoring case\n\n";print sort {lc($a) cmp lc($b)}@lines’ Glossary.tmp > Glossary.tex

Et voilà le fichier “writeglossary.prl”:

# Simple perl script for converting glossary data (*.glo) files produced by
# Latex and converting them to a form suitable for including
# as a Glossary.tex file in a report.
#
# To use:   perl writeglossary.prl filename.glo > Glossary.tex
# Then, in your Latex report file, set up a "description" environment using \begin{description}
# and use \input{Glossary} to import the formatted glossary items.
# (See me310report.tex for example.)
#
# Started 2 August 2006 -mrc
# Note: Macs and Linux usually have perl installed by default. On Windows you might need
# to install it or else use Visual Basic or simply use find/replace in MS Word to
# accomplish the same string replacements as done by this perl script.

############
# Main loop: keep reading new lines until end of file.
# Next line always goes into $_ and pattern matching is done
# on $_ by default.
line: while (<>) {

# Replace any instance of "glossaryentry{" with "item " on every line.
# /g is for global matching (as many times as applies)
s/glossaryentry{/item /g;

#Then take what comes before "}" and throw away the rest.
if(/}/){
$_ = $`;
}

#Append a newline and print to the output.
print($_,"\n");

} # end while(<>)

  • Share/Save/Bookmark
Category: Articles en français, Tech >> Computer | Comments (5)

Le guide ultime pour écrire des rapports parfaits avec LaTeX

Depuis le temps que j’avais envie de le faire, voici mon article sur LaTeX. À chaque fois que je me replonge dedans, je me retrouve à surfer à droite à gauche pour savoir quelles commandes utiliser, et comme je ne suis pas le seul, je vais mettre tout ça ici, dans un bel article :

Installation

Tout d’abord, comment installer LaTeX sous MacOSX, pour Windows et Linux, voir plus bas.

J’utilise Tex Live comme distribution LaTeX, TexShop comme éditeur et BibTex comme logiciel de gestion de bibliographie. Le tout peut se télécharger très simplement depuis http://www.uoregon.edu/~koch/texshop/obtaining.html. Référez-vous à Obtaining TeXShop and TeX Live pour obtenir le tout. L’installation se fait très simplement et la configuration est automatique. Pour commencer, lancez TexShop depuis /Applications/TeX/. À noter que cette distro comprend aussi un gestionnaire de bibliographie.

Pour Windows, je me souviens que j’utilisais MikTeX comme distribution et Texmaker comme éditeur.

Pour Linux un tour dans votre gestionnaire de packages devrait faire l’affaire. Apparemment vous pouvez utiliser
href=”http://www.tug.org/tetex/” target=”_blank”>TeTeX, aussi disponible pour MacOSX comme distro et Texmaker ou Kile si vous utilisez KDE.

Header et packages

Un fichier LaTeX (extension .tex) est constitué d’un header qui correspond à des définitions, paramètres et inclusions de packages pour plus de fonctionnalités et du document à proprement parler, placé entre

\begin{document}
\end{document}

Je joins à l’article une copie du code source d’un de mes papiers et sa version pdf pour que vous puissiez voir ce que ça donne. Les explications ci-dessous sont basées sur ce papier.

Voilà à quoi ressemble un header typique de mes fichiers LaTeX, il inclut beaucoup de packages qui ne seront pas forcément utiles tout le temps, mais je vais les détailler quand même.

\documentclass[10pt,a4paper,onecolumn]{article}
\usepackage[latin1]{inputenc}
\usepackage[english]{babel}
\author{Max Weltz}
\title{Peer-to-Peer audio conferencing using SIP : P2P Architecture}

\usepackage{graphics}
\usepackage{graphicx}

\usepackage{footmisc}
\usepackage{verbatim}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\usepackage{array}
\usepackage{xy}
\usepackage{url}

\usepackage[nottoc, notlof, notlot]{tocbibind}

\newcommand{\footnoteremember}[2]
{\footnote{#2}\newcounter{#1}
\setcounter{#1}{\value{footnote}}}
\newcommand{\footnoterecall}[1]
{\footnotemark[\value{#1}]}

\topmargin 0in
\headheight 0in
\headsep 0in
\textheight 7.7in
\textwidth 6.5in
\oddsidemargin 0in
\evensidemargin 0in
\headheight 77pt
\headsep 0.25in
\hyphenpenalty=5000
\tolerance=1000

\usepackage{hyperref}
\pdfcompresslevel=9
\hypersetup{
colorlinks=true,
breaklinks=true,
urlcolor= blue,
linkcolor= blue,
anchorcolor = blue,
citecolor = blue,
filecolor = blue,
pagecolor = blue,
pdftitle={Peer-to-Peer audio conferencing using SIP : P2P Architecture},
pdfauthor={Max Weltz}
}

Houla, ça fait beaucoup mais je vais expliquer ce que cela signifie.

\documentclass[10pt,a4paper,onecolumn]{article}

10pt correspond à la taille de la police comme sous Word, pas de surprise.

Vous pouvez configurer la taille du papier utilisé en second paramètre, a4paper correspond au format habituel utilisé en France.

onecolumn signifie juste que chaque page contiendra une colonne. Pour avoir deux colonnes, remplacez onecolumn par twocolumn (sans s).

{article} correspond au type de votre document. Vous pouvez choisir parmi article, report, book, letter etc. Essayez et choisissez le plus adapté ! Pour plus d’infos, allez ici.

\usepackage[english]{babel}

Cela signifie que les informations automatiquement générées par LaTeX, telles que la date, la table des matières, seront en anglais. Choisissez french pour du français.

\author{Max Weltz}
\title{Peer-to-Peer audio conferencing using SIP : P2P Architecture}

Assez évidemment, ces deux valeurs correspondent à l’auteur et au titre du document final.

\usepackage{graphics}
\usepackage{graphicx}

Voilà comment inclure des packages. Ces deux-là concernent l’intégration d’images et de schémas à votre document. La plupart des sites mentionnent uniquement l’intégration de fichiers eps mais cela marche aussi avec des pdf et des jpg plus classiques.

\usepackage{footmisc}
\usepackage{verbatim}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}

\usepackage{array}
\usepackage{xy}
\usepackage{url}

Voilà plus de packages. url permet d’afficher joliment une url en tapant \url{http://www.baroquew.net}. array permet de gérer les tableaux. xy permet de gérer les dimensions d’un document et les autres sont là pour faciliter la saisie dans l’environnement mathématique entre autres.

\usepackage[nottoc, notlof, notlot]{tocbibind}

Voilà de quoi ajouter la liste des références à la table des matières (table of contents, toc). Avec les arguments nottoc, notlof et notlot, la table des matières ne contiendra pas de référence à la table des matières, la liste des figures (list of figures, lof) ni à la liste des tables (lot).

\newcommand{\footnoteremember}[2]
{\footnote{#2}\newcounter{#1}
\setcounter{#1}{\value{footnote}}}
\newcommand{\footnoterecall}[1]
{\footnotemark[\value{#1}]}

Et oui, taper du LaTeX, c’est un peu comme coder, on peut même faire ses propres fonctions. Celle-ci (copier-collez tout sur la même ligne pour que ça marche sans accroc) sert à faire de multiples références à la même note de bas de page. Cf plus bas pour son utilisation.

\topmargin 0in
\headheight 0in
\headsep 0in
\textheight 7.7in
\textwidth 6.5in
\oddsidemargin 0in
\evensidemargin 0in
\headheight 77pt
\headsep 0.25in
\hyphenpenalty=5000
\tolerance=1000

À l’exception des deux dernières lignes qui servent à l’accentuation des caractères, tout ce bloc sert à gérer les marges et la taille du texte. Là encore, changez les valeurs à votre convenance.

\usepackage{hyperref}
\pdfcompresslevel=9
\hypersetup{
colorlinks=true,
breaklinks=true,
urlcolor= blue,
linkcolor= blue,
anchorcolor = blue,
citecolor = blue,
filecolor = blue,
pagecolor = blue,
pdftitle={Peer-to-Peer audio conferencing using SIP : P2P Architecture},
pdfauthor={Max Weltz}
}

hyperref, voilà le package qui va donner du cachet à votre document. Avec ce package vous allez pouvoir mettre des liens dans votre pdf (compatibles Acrobat Reader et Aperçu (MacOSX)) sur vos notes, références et table des matières. Enfin vous pouvez inclure des méta commentaires pour Acrobat Reader (titre et auteur).

Comme ça fait beaucoup, je vous propose de télécharger les Sources en LaTeX du document pour vous y retrouver.

Corps du document

C’est bien beau tout ça, mais maintenant qu’on a tout ce bloc de texte en haut de notre fenêtre, il va bien falloir commencer par écrire quelque chose !

\begin{document}

\title{Peer-to-Peer audio conferencing using SIP: \linebreak P2P Architecture}

\begin{titlepage}

\maketitle
\thispagestyle{empty}

\begin{abstract}
This report is part of a collection of three reports
\end{abstract}

\end{titlepage}

\clearpage

\tableofcontents

%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}\label{section:intro}
%%%%%%%%%%%%%%%%%%%%%%

\paragraph{}
Peer-to-Peer (P2P) is one of the current trends on the Internet with up to 90\%~\cite{Sandvine:P2P} of the traffic share. In section \ref{section:p2p} we will see what attempts were made to adapt the SIP protocol to be fully functional in a P2P audio conferencing context and what is left to be done in that area.

%%%%%%%%%%%%%%%%%%%%%%
\section{Peer-to-Peer Architecture}\label{section:p2p}
%%%%%%%%%%%%%%%%%%%%%%

\subsection{Introduction}

\paragraph{}
This whole part is devoted to the integration of P2P in SIP solutions.

LaTeX va vous permettre d’avoir un document d’aspect professionnel assez facilement une fois que vous aurez le coup de main. Le peu de temps qu’on perd à trouver comment faire la mise en page se regagne dès lors qu’on commence à éditer le texte, déplacer des sections etc. En effet on ne perdra ni les références, ni les renvois, ni même le style du texte.

\begin{document}

\title{Peer-to-Peer audio conferencing using SIP: \linebreak P2P Architecture}

Voilà le début de votre document, enfin ! \linebreak force un retour à la ligne comme on s’en doute. On remet \title ici car la déclaration avant le \begin ne compte pas vraiment dans l’esprit de LaTeX dans le cas du titre. Étrangement l’auteur lui est bien pris en compte…

\begin{titlepage}

\maketitle
\thispagestyle{empty}

\begin{abstract}
This report is part of a collection of three reports
\end{abstract}

\end{titlepage}

Encore un \begin, mais pour la page de garde cette fois-ci. Le \maketitle affiche le titre, le style empty signifie qu’il n’y aura pas de header/footer sur la page et qu’elle ne sera pas numérotée ni comptabilisée dans la numérotation. L’abstract est le petit résumé de votre papier, vous devriez déjà être familier du fait si vous avez lus des publications avant d’écrire votre propre article.

Et on n’oubliera pas de fermer tout ce qu’on ouvre avec \end.

\clearpage

\tableofcontents

%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}\label{section:intro}
%%%%%%%%%%%%%%%%%%%%%%

\paragraph{}
Peer-to-Peer (P2P) is one of the current trends on the Internet with up to 90\%~\cite{Sandvine:P2P} of the traffic share. In section \ref{section:p2p} we will see what attempts were made to adapt the SIP protocol to be fully functional in a P2P audio conferencing context and what is left to be done in that area.

Plusieurs choses ici : d’abord \clearpage sert à clôre la page en cours et à commencer une nouvelle page.

\tableofcontents génére automatiquement la table des matières, avec des liens hypertextes vers les sections grâce au package hyperref invoqué plus haut. La table des matières indique les sections, sous-sections et sous-sous-sections (cf plus loin). En outre on a ajouté une entrée pour les références (cf le header).

Ensuite on attaque le vif du sujet. D’abord une \section nommé introduction. Le style utilisé pour mettre en relief le titre du chapitre dépend du style (ici article) sélectionné dans le header.

Notez avec \label qu’on peut faire un lien vers cette section depuis notre texte avec \ref{section:intro}. Ce renvoi s’affichera comme le numéro du chapitre et un clic dessus vous renverra à l’emplacement du label. Notez que ce \label n’est pas lié à la table des matières. Vous n’êtes pas non plus obligés de préfixer le nom par “section”, c’est juste plus clair. Enfin, vous pouvez insérer un \label en plein milieu d’un paragraphe si vous en avez envie.

Pour créer un paragraphe, et oui, on utilise \paragraph{}. Notez les accolades vides. Si vous voulez nommer votre paragraphe, mettez quelque chose entre les accolades.

Quelques bizarreries : comme % est le symbole des commentaires dans LaTeX (ie tout ce qui est après un % jusqu’à la fin de la ligne ne sera pas traité par le processeur LaTeX), il faut l’échapper par un \ pour afficher un pourcent. Je résume : “90\%” affichera “90%”.

Le ~ lui sert à générer un espace insécable dans LaTeX, parfois utile.

Enfin voilà un élément clé de LaTeX, la citation. Vous aurez souvent besoin de citer vos sources, et cela se fait avec \cite{source}. Le terme “source” est à remplacer par la cite-key que vous avez choisie pour la source en question dans votre bibliographie (cf plus bas). Le résultat à l’affichage sera souvent quelquechose du genre [Vio07], correspondant au début du nom de l’auteur et l’année du papier.

\subsection{Existing works on P2P/SIP solutions}

\subsubsection{Objectives}

\paragraph{}
From the works of Bryan, Lowekamp and Jennings in~\cite{bryanAAA} and Kundan Singh and Henning Schulzrinne in~\cite{cucs044}, we came with a precise list of objectives to meet for a good P2P/SIP solution:\footnote{We do not list here previously acknowledged advantages of P2P systems.}

\begin{enumerate}
\item \textbf{Simple lookup:} one issue with P2P systems is the problem of bootstrapping, or more clearly, how to join a P2P network without any a priori knowledge about its members, and namely, their addresses?
\item \textbf{Privacy:} often true when in the communication world, users might want their privacy, maybe by connecting only to a subnetwork only made up of trusted users.
\end{enumerate}

\subsubsection{Characteristics of a P2P/SIP solution}

\paragraph{Compatible characteristics}
\subparagraph{}
SIP in itself is not causing many problems for integrating it into a P2P solution. Namely, intermediate servers are optional and the SIP protocol allows user agents (UA) to communicate with each other with no other party involved. This means that the messages inherent at a P2P protocol can be transported in SIP messages (cf. \ref{DHT:join}).

Ici vous voyez qu’on peut descendre jusqu’aux sous-sections et aux sous-paragraphes, chacun pouvant être nommé ou non, selon votre bon vouloir.

Deux trois choses en passant : \footnote génére une note de page à la manière de Word, la numérotation étant générée toute seule (cf plus bas pour un cas particulier). De plus un clic sur le numéro de la note la renvoi directement à l’affichage.

\begin{enumerate} permet de commencer une liste numérotée, chaque élément étant appelé par un \item.

Enfin, \textbf permet de mettre le texte entre accolades en gras (bold face).

\begin{itemize}
\item \textbf{alg:}\footnoteremember{fieldSIP}{Used inside a To, From or Contact header} to convey information on the hash algorithm used by the DHT
\item \textbf{user:}\footnoterecall{fieldSIP} to specify if the message is relative to a user-to-user SIP exchange or to a P2P message over SIP
\end{itemize}

Ci-dessus, un exemple de création de liste non numérotée (itemize), toujours en utilisant des \item.

Vous vous souvenez sans doute de la fonction mystérieuse dans le header, et bien on l’utilise ici. Elle sert à faire des références multiples (deux en tout) à une même note de bas de page. On la créée avec un \footnoterember{nom de la note}{corps de la note} et on la rappelle avec un \footnoterecall{nom de la note}. À noter que la seconde note ne bénéficiera pas du lien automatique permettant de l’afficher.

\subsubsection{Performances}\label{perf}

\paragraph{}
Singh and Schulzrinne in \cite{p63singh} provide "performance predictions" using the Chord DHT system based on the work of Stoica et al.\ in~\cite{chord:stats} and claims the following:

\begin{itemize}
\item with weak assumptions on the network and the nodes and strong assumptions on the use of the network\footnote{10 requests per second per node, one call per minute per node}, the maximum number of nodes on the network is of $2^{300}$,
\item considering a network of 10,000 nodes using chord, six hops is the mean lookup path length, taking approximately 200\,ms.
\end{itemize}

Ici, d’autres exemples de \label et de \cite.

À noter le .\ qui signifie qu’on tape un point qui ne clôt pas une phrase (il ne sera donc pas traité de la même manière par le processeur LaTeX).

Le \, correspond à un demi espace insécable, obligatoire (pour les puristes de la typographie) entre une valeur et son unité.

Enfin, vous noterez le recours au mode mathématique (appelé par le $) au milieu d’un paragraphe pour obtenir un exposant, ici 2 à la puissance 300. Là encore on ferme le tout par un $.

\begin{enumerate}

\item \emph{Node registration:}\footnote{We will only discuss the registration of the node on the P2P network here.} suppose Alice wants to join the network. She will send:

\hspace{1in}\texttt{REGISTER sip:123.234.1.1:5060 SIP/2.0}

\hspace{1in}\texttt{To: alice@atlanta.com}

\hspace{1in}\texttt{From: alice@atlanta.com}

\noindent where \texttt{sip:123.234.1.1:5060} is the address.

\indent
More…

\end{enumerate}

Notez que les espaces et les sauts de ligne ne dérangent pas LaTeX et ne sont pas pris en compte, un nouveau paragraphe commence forcément par un \paragraph{}.

Si vous voulez forcer (ou empêcher) l’indentation d’un morceau de texte, \indent (ou \noindent pour ne pas l’indenter) est votre ami. Utilisez-les sans accolades.

\hspace force un espacement horizontal plus grand qu’une indentation, en argument, précisez en inches la valeur de cet espacement.

\texttt met le texte qui suit en police de type terminal/machine à écrire.

Enfin \emph met le texte en argument en italique. D’ailleurs rien ne vous empêche de mettre en italique un texte dans une note de bas de page, par exemple.

\begin{figure}[htb!]
\centering%
\scalebox{0.6}{\includegraphics{P2POverlay}}
\caption{Difference between physical and overlay networks}
\label{fig:P2POverlay}
\end{figure}

Et voilà le clou du spectacle, comment insérer une figure dans LaTeX, à partir du format JPG ou PDF. Pour le format EPS, regardez sur le net, beaucoup de sites en parlent mais ce format est bien moins courant, il faut bien l’avouer.

\caption indique le titre de la figure.

\label créée une référence à la figure (pas obligatoire).

\centering% centrera la figure horizontalement.

\scalebox peut être utilisé dans d’autres contextes mais avec le même usage : \scalebox{0.9}{quelque chose} réduira ce “quelque chose” à 90% de sa taille, pas besoin de se soucier de la taille de votre figure lors de sa création donc.

Enfin \includegraphics cherchera une figure du nom de P2POverlay dans le dossier où se trouve le .tex. Il parcourera toutes les extensions possibles et s’arrêtera au premier fichier correspondant trouvé.

Bibliographie

Deux solutions s’offrent à vous pour la bibliographie : BibTeX avec une bibliographie séparée ou bien une bibliographie intégrée au .tex.

Pour la bibliographie intégrée, rien de plus simple :

%%%%%%%%%%%%%%
%debut de la bibliographie%
%%%%%%%%%%%%%%

\clearpage

\begin{thebibliography}{breitestes Label}
\bibliographystyle{plain}
\label{biblio}
\bibitem{Cao:04}
Guohong Cao,
\newblock “Power-Aware Cache Management in Mobile Environments”, Department of Computer Science \&amp; Engineering The Pennsylvania State University, 2004.

\bibitem{Har:01}
Takahiro Hara,
\newblock “Effective Replica Allocation in Ad Hoc Networks for Improving Data Accessibility”, Osaka University, 2001.

\end{thebibliography}

\clearpage

Insérez le code ci-dessus à la fin de votre article, avant le \end{document}. Vous pouvez changer de style en remplaçant breitestes Label et plain, ainsi qu’en modifiant le corps du texte de la bibliographie.

L’attribut de \bibitem correspond à la clé de citation de l’article, du livre etc. Cela correspond aussi à ce qui sera affiché dans le corps du texte lorsque vous citerez cette source, donc choisissez bien !

Pour la bibliographie avec BibTeX, utilisez un gestionnaire pour éviter de tout gérer à la main, sous MacOSX j’utilise BibDesk qui est livré avec la distro mentionnée au début. Sous Windows ou Linux une rapide recherche avec Google donne JabRef, jetez-y un coup d’œil ou bien proposez-moi s’il y a mieux.

Remplissez votre bibliographie depuis le manager et sauvegardez-la. Remplissez bien les champs “cite-key” pour pouvoir la réutiliser dans votre document LaTeX. Ensuite insérez :

%%%%%%%%%%%%%%
%debut de la bibliographie%
%%%%%%%%%%%%%%\bibliographystyle{alpha}
\bibliography{/Users/Votrenom/Documents/MyBib}

juste avant le \end{document}. Modifiez évidemment le chemin pour refléter votre configuration. Le processeur LaTeX cherchera alors le fichier MyBib.bib. Pour avoir un résultat joli sans [?], faites la manipulation suivante : compilez votre document LaTeX deux fois (deux fois Pomme+Maj+L avec Texshop) pour chercher les références puis la bibliographie (Pomme+Maj+B) et le document LaTeX encore une fois pour finir. Et voilà ! À noter que dans ce cas vous pouvez paramétrer depuis BibDesk comment vont s’afficher les citations dans le texte (nom de l’auteur, initiales etc.).

Conclusion

Voilà, j’espère avoir été précis et clair sur comment créer un document LaTeX. J’ai essayé de lister pour vous tous les problèmes qu’on rencontre fréquemment lorsqu’on tape du LaTeX. Je joins les Sources en LaTeX du document à l’article, ça peut servir . Cet article n’a pas vocation à être exhaustif, juste à éviter de sortir Google toutes les cinq minutes lors de votre rédaction. Bon courage à tous !

Liens utiles

Si jamais des questions restent encore sans réponse, voici une liste de liens utiles :

  • http://web.mit.edu/rsi/www/2000/help/faq/latex/ (essayez aussi les années suivantes), petite FAQ sur les problèmes courants dans LaTeX. Comment faire certains signes spéciaux, des références, etc.
  • http://www.artofproblemsolving.com/LaTeX/AoPS_L_GuideLay.php, un autre site utile donnant des explications sur la mise en page, les styles etc. Si jamais le lien est mort, il y a une copie de ces pages en pdf sur mon site (LaTeX layout).
  • pour finir, un site listant les erreurs communes dans les rapports techniques (en anglais), très utile pour les perfectionnistes : http://www.ece.ucdavis.edu/~jowens/commonerrors.html. Là encore, si jamais le lien ne répond pas, je joins une copie en pdf de la page à l’article (Common errors in technical writings). Un point qui n’est pas répertorié sur cette page mais qui l’est ici, il faut mettre une virgule avant tous and ou or sauf si ils ne joignent que deux groupes nominaux. Si ils joignent deux propositions ou plus de deux GN, la virgule s’impose : salt and pepper mais salt, pepper, and garlic…

P.S. : Pas vraiment en rapport avec LaTeX mais voilà un site qui peut être utile pour étoffer votre rapport : ITfacts. Ce site fournit des informations chiffrées et détaillées sur de nombreux points relatifs aux nouvelles technologies (téléphonie mobile, Internet etc.)

Sources en LaTeX

  • Share/Save/Bookmark
Category: Articles en français, Tech >> Computer | Comments (3)

Status

  • BaroqueW ecoute desproges dans les fjords
    1 day ago
  • BaroqueW : it is in fact NOT funny to point people in the wrong direction when they're lost
    2 days ago
  • BaroqueW : iphone 3gs, July 31st in Sweden - according to Telia
    3 days ago
  • BaroqueW had a quick look at the book keeping of the holidays... gloups
    4 days ago

Popular posts

My Social Networks

DandyID 43 Things Clipmarks coComment Dailymotion Delicious deviantART Digg Diigo Facebook Flickr Get Satisfaction Guitar Hero HelloTxt Hulu ICQ Imdb Imeem Kiva last.fm Linkedin Netvibes orkut PeoplePond Picasa Plaxo PostCrossing RockBand Scribd Stumbleupon Tagged TripAdvisor Twitpic Twitter Xbox LIVE YouTube

Expand the experience

Blogroll

Internet Map

Meta