latex-homework/shortcuts/shortcuts.sty

301 lines
6.4 KiB
TeX

%%%
%%%
%%% Extensions : shortcuts.sty
%%% Version : 1.0
%%% Date : 10/05/16
%%% Auteur : Jeff LANCE
%%% Notes : Cette extension peut demander l'ajout de certains packages.
%%% Il est conseillé de l'appeler dans un(e) classe/(package) appelant
%%% elle(lui)-même ces packages.
%%%
%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{shortcuts}[2016/05/16 Définitions de raccourcis vers des macros
existantes, v1.0]
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% ENVIRONMENTS
%
%
%% itemize
%%
\newcommand{\bi}{\begin{itemize}}
\newcommand{\ei}{\end{itemize}}
%% enumerate
%%
\newcommand{\be}{\begin{enumerate}}
\newcommand{\ee}{\end{enumerate}}
%% descriptions
%%
\newcommand{\bd}{\begin{description}}
\newcommand{\ed}{\end{description}}
%% columns
%%
\newcommand{\bc}{\begin{columns}}
\newcommand{\ec}{\end{columns}}
%% questions
%%
\newcommand{\bq}{\begin{questions}}
\newcommand{\eq}{\end{questions}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% TEXT
%
%
%% positive skip.
%%
\NewDocumentCommand \pskip { G{.2} } {%
\vspace*{+#1cm}
}
%% negative skip.
%%
\NewDocumentCommand \nskip { G{.8} } {%
\vspace*{-#1cm}
}
%% another shortcut to whiting text.
%%
\NewDocumentCommand \ghost { } {%
\white
}
%% c'est-à-dire
%%
\NewDocumentCommand \cad { } {
{c'est-à-dire}
}
\NewDocumentCommand \Cad { } {
{C'est-à-dire}
}
%% textsuperscript and textsubscript
%%
\NewDocumentCommand \tup { g } {
\textsuperscript{#1}
}
\NewDocumentCommand \tub { g } {
\textsubscript{#1}
}
%% smileys
%%
\NewDocumentCommand \wink { } {
{\DejaVuSans 😉}
}
\NewDocumentCommand \lol { } {
{\DejaVuSans 😂}
}
\NewDocumentCommand \sad { } {
{\DejaVuSans 😞}
}
% double quoting
%%
\NewDocumentCommand \og { }{
<<
}
\NewDocumentCommand \Fg { }{
>>
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
% MATHS
%
%
%% i & j vectors
%%
\NewDocumentCommand \veci { } {
\ensuremath{ \vec{\imath} }
}
\NewDocumentCommand \vecj { } {
\ensuremath{ \vec{\jmath} }
}
%% frame (O;i;j)
%%
\NewDocumentCommand \oij { } {
\ensuremath{ \left(O\; ;\; \vec{\imath}\; ;\; \vec{\jmath}\right) }
}
%% frame (O;I;I)
%%
\NewDocumentCommand \OIJ { } {
\ensuremath{ \left(O\; ;\; I\; ;\; J\right) }
}
%% frame (O;x;y)
%%
\NewDocumentCommand \oxy { } {
\ensuremath{ \left(O\; ;\; x\; ;\; y\right) }
}
%% vector arrow redefinition
%%
\renewcommand{\Vec}[1]{
\overrightarrow{#1\vphantom(}
}
%% positional notation
%%
\newcommand{\base}[2]{
\ensuremath{ \overline{#1\vphantom(}^{#2} }
}
%% sets: N, Z, D, Q, R\Q and R with possibility to minus some numbers
%%
\NewDocumentCommand \R { s g } {
\IfBooleanTF {#1} {
\IfNoValueTF {#2} {
% \mathchoice{\! \mathbb{R} \setminus \{0\} \!}
% {\ensuremath{ \mathbb{R} \setminus \{0\} }}
% {\! \mathbb{R} \setminus \{0\} \!}
% {\! \mathbb{R} \setminus \{0\} \!}
\!\!\!\!\ensuremath{\mathbb{R} \setminus \{0\}}\!\!\!
}{
% \mathchoice{\! \mathbb{R} \setminus \{0, #2\} \!}
% {\ensuremath{ \mathbb{R} \setminus \{0, #2\} }}
% {\! \mathbb{R} \setminus \{0, #2\} \!}
% {\! \mathbb{R} \setminus \{0, #2\} \!}
\!\!\!\!\ensuremath{\mathbb{R} \setminus \{0, #2\}}\!\!\!
}
}{
\IfNoValueTF {#2} {
% \mathchoice{\mathbb{R}}
% {\ensuremath{ \mathbb{R} }}
% {\mathbb{R}}
% {\mathbb{R}}
\!\!\!\!\ensuremath{ \mathbb{R} }\!\!\!
}{
% \mathchoice{\mathbb{R} \setminus \{#2\}}
% {\ensuremath{ \mathbb{R} \setminus \{#2\} }}
% {\mathbb{R} \setminus \{#2\}}
% {\mathbb{R} \setminus \{#2\}}
\!\!\!\!\ensuremath{\mathbb{R} \setminus \{#2\}}\!\!\!
}
}
}
\NewDocumentCommand \RQ { } {
\( \mathbb{R} \setminus \mathbb{Q} \)
}
\NewDocumentCommand \Q { s g } {
\IfBooleanTF {#1} {
\IfNoValueTF {#2} {
\ensuremath{\!\!\! \mathbb{Q} \setminus \{0\} \!\!}
}{
\ensuremath{\!\!\! \mathbb{Q} \setminus \{0, #2\} \!\!}
}
}{
\IfNoValueTF {#2} {
\ensuremath{\!\!\! \mathbb{Q} \!\!}
}{
\ensuremath{\!\!\! \mathbb{Q} \setminus \{#2\} \!\!}
}
}
}
\NewDocumentCommand \D { s g } {
\IfBooleanTF {#1} {
\IfNoValueTF {#2} {
\ensuremath{\!\!\! \mathbb{D} \setminus \{0\} \!\!}
}{
\ensuremath{\!\!\! \mathbb{D} \setminus \{0, #2\} \!\!}
}
}{
\IfNoValueTF {#2} {
\ensuremath{\!\!\! \mathbb{D} \!\!}
}{
\ensuremath{\!\!\! \mathbb{D} \setminus \{#2\} \!\!}
}
}
}
\NewDocumentCommand \Z { s g } {
\IfBooleanTF {#1} {
\IfNoValueTF {#2} {
\ensuremath{\!\!\! \mathbb{Z} \setminus \{0\} \!\!}
}{
\ensuremath{\!\!\! \mathbb{Z} \setminus \{0, #2\} \!\!}
}
}{
\IfNoValueTF {#2} {
\ensuremath{\!\!\! \mathbb{Z} \!\!}
}{
\ensuremath{\!\!\! \mathbb{Z} \setminus \{#2\} \!\!}
}
}
}
\NewDocumentCommand \N { s g } {
\IfBooleanTF {#1} {
\IfNoValueTF {#2} {
\!\!\!\!\ensuremath{\mathbb{N} \setminus \{0\}}\!\!\!
}{
\!\!\!\!\ensuremath{\mathbb{N} \setminus \{0, #2\}}\!\!\!
}
}{
\IfNoValueTF {#2} {
\!\!\!\!\ensuremath{\mathbb{N}}\!\!\!
}{
\!\!\!\!\ensuremath{\mathbb{N} \setminus \{#2\}}\!\!\!
}
}
}
%% dot product
%%
\NewDocumentCommand \dotprod{ s g g } {
\IfBooleanTF {#1} {
\ensuremath{
\vec{#2} \cdot \vec{#3}
}
}{
\ensuremath{
\overrightarrow{#1\vphantom(} \cdot \overrightarrow{#2\vphantom(}
}
}
}
%% math letter used as curve name
%%
\NewDocumentCommand \mscr{ g } {
$ \mathscr{#1} $
}
%% point
%%
\NewDocumentCommand \point{ G{A} G{0} G{0} } {
$ #1\big(#2\ ;\ #3\big) $
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatother