17

How can I get a Legendre symbol

example,

which just used the dashed line instead of the fractional rule?

3 Answers 3

14
\documentclass[a4paper]{article}
\usepackage{amsmath}
\makeatletter
\def\legendre@dash#1#2{\hb@xt@#1{%
  \kern-#2\p@
  \cleaders\hbox{\kern.5\p@
    \vrule\@height.2\p@\@depth.2\p@\@width\p@
    \kern.5\p@}\hfil
  \kern-#2\p@
  }}
\def\@legendre#1#2#3#4#5{\mathopen{}\left(
  \sbox\z@{$\genfrac{}{}{0pt}{#1}{#3#4}{#3#5}$}%
  \dimen@=\wd\z@
  \kern-\p@\vcenter{\box0}\kern-\dimen@\vcenter{\legendre@dash\dimen@{#2}}\kern-\p@
  \right)\mathclose{}}
\newcommand\legendre[2]{\mathchoice
  {\@legendre{0}{1}{}{#1}{#2}}
  {\@legendre{1}{.5}{\vphantom{1}}{#1}{#2}}
  {\@legendre{2}{0}{\vphantom{1}}{#1}{#2}}
  {\@legendre{3}{0}{\vphantom{1}}{#1}{#2}}
}
\def\dlegendre{\@legendre{0}{1}{}}
\def\tlegendre{\@legendre{1}{0.5}{\vphantom{1}}}
\makeatother

\begin{document}
$\genfrac(){}{0}{a}{b}$

$\dlegendre{a}{b}\dlegendre{10}{20}$

$\genfrac(){}{}{a}{b}\legendre{a}{b}\legendre{100}{200}$

$\scriptstyle\genfrac(){}{}{a}{b}\legendre{a}{b}\legendre{10}{20}$

$\scriptscriptstyle\genfrac(){}{}{a}{b}\legendre{a}{b}\legendre{10}{20}$

$\displaystyle\legendre{a}{b}\textstyle\legendre{a}{b}
  \scriptstyle\legendre{a}{b}\scriptscriptstyle\legendre{a}{b}$
\end{document}

The user command are \legendre that typesets the symbol in the current math style or \dlegendre and \tlegendre to force display or text style.

enter image description here

The \genfrac parts are only for comparisons.

3
  • The $\genfrac(){}{}{p}{q}\legendre{p}{q}$ get a bit of larger parenthese.
    – fas
    Jun 10, 2011 at 16:52
  • @fas: I've edited the macros.
    – egreg
    Jun 10, 2011 at 17:10
  • @fas: I should add that I've seen nowhere this notation.
    – egreg
    Jun 10, 2011 at 20:08
7

Interesting question. My first idea was to write In french the symbol is

$\left(\dfrac{a}{b}\right)$

but without dashed line, the second idea was to use \genfrac but I don't know how to draw the dashed line so the last idea is to use arydshln

\documentclass[10pt]{article}
\usepackage{amsmath,arydshln} 

\def\Legendre(#1,#2){%
\begin{pmatrix}
#1\cr 
\hdashline[1pt/1pt]
#2\cr
\end{pmatrix}}  

\begin{document}
$\Legendre(97,37)$
\end{document}  

enter image description here

1
  • 1
    Looking at the code, \genfrac uses \over (or \above) internally so the line is produced by a primitive and thus I don't think one could easily modify \genfrac to produce a dashed line. Shame. Jun 10, 2011 at 7:56
0

If you are going to use this type of notation a lot, I am not sure if the following is suitable but at least, it is quite simple to get some automation wrapped around it

\documentclass{article}
\usepackage{tikz,amsmath}
\usetikzlibrary{matrix}

\newcommand{\lege}[2]{\ensuremath{%
\begin{aligned}
\begin{tikzpicture}
\node[matrix of math nodes,left delimiter=(,right delimiter=)] (lege) at (0,0) {
#1  \\
#2  \\
};
\draw[densely dashed] (lege.west) -- (lege.east);
\end{tikzpicture}\end{aligned}}%
}


\begin{document}
\[ \lege{1252}{567}\lege{1}{0} \int^\infty_0{dx}\]    
\end{document}

Trying out the code

I can't foresee any problems with my code but I can sense that there are. Hence, I am pretty sure that advanced users here would find a smarter way to do it (especially the spacing of the delimiters with xshift etc.). You can scale the whole tikzpicture to get different sizes. Cheers.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.