[Résolu] Barrer avec différents styles

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.

[Résolu] Barrer avec différents styles

Messagepar projetmbc » Mercredi 23 Juin 2010, 12:46

Bonjour,
je souhaiterais pouvoir barrer du texte ou une formule avec les possibilités suivantes :

  • Choix de la couleur du trait, le rouge serait la couleur par défaut.
  • Le trait devrait pouvoir être soit horizontal, soit oblique droit, soit oblique gauche.
  • Enfin il serait bien s'il on pouvait avoir un trait plein ou en pointillé

Une méthode en LaTeX pur ou en TiKz me conviendrait sans souci.
Toute info. est la bienvenue.
Dernière édition par projetmbc le Mardi 29 Juin 2010, 21:21, édité 1 fois.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Publicité

Re: Barrer avec différents styles

Messagepar leo892 » Mercredi 23 Juin 2010, 13:42

Salut,
Regarde les packages cancel et ulem.
leo892
Kilo-utilisateur
 
Messages: 183
Inscription: Samedi 31 Mars 2007, 13:05
Localisation: Sydney
Statut actuel: Post-bac | Ecole d'ingénieur

Re: Barrer avec différents styles

Messagepar projetmbc » Mercredi 23 Juin 2010, 14:06

Merci pour cancel mais une solution à la TiKz devrait avoir un meilleur rendu que le code suivant :

Code: Tout sélectionner
\documentclass[10pt,a4paper]{book}
\usepackage[latin1]{inputenc}
\usepackage{cancel}
\begin{document}
texte \bcancel{texte} \xcancel{texte}

texteTexteTexteTexteTexteTexteTexte \bcancel{texteTexteTexteTexteTexteTexteTexte} \xcancel{texteTexteTexteTexteTexteTexteTexte}
\end{document}

Dans la 2ème ligne, les croix sont trop hautes.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Barrer avec différents styles

Messagepar projetmbc » Jeudi 24 Juin 2010, 09:51

La suite ici.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Barrer avec différents styles

Messagepar pg » Jeudi 24 Juin 2010, 19:05

projetmbc a écrit:Merci pour cancel mais une solution à la TiKz devrait avoir un meilleur rendu

Voir la page 97 du manuel de tikz pour le principe :

Code: Tout sélectionner
\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.misc}

\newcommand{\bcancel}[1]{%
  \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
  \node[strike out,draw] (textbox) {\strut#1};
  \useasboundingbox (textbox);
  \end{tikzpicture}%
}
\newcommand{\xcancel}[1]{%
  \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
  \node[cross out,draw] (textbox) {\strut#1};
  \useasboundingbox (textbox);
  \end{tikzpicture}%
}

\begin{document}

\bcancel{xxx} \bcancel{xpx} \bcancel{xdx} \bcancel{x(x)x}

\xcancel{xxx} \xcancel{xpx} \xcancel{xdx} \xcancel{x(x)x}

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \xcancel{bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \bcancel{bla bla bla bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \xcancel{bla bla bla bla bla bla bla bla bla bla bla bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

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

Re: Barrer avec différents styles

Messagepar projetmbc » Vendredi 25 Juin 2010, 10:27

Merci c'est super mais cela ne semble pas fonctionner dans les formules.

Ceci marche.
Code: Tout sélectionner
\bcancel{$\frac{4^3}{1+7}$}

Ceci ne marche pas.
Code: Tout sélectionner
$5+\bcancel{\frac{4^3}{1+7}}$

Comment pourrait-on rendre la commande utilisable dans une formule ?
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Barrer avec différents styles

Messagepar pg » Mardi 29 Juin 2010, 19:53

Pour que ça marche dans les formules, il faut travailler un peu plus (en distinguant entre les cinq styles : texte, math/displaystyle, math/textstyle, math/scriptstyle et math/scriptscriptstyle) :

Code: Tout sélectionner
\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.misc}

\makeatletter
\newcommand{\tikz@bcancel}[1]{%
  \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
  \node[strike out,draw] (textbox) {#1};
  \useasboundingbox (textbox);
  \end{tikzpicture}%
}
\newcommand{\bcancel}[1]{%
  \relax\ifmmode
    \mathchoice{\tikz@bcancel{$\displaystyle#1$}}
               {\tikz@bcancel{$\textstyle#1$}}
               {\tikz@bcancel{$\scriptstyle#1$}}
               {\tikz@bcancel{$\scriptscriptstyle#1$}}
  \else
    \tikz@bcancel{\strut#1}%
  \fi
}
\newcommand{\tikz@xcancel}[1]{%
  \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
  \node[cross out,draw] (textbox) {#1};
  \useasboundingbox (textbox);
  \end{tikzpicture}%
}
\newcommand{\xcancel}[1]{%
  \relax\ifmmode
    \mathchoice{\tikz@xcancel{$\displaystyle#1$}}
               {\tikz@xcancel{$\textstyle#1$}}
               {\tikz@xcancel{$\scriptstyle#1$}}
               {\tikz@xcancel{$\scriptscriptstyle#1$}}
  \else
    \tikz@xcancel{\strut#1}%
  \fi
}
\makeatother

\begin{document}

\bcancel{xxx} \bcancel{xpx} \bcancel{xdx} \bcancel{x(x)x}

\xcancel{xxx} \xcancel{xpx} \xcancel{xdx} \xcancel{x(x)x}

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \xcancel{bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \bcancel{bla bla bla bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \xcancel{bla bla bla bla bla bla bla bla bla bla bla bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla $5+\bcancel{\frac{4^3}{1+7}}$ bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\[\frac{5^{\bcancel{2}}}{\bcancel{5}}+\bcancel{\frac{4^3}{1+7}}\]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla $5+\xcancel{\frac{4^3}{1+7}}$ bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\[\frac{5^{\xcancel{2}}}{\xcancel{5}}+\xcancel{\frac{4^3}{1+7}}\]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

\end{document}

J'ai utilisé \mathchoice mais on pourrait raccourcir le code avec un \mathpalette.
pg
Modérateur
 
Messages: 2596
Inscription: Jeudi 14 Juin 2007, 23:31

Re: Barrer avec différents styles

Messagepar projetmbc » Mardi 29 Juin 2010, 21:03

C'est super, et en plus le code est très bien présenté. Un grand merci. :mrgreen:

Deux petites questions.

  1. Peux-tu me rappeler ce à quoi sert \makeatletter ?
  2. Je voudrais barrer en rouge par exemple. J'ai ce qui suit, cf page 247 du manuel, mais ce n'est pas paramétrable. Peut-on au moins au début du document définir une sorte de constante qui s'appliquerait à toutes les commandes ? L'idéal serait de pouvoir travailler avec du RGB. Je n'ai pas besoin d'un second paramètre dans les environnements, car cela ferait perdre de la cohérence à l'aspect du document.
Code: Tout sélectionner
    \newcommand{\tikz@bcancel}[1]{%
      \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
      \node[strike out,draw] (textbox) {#1}[color=red];
      \useasboundingbox (textbox);
      \end{tikzpicture}%
    }
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant

Re: Barrer avec différents styles

Messagepar pg » Mardi 29 Juin 2010, 21:12

projetmbc a écrit:Peux-tu me rappeler ce à quoi sert \makeatletter ?

C'est pour pouvoir utiliser @ dans les noms de macros afin que les macros \tikz@bcancel et \tikz@xcancel ne puissent pas être utilisées dans le corps du document (seules \bcancel et \xcancel sont destinées à l'être).

Je voudrais barrer en rouge par exemple. J'ai ce qui suit, cf page 247 du manuel, mais ce n'est pas paramétrable. Peut-on au moins au début du document définir une sorte de constante qui s'appliquerait à toutes les commandes ? L'idéal étant de pouvoir travailler avec du RGB. Je n'ai pas besoin d'un second paramètre dans les environnements afin de garder une cohérence dans tout le document pour ce qui est barré.

C'est le package xcolor qui est utilisé pour les couleurs, donc tout ce qui marche avec lui marche avec tikz :

Code: Tout sélectionner
\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{shapes.misc}

\makeatletter
\definecolor{cancelcolor}{rgb}{0.127,0.372,0.987}
\newcommand{\tikz@bcancel}[1]{%
  \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
  \node[strike out,draw] (textbox) {#1}[color=cancelcolor];
  \useasboundingbox (textbox);
  \end{tikzpicture}%
}
\newcommand{\bcancel}[1]{%
  \relax\ifmmode
    \mathchoice{\tikz@bcancel{$\displaystyle#1$}}
               {\tikz@bcancel{$\textstyle#1$}}
               {\tikz@bcancel{$\scriptstyle#1$}}
               {\tikz@bcancel{$\scriptscriptstyle#1$}}
  \else
    \tikz@bcancel{\strut#1}%
  \fi
}
\newcommand{\tikz@xcancel}[1]{%
  \begin{tikzpicture}[baseline=(textbox.base),inner sep=0pt]
  \node[cross out,draw] (textbox) {#1}[color=cancelcolor];
  \useasboundingbox (textbox);
  \end{tikzpicture}%
}
\newcommand{\xcancel}[1]{%
  \relax\ifmmode
    \mathchoice{\tikz@xcancel{$\displaystyle#1$}}
               {\tikz@xcancel{$\textstyle#1$}}
               {\tikz@xcancel{$\scriptstyle#1$}}
               {\tikz@xcancel{$\scriptscriptstyle#1$}}
  \else
    \tikz@xcancel{\strut#1}%
  \fi
}
\makeatother

\begin{document}

\bcancel{xxx} \bcancel{xpx} \bcancel{xdx} \bcancel{x(x)x}

\xcancel{xxx} \xcancel{xpx} \xcancel{xdx} \xcancel{x(x)x}

Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \xcancel{bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \bcancel{bla bla bla bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla \xcancel{bla bla bla bla bla bla bla bla bla bla bla bla} bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla $5+\bcancel{\frac{4^3}{1+7}}$ bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\[\frac{5^{\bcancel{2}}}{\bcancel{5}}+\bcancel{\frac{4^3}{1+7}}\]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla $5+\xcancel{\frac{4^3}{1+7}}$ bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
\[\frac{5^{\xcancel{2}}}{\xcancel{5}}+\xcancel{\frac{4^3}{1+7}}\]
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla.

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

Re: Barrer avec différents styles

Messagepar projetmbc » Mardi 29 Juin 2010, 21:20

Merci pour tout.
projetmbc
Péta-utilisateur
 
Messages: 1897
Inscription: Samedi 29 Décembre 2007, 00:58
Statut actuel: Actif et salarié | Enseignant


Retourner vers LaTeX

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Alexa [Bot], Google Adsense [Bot], Grapeshot [Crawler] et 15 invités