2

This question already has an answer here:

Instead of 'III' (three 'I's), I want the numbers to look more like those in the attached image. When using Computer Modern font, is it possible to just remove the horizontal space between letters? a previous post worked around this by defining a new command using /makebox, but some of the dimensions used absolute length units and therefore is not a solution for different fonts, especially when you want to use this in subscripts or superscripts.

enter image description here

marked as duplicate by Werner, Stefan Pinnow, TeXnician, Mensch, Mico Feb 1 '18 at 7:02

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • 1
    Which font are you using? – Sigur Jan 31 '18 at 19:05
  • To get that sort of effect easily, you will need a typeface that has roman numerals correctly spaced. The only freely available typeface that has them (that I know of though there may well be others) is the Brill typeface available at brill.com/about/brill-typeface/…. – sgmoye Jan 31 '18 at 20:01
  • the font you show is a "condensed" font -- letters are much narrower than the usual "book" type. even applying negative letterspacing, the result will not be quite comparable to what you are showing here. – barbara beeton Jan 31 '18 at 21:42
1

You can insert a negative space between two characters:

enter image description here

\documentclass{article}

\newcommand{\joinR}{\hspace{-.1em}}
\newcommand{\RomanI}{I}
\newcommand{\RomanII}{\mbox{\RomanI\joinR\RomanI}}
\newcommand{\RomanIII}{\mbox{\RomanI\joinR\RomanII}}
\newcommand{\RomanIV}{\mbox{\RomanI\joinR\RomanV}}
\newcommand{\RomanV}{V}
\newcommand{\RomanVI}{\mbox{\RomanV\joinR\RomanI}}
\newcommand{\RomanVII}{\mbox{\RomanV\joinR\RomanII}}
\newcommand{\RomanVIII}{\mbox{\RomanV\joinR\RomanIII}}
\newcommand{\RomanIX}{\mbox{\RomanI\joinR\RomanX}}
\newcommand{\RomanX}{X}

\begin{document}

I \RomanI

II \RomanII

III \RomanIII

IV \RomanIV

V \RomanV

VI \RomanVI

VII \RomanVII

VIII \RomanVIII

IX \RomanIX

X \RomanX

\end{document}

The above should work with all font switches (\tiny, \scriptsize, \footnotesize, ..., \Huge). You can adjust the spacing as needed, if you want them closer together/further apart.


microtype's letterspace package also provides \textls that you can use (the starred version):

enter image description here

\documentclass{article}

\usepackage{letterspace}

\newcommand{\ROMAN}{\textls*[-100]}

\begin{document}

I \ROMAN{I}

II \ROMAN{II}

III \ROMAN{III}

IV \ROMAN{IV}

V \ROMAN{V}

VI \ROMAN{VI}

VII \ROMAN{VII}

VIII \ROMAN{VIII}

IX \ROMAN{IX}

X \ROMAN{X}

\end{document}
2

The following defines two macros. The first is \tighten which reduces the space between every letter of its argument by a given length (by default 0.25ex). This is intended for manual insertion of roman numerals.

The second is \TightRoman which uses \tighten to set a counter with tightened Roman numbers.

\documentclass[]{article}

\makeatletter
\newlength\tighten@stretch
\newcommand*\tighten[2][0.25ex]{%
  \if\relax\detokenize{#2}\relax% detect empty argument
  \else
    \bgroup
      \tighten@stretch=#1
      \expandafter\tighten@#2@%
    \egroup
  \fi}
\def\tighten@#1#2{%
  #1%
  \tighten@check{#2}{%
    \kern-\tighten@stretch
    \tighten@#2
  }}
\def\tighten@check#1{%
  \ifx @#1%
    \expandafter\@gobble
  \else
    \expandafter\@firstofone
  \fi}
\newcommand*\TightRoman[2][0.25ex]{%
  \edef\TightRoman@tmp{\Roman{#2}}%
  \expandafter\TightRoman@i\expandafter{\TightRoman@tmp}{#1}}%
\newcommand*\TightRoman@i[2]{%
  \tighten[#2]{#1}}
\makeatother

\begin{document}
\noindent
\newcounter{mycounter}%
\loop\ifnum\value{mycounter}<20
\stepcounter{mycounter}%
\TightRoman{mycounter}\space
\repeat

\tighten{XII}
\end{document}

Results: enter image description here

1

I think this post solved my problem: Enlarging tracking (= letter spacing)

\usepackage[letterspace=-150]{microtype}

\textls{III}

gives the desired results.

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