[eso-pic] Liseret coté droit

Tout ce qui concerne l'utilisation ou l'installation de LaTeX.

Modérateur: gdm_tex

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

[eso-pic] Liseret coté droit

Messagepar kutne10 » Mercredi 28 Juillet 2010, 11:15

Bonjour,

j'utilise actuellement un liseret type avec eso-pic :

Code: Tout sélectionner
\AddToShipoutPicture{%
  \AtPageLowerLeft{%
    \rotatebox{90}{\colorbox{orange}{%blue!20}{%
      \begin{minipage}{\paperheight}\sffamily
      \hspace*{\stretch{1}}\textcolor{white}{Second Year Internship}\hspace*{\stretch{1}}
      \end{minipage}%
    }}%
  }%
}


Qui se trouve à gauche de mes pages.
Question, comment le mettre à droite :mrgreen: ?

Merci beaucoup,
Q.
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Publicité

Re: Liseret coté droit eso-pic

Messagepar pg » Mercredi 28 Juillet 2010, 11:42

Il n'y a pas de commandes \AtPageLowerRight par défaut, mais on peut en créer une :

Code: Tout sélectionner
\documentclass[a4paper]{article}

\usepackage{graphicx}
\usepackage{eso-pic}
\usepackage{xcolor}

\usepackage{lipsum}

\makeatletter
\newcommand\At@Page@Upper@Right[1]{%
  \put(\LenToUnit{\paperwidth},\LenToUnit{\paperheight}){#1}%
}
\newcommand\AtPageLowerRight[1]{\At@Page@Upper@Right{%
  \put(0,\LenToUnit{-\paperheight}){\llap{#1}}}}
\makeatother

\AddToShipoutPicture{%
  \AtPageLowerRight{%
    \rotatebox{90}{\colorbox{orange}{%blue!20}{%
      \begin{minipage}{\paperheight}\sffamily
      \hspace*{\stretch{1}}\textcolor{white}{Second Year Internship}\hspace*{\stretch{1}}
      \end{minipage}%
    }}%
  }%
}

\begin{document}

\lipsum[1-20]

\end{document}
pg
Modérateur
 
Messages: 2593
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Liseret coté droit eso-pic

Messagepar kutne10 » Mercredi 28 Juillet 2010, 12:06

Merci beaucoup ;)
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar Altermundus » Jeudi 29 Juillet 2010, 07:28

Bonjour

Je viens d'essayer le code avec pdflatex (je n'utilise que lui), rien! pas de liseret

J'ai ajouté a4paper puis geometry rien n'y fait

J'ai essayé aussi avec TL2009 avec TL2010 et toujours rien
Donc là j'ai un problème ...
J'ai oublié de dire que j'ai bien celui à gauche mais c'est ce que j'utilise pratiquement tous les jours pour mes docs.

Alain
Dernière édition par Altermundus le Jeudi 29 Juillet 2010, 07:31, édité 1 fois.
Altermundus
Giga-utilisateur
 
Messages: 557
Inscription: Lundi 28 Mai 2007, 09:31
Localisation: Paris
Statut actuel: Actif et salarié | Enseignant

Re: [eso-pic] Liseret coté droit

Messagepar pg » Jeudi 29 Juillet 2010, 08:29

Effectivement, avec la dernière version de eso-pic, il mettre un moins devant \ESO@yoffsetI (ou le remplacer par \paperheight, ce qui marchera avec toutes les versions). J'ai corrigé mon précédent message.
pg
Modérateur
 
Messages: 2593
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Jeudi 29 Juillet 2010, 08:46

Merci pour ces précisions.

Puis je encore abuser... y a t'il un moyen pour lui dire de mettre le liseret une fois a gauche une fois a droite ( dans le but de l'impression d'un rapport + reluire, et de toujours voir le liseret...) ?
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar pg » Jeudi 29 Juillet 2010, 09:11

Il suffit de tester si la page est paire ou impaire :

Code: Tout sélectionner
\documentclass[a4paper]{article}

\usepackage{graphicx}
\usepackage{eso-pic}
\usepackage{xcolor}
\usepackage{ifthen}

\usepackage{lipsum}

\makeatletter
\newcommand\At@Page@Upper@Right[1]{%
  \put(\LenToUnit{\paperwidth},\LenToUnit{\paperheight}){#1}%
}
\newcommand\AtPageLowerRight[1]{\At@Page@Upper@Right{%
  \put(0,\LenToUnit{-\paperheight}){\llap{#1}}}}
\makeatother

\AddToShipoutPicture{%
  \ifthenelse{\isodd{\value{page}}}{
    \AtPageLowerRight{%
      \rotatebox{90}{\colorbox{orange}{%blue!20}{%
        \begin{minipage}{\paperheight}\sffamily
        \hspace*{\stretch{1}}\textcolor{white}{Second Year Internship}\hspace*{\stretch{1}}
        \end{minipage}%
      }}%
    }%
  }
  {
    \AtPageLowerLeft{%
      \rotatebox{90}{\colorbox{orange}{%blue!20}{%
        \begin{minipage}{\paperheight}\sffamily
        \hspace*{\stretch{1}}\textcolor{white}{Second Year Internship}\hspace*{\stretch{1}}
        \end{minipage}%
      }}%
    }%
  }
}

\begin{document}

\lipsum[1-20]

\end{document}
pg
Modérateur
 
Messages: 2593
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Jeudi 29 Juillet 2010, 09:19

Merci beaucoup pour cette efficacité :D
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar zorba » Vendredi 30 Juillet 2010, 15:48

Bonjour,
je suis intéressé par cette solution que je voudrais mettre sous forme d'un petit package du genre :

Code: Tout sélectionner
\usepackage[couleur]{lisere}{texte libre}


La couleur (white) ne produira pas de liseré, genre option par défaut pour éviter de ralentir le traitement pendant la mise au point, et les autres couleurs étant au choix pour les documents définitifs.
Je ne sais pas trop comment m'y prendre pour transformer la dernière solution donnée par PG.
Aussi toute aide sera appréciée.
Merci d'avance et bonnes vacances à tous les fidèles du forum.
Pierre
On se lasse de tout, excepté d'apprendre. Virgile
zorba
Giga-utilisateur
 
Messages: 522
Inscription: Lundi 01 Juin 2009, 10:35
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Vendredi 30 Juillet 2010, 15:50

Effectivement, si il y avait un moyen d'optimiser tout ca sous un /sty, ce qui doit être possible je pense ...
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar pg » Vendredi 06 Août 2010, 17:10

J'ai fait un petit package liseret.sty qui permet après \usepackage{liseret} d'utiliser

Code: Tout sélectionner
\liseret{Second Year Internship}

pour obtenir le liseret précédent. La couleur, l'alignement, la position sur les pages, la police, etc. sont personnalisables, voir le fichier de documentation (un peu sommaire) liseret.pdf joint. Il y a aussi un fichier avec un exemple de liseret avec du texte en haut et en bas (fichier liseret_test).

liseret.zip
(185.71 Kio) Téléchargé 198 fois


Pour l'installation, mettre le fichier liseret.sty dans le même répertoire que le fichier tex ou (mieux) le mettre dans le texmf local.
pg
Modérateur
 
Messages: 2593
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [eso-pic] Liseret coté droit

Messagepar zorba » Vendredi 06 Août 2010, 19:47

Bonsoir,
j'étais confiant dans le retour d'une solution PG. Cette dernière me convient bien, je commence quelques essais et reviendrai vers vous si j'ai des difficultés ou ... d'autres idées.
En attendant, un grand merci et bonne vacances.
Pierre
On se lasse de tout, excepté d'apprendre. Virgile
zorba
Giga-utilisateur
 
Messages: 522
Inscription: Lundi 01 Juin 2009, 10:35
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Lundi 09 Août 2010, 08:28

Merci beaucoup !!! :D
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Jeudi 26 Août 2010, 10:31

Pour aller plus loin...

Bonjour !
Encore merci pour ce package bien utile tous les jours pour moi !

Petite question *bonus* : est il possible, au lieu d'avoir une unique couleur, de définir nu dégradé de haut en bas. J'ai regardé, cela implique tikz pour faire simple, et je ne vois pas comment changer le code pour faire ce dégradé.

Dans un premier temps en gardant un seul argument couleur, et en définissant dans le code de liseret.sty la couleur du bas qui ne change pas, puis celle du haut celle que l'on a choisit. Une autre étape serait de monter le nombre d'arguments à deux.

Mon problème réside dans l'intégration de tikz, faut il utiliser des shade ?

merci encore pour votre travail !
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar pg » Vendredi 03 Septembre 2010, 15:59

Pour faire un dégradé, on peut remplacer \colorbox par une commande \gradientbox qui prend trois arguments : la couleur du bas, celle du haut et le texte. Par exemple :

Code: Tout sélectionner
\documentclass{article}

\usepackage{graphicx}
\usepackage{eso-pic}
\usepackage{xcolor}

\usepackage{tikz}

\usepackage{lipsum}

\newcommand{\gradientbox}[3]{%
  \begin{tikzpicture}
    \node[left color=#1,right color=#2] {#3};
  \end{tikzpicture}%
}

\AddToShipoutPicture{%
  \AtPageLowerLeft{%
    \rotatebox{90}{\gradientbox{blue!20}{yellow}{%
      \begin{minipage}{\paperheight}\sffamily
      \hspace*{\stretch{1}}\textcopyright~2009 Bla bla Corporation. Toute reproduction est strictement interdite.\hspace*{\stretch{1}}
      \end{minipage}%
    }}%
  }%
}

\begin{document}

\lipsum[1-20]

\end{document}

Ensuite, si cela convient, il suffit d'intégrer la nouvelle commande dans le fichier .sty et de prévoir l'interface. Il y a au moins deux possibilités : une nouvelle commande \liseretavecdegrade ou alors des clefs bottomcolor et topcolor qui, si elles sont différentes, produisent un dégradé.
pg
Modérateur
 
Messages: 2593
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Vendredi 03 Septembre 2010, 21:10

C'est génial ! bravo et merci beaucoup !

J'ai changé le fichier liseret2.sty que je met, pourriez svp également regarder au niveau des pages ou le liseret est a droite, j'ai un décalage, le liseret ne vas pas jusqu'au bord... contrairement aux pages ou il est à gauche
voir l'exemple également ! le nouveau package s'appelle liseret2.sty

Ah ! je ne peux pas joindre dans fichier en attendant la modération du bon groupe, je colle donc ici le fichier liseret2.sty :

Code: Tout sélectionner
\ProvidesPackage{liseret}[2010/08/06 version 1]

\RequirePackage{xkeyval}
\RequirePackage{eso-pic}
\RequirePackage{graphicx}
\RequirePackage{eso-pic}
\RequirePackage{xcolor}
\RequirePackage{ifthen}
\RequirePackage{calc}

\newcommand\liseret@At@Page@Upper@Right[1]{%
  \put(\LenToUnit{\paperwidth},\LenToUnit{\paperheight}){#1}%
}
\newcommand\liseret@AtPageLowerRight[1]{\liseret@At@Page@Upper@Right{%
  \put(0,\LenToUnit{-\paperheight}){\llap{#1}}}}

\AddToShipoutPicture{%
  \ifthenelse{\isodd{\value{page}}}{%
    \AtPageLowerLeft{%
       \liseret@odd@left
    }%
    \liseret@AtPageLowerRight{%
       \liseret@odd@right
    }%
  }%
  {%
    \AtPageLowerLeft{%
       \liseret@even@left
    }%
    \liseret@AtPageLowerRight{%
       \liseret@even@right
    }%
  }%
}

\newif\ifliseret@left@
\newif\ifliseret@right@
\newif\ifliseret@external@
\newif\ifliseret@internal@
\liseret@left@false
\liseret@right@false
\liseret@external@false
\liseret@internal@false

\define@choicekey*{liseret}{position}[\val\liseret@position@nr]{left,right,external,internal}{%
  \ifcase\liseret@position@nr\relax
    \liseret@left@true\liseret@right@false
    \liseret@external@false\liseret@internal@false
  \or
    \liseret@left@false\liseret@right@true
    \liseret@external@false\liseret@internal@false
  \or
    \liseret@left@false\liseret@right@false
    \liseret@external@true\liseret@internal@false
  \or
    \liseret@left@false\liseret@right@false
    \liseret@external@false\liseret@internal@true
  \fi
}

\define@choicekey*{liseret}{align}[\val\liseret@align@nr]{bottom,top,center}{%
  \ifcase\liseret@align@nr\relax
    \def\liseret@align{\raggedright}
  \or
    \def\liseret@align{\raggedleft}
  \or
    \def\liseret@align{\centering}
  \fi
}

\define@key{liseret}{bottomcolor}{\def\liseret@bottomcolor{#1}}
\define@key{liseret}{topcolor}{\def\liseret@topcolor{#1}}
%\define@key{liseret}{colorB}{\def\liseret@colorB{#1}}
\define@key{liseret}{textcolor}{\def\liseret@textcolor{#1}}
\define@key{liseret}{font}{\def\liseret@font{#1}}
\define@key{liseret}{sep}{\def\liseret@sep{#1}}

\newcommand{\liseret}[2][]{%
  \setkeys{liseret}{position=external,
                    align=center,
                    bottomcolor=orange,
  %  colorB=blue,
                    textcolor=white,
                    font=\sffamily,
                    sep=0pt
                   }%
  \setkeys{liseret}{#1}%
  \ifliseret@left@
    \def\liseret@odd@left{\make@liseret{#2}}
    \def\liseret@even@left{\make@liseret{#2}}
    \def\liseret@odd@right{}
    \def\liseret@even@right{}
  \fi
  \ifliseret@right@
    \def\liseret@odd@left{}
    \def\liseret@even@left{}
    \def\liseret@odd@right{\make@liseret{#2}}
    \def\liseret@even@right{\make@liseret{#2}}
  \fi
  \ifliseret@external@
    \def\liseret@odd@left{}
    \def\liseret@even@left{\make@liseret{#2}}
    \def\liseret@odd@right{\make@liseret{#2}}
    \def\liseret@even@right{}
  \fi
  \ifliseret@internal@
    \def\liseret@odd@left{\make@liseret{#2}}
    \def\liseret@even@left{}
    \def\liseret@odd@right{}
    \def\liseret@even@right{\make@liseret{#2}}
  \fi
}

\newcommand{\gradientbox}[1]{%
  \begin{tikzpicture}
    \node[left color=\liseret@bottomcolor,right color=\liseret@topcolor] {#1};
  \end{tikzpicture}%
}

\newcommand{\make@liseret}[1]{%
  \rotatebox{90}{\gradientbox{%
  \begin{minipage}{\paperheight-2\fboxsep}%
    \liseret@align\liseret@font
    \vspace{\liseret@sep}%
      \textcolor{\liseret@textcolor}{#1}%
    \vspace{\liseret@sep}%
    \end{minipage}%
  }}
}
\endinput


Et mon ECM :

Code: Tout sélectionner
\documentclass{article}

\usepackage{graphicx,liseret2}
\usepackage{eso-pic}
\usepackage{xcolor}

\usepackage{tikz}

\usepackage{lipsum}


\begin{document}
\liseret[position=external,topcolor=red,bottomcolor=yellow]{Test Liseret Dégradé avec Package}
\lipsum[1-20]

\end{document}
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié

Re: [eso-pic] Liseret coté droit

Messagepar pg » Samedi 04 Septembre 2010, 18:35

Le décalage est dû à un % qui manque dans \make@liseret.

J'ai mis à jour indépendamment de mon côté le package dont voici la nouvelle version. Elle permet donc de faire

Code: Tout sélectionner
\liseret[topcolor=yellow,bottomcolor=green!20]{...}

et on peut toujours utiliser "color=x" qui est équivalent à "topcolor=x" et "bottomcolor=x". Il faut charger manuellement le package tikz si on veut un dégradé car cela permet à ceux qui ne veulent qu'un liseret simple de ne pas avoir à charger tikz.

liseret.zip
(188.26 Kio) Téléchargé 195 fois
pg
Modérateur
 
Messages: 2593
Inscription: Jeudi 14 Juin 2007, 23:31

Re: [eso-pic] Liseret coté droit

Messagepar kutne10 » Samedi 04 Septembre 2010, 18:47

Que dire, merci beaucoup encore une fois ! :lol:
kutne10
Hecto-utilisateur
 
Messages: 50
Inscription: Lundi 12 Juillet 2010, 19:24
Statut actuel: Actif et salarié


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Ahrefs [Bot], Yandex [Bot] et 3 invités