10

I'm writing I little bit of history in my report and I wonder which are the possible ways to format a century in LaTeX (e.g XX century) and in typography which is the most used and accepted. This is actually what I'm using:

XX$^{\circ}$ so I have something like XX° but I don't like it very much, the circle is too low...

  • 7
    XX°? What’s wrong with “20th century”? XX° looks like an angle with placeholders. – Qrrbrbirlbel Oct 25 '13 at 14:50
  • Is the circ in the superscript really a common notation for centuries? I know only the convention about uppercase roman numerals. – Ruben Oct 25 '13 at 14:51
  • 2
    @GM Ah, I didn’t know that. Numero ordinale tells me that in Italian you either use 20° or XX but not XX°. Are you sure you want to use XX°? – Qrrbrbirlbel Oct 25 '13 at 15:19
  • 4
    The superscript “o” is one of the many French typographic fancies. Nobody else uses it with Roman numerals. Italian for sure doesn't (at least the good books don't). – egreg Oct 25 '13 at 15:50
  • 6
    The practice is outdated, but certainly survives in in French publications. I have many titles in my .bib like "... XIII\textsuperscript{e} siècle...". As an aside: the practice is truly 'medieval', too. Manuscripts (and early printed books) are often heavily abbreviated to save space, so things like , , , 4\textsuperscript{us}, or 5\textsuperscript{m} are common, agreeing in gender with some other (implied) word in the nominative, accusative, or ablative case. Unless, you are required to do so, I suggest avoiding the practice, and also things like 20\textsuperscript{th}. – jon Oct 25 '13 at 17:54
8

The ordinal indicators º/º and ª/ª can be typeset with \textsuperscript{o} and \textsuperscript{a} respectively.

While the french option of babel actually uses a \realsuperscript macro that aligns the superscripts a little bit lower, the italian option doesn’t have this.

An alternative offers the input of Unicode characters with the utf8 option of the inputenc package (of course, you need to have your documents UTF-8 encoded).

The textcomp packages defines \textordmasculine and \textordfeminine which do look a little different and are underlined.

Code

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\let\up\textsuperscript
\begin{document}
20\up{o} secolo\par 20º secolo \par
20\up{a} Vespa\par 20ª Vespa
\end{document}

Output

enter image description here

5

I see no problem with using XX as 20th century... but if you want to change it a little bit you should only change its style, for example:

\emph{XX} Century
\textsl{XX} Century
\textbf{XX} Century
\texttt{XX} Century
\textsc{XX} Century

Which would look something like this:

enter image description here

Of course, feel free to combine (keeping of course esthetics and reason on sight) any of the options below.

5

I disagree with @Mario S. E.' s answer (Nothing personal :-), which proposses to use \text<sth> macros to format the century numbers. I would nearly never use them in the document body, especially when they are used for mark up, as it is the case here. Even mixing them isn't a good idea either. You could instead do:

\documentclass{article}
\def\centuryname{century}
\let\up\textsuperscript
\let\markcent\textsc
  \newcommand*{\century}[1]
  {\markcent{\uppercase\expandafter{\romannumeral #1\relax}}\up{o} \centuryname}

\begin{document}
\century{20}
\end{document}

(with credits to @Qrrbrbirlbel' s answer).

Edit: Regarding the position of the 'o' etc., try another definition for \up. Replace \let\up\textsuperscript with

\def\up#1{%
\edef\tmp{\the\fontdimen14\textfont2}%
\fontdimen14\textfont2=5.5pt%
\textsuperscript{#1}%
\fontdimen14\textfont2=\tmp%
}

Finally, you could code a little more customizability by

\newcommand*{\up}[2][5.5pt]{%
\edef\tmp{\the\fontdimen14\textfont2}%
\fontdimen14\textfont2=#1%
\textsuperscript{#2}%
\fontdimen14\textfont2=\tmp%
}

which then could be used like \up[height correction]{superscript}.

  • 1
    +1 for the separation between content and format. But it would be better to have it in LaTeX commands instead of TeX primitives (although \romannumeral is unavoidable): \newcommand{\century}[1]{\textsc{\romannumeral #1}\textsuperscript{o}~\centuryname}. – henrique Oct 25 '13 at 23:53
  • Writing 'Jahrhundert' works in German, but not 'Century' in English. We are living in the twenty-first century, not the twenty-first Century. (I still prefer spelling it out, however....) – jon Oct 26 '13 at 0:43
  • I do like your answer :) Actually ---personally--- I would just type directly XX century, with no problem at all. – Mario S. E. Oct 26 '13 at 3:05
  • @MarioS.E.: Then, at least I would use it like: \markcent{XX} century (in lower case; you're right @jon!). With this you still keep a consistent format which is changable at any time. – Ruben Oct 26 '13 at 9:52
  • 1
    @MarioS.E. sure it's no big deal but becomes more and more tedious the more different centuries you have (XX, XIV, XVI ...). Then you may have a hard time not to forget one when changing the layout. IMHO good LaTeX practice always should be to strictly separate markup from layout... – clemens Oct 26 '13 at 12:02

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.