TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

What is the difference between \declare@shorthand and \defineshorthand in babel (v.3.9)? Which of the two macros is preferable in a language definition file?

babel.pdf manual (v.3.9) provides an example


and russian.ldf provides similar defintions using \declare@shorthand, e.g.

share|improve this question

from babel.sty:


defines shorthands for the namespace user

\declare@shorthand{ngerman}{"a}{\textormath{\"{a}\allowhyphens}{\ddot a}}

is used internally for the specific language setting. In the above example one for ngerman and the other for russian.

So \defineshorthand{"*}{\babelhyphen{soft}} is the same as


If you want to define your own language setting which will be loaded by babel then use the internal definition. If you have only a few new shorthands then use the user definition.

share|improve this answer

In 3.9


is (will be) just an optimized version of


This shorthand is defined for russian and is active only when this language has been selected. Without the optional argument, it's a user shorthand, which is always active and takes precedence over language shorthands. In language definition files, the preferred command is the optimized one (ie, \declare@shorthand).

share|improve this answer
Can I substitute \declare@shorthand{russian}{""}{\hskip\z@skip} with \declare@shorthand{russian}{""}{\babelhyphen{empty}} in LDF? It might be less effective but will be more clear. – Igor Kotelnikov Jan 11 '13 at 4:18
Javier, I have couple of questions/proposals on development of babel-alpha. How I could contact you? – Igor Kotelnikov Jan 11 '13 at 5:07
Igor, you can either use the LaTeX list (public) or send to me a message using the form in tex-tipografia.com/contact.html (and then to continue by e-mail). I'm finishing the first beta release. (And instead of \babelhyphen you can use the internal \bbl@hy@empty.) – Javier Bezos Jan 11 '13 at 9:26

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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