# Background of this question

I've got the idea of creating a math dictionary with LaTeX for quite a while now. My native language is German and I write a lot of blog articles about algorithms and a few about mathematics. The algorithm articles are in English most of the time, because I think I can describe the ideas well. This is easy for datastructures and algorithms as the English words are often used in German in this area, too. (Or at least the English ones are well-known.)

But I write my math articles most of the time in English. There are simple problems like "how do I call the x values where a function is zero in English" (root). But they are hard to look up. There are good English dictionaries for "common" English and some online dictionaries are also quite good for common English (dict.leo.org). But when it comes to math, I think the situation could be better.

# What I want to do

I would like to start writing an open source dictionary that helps mathematicians to translate terms from German to English and vice versa. (I hope that people would contribute to this dictionary after they had a hard time finding the translation of a term.)

I think such a dictionary should have

• one part sorted by English words to look up the German ones
• one part sorted by German words to look up the English ones

Every entry should have a formal description of the term, possibly the area (Topology, Analytics, Numerical mathematics, ...) and how it is pronounced in the language you look up.

So my entries could look like this:

\entry{Formal description}{area}{english description}{german description}{english pronounciation}{german pronounciation}
\entry{$\Set{x | f(x) = 0}$}{Analytics}{Root of a function}{Nullstelle einer Funktion}{}{}
\entry{$x^n$}{Analytics}{}{}{\SortKey{AAABasicTerms}$x$ raised to the power of $n$}{\SortKey{AAABasicTerms}$x$ hoch $n$}


# Question

My question is quite open. I've written this to get some ideas what I could do / try or who I could ask.

I don't want to break the StackExchange rules, so the question is:

Is there an environment / document class for dictionaries?

But please feel free to give any idea you have for this in the comments (or an answer if your ideas get longer).

• Have you looked at the glossaries package at all? It is well documented and there are a variety of samples in a sub-directory of the documentation. In particular, you could create a specialised command to handle the fields you need. I think you should be able to do this in a way which would enable generation of both parts of the dictionary from a single definition, though I've never actually tried this. Or maybe see tex.stackexchange.com/questions/13801/… (which sounds less optimistic about the dual usage aspect.) – cfr Dec 12 '13 at 23:29
• Related: tex.stackexchange.com/a/58218/66. That answer also contains a few links to relevant questions here on TeX.SE. – You Dec 12 '13 at 23:43
• The multilingual dictionary ([tex.stackexchange.com/a/58218/66] (Icelandic-Czech Students Dictionary)) and the link you set contains complete code with an example how to typeset a dictionary in Latex. – chejnik Dec 19 '13 at 20:50
• In the glossaries package's samples directory there's a file called sample-langdict.tex that has French to English and English to French lists, which you might be able to use as a starting point. – Nicola Talbot Jun 30 '14 at 8:54
• To find good (technical, mathematical, etc.) translations, I use Wikipedia to find the right concept in french ("Zéro d'une fonction") then via the Languages menu, I change the language (english:"Zero of a function", deutsh:"Nullstelle"). – Paul Gaborit Dec 18 '14 at 0:25

For dictionaries, I use dici.sty. Is is a very small package... It creates the usual dictionary headers, and tries to define as less as possible commands.

example:

\documentclass[twoside,twocolumn]{book}
\usepackage[utf8]{inputenc}
\usepackage{dici}

\begin{document}
\title{The dictionary of ...
\author{Jose Joao Almeida \and ...
\maketitle
.....................................

\begin{dictionary}
\bigletter{A}
\term{a}{um [\emph{Article}]  }
\term{aardvarks}{porco-da-terra, oricterope}
\term{aback}{às avessas [\emph{Adverb}]  }
\term{aback}{atrás, detrás [\emph{Adverb}]  }
\term{aback}{para trás [\emph{Adverb}]  }
...
\bigletter{B}
...
\end{dictionary}


Unfortunately this style is not yet in CTAN. But you can get it from http://natura.di.uminho.pt/~jj/latex/dici-sty/

In this address you can find the sty, and two small examples.

Edit 1

About dictionary creation process

(This probably should be a comment but I have no reputation to do that :)

Normally we generate the LaTeX dictionaries from dictionaries in (several) external file formats, using external converters.

Trivial example:

In Dici.sty folder you'll find a tab2dic perl script that creates this kind of dictionaries from tab-separated file (en-pt.tsv)

tab2dic -header en-pt.tsv > en-pt.tex
pdflatex en-pt.tex