How can you make a macron less wide?

You can define a short one that matches the longer ones and fits quite well on the i like this:

\newcommand{\shortmacron}{%
   \makebox[0pt][l]{%
      \rule[1.3ex]{0.2em}{0.035em}%
   }%
}

Another way is to define a smart version that automatically adapts it’s length. I also set this one a little lower to minimize the conflict with the drop serif of the f

\newlength\tmp
\newcommand{\smartmacron}[1]{%
   \settowidth{\tmp}{#1}%
   \makebox[\tmp][c]{%
      \rule[1.2ex]{0.6\tmp}{0.035em}%
   }\kern-\tmp#1%
}

Using the xstring package to check which letter follows, we can define the macro even more smart and align the macron better on top of the letter:

\usepackage{xstring}
\newlength\tmpa
\newlength\tmpb
\newlength\tmpc
\newcommand{\supersmartmacron}[1]{%
   \settowidth{\tmpa}{#1}% width of letter
   \setlength{\tmpb}{0em}% x-shift
   \setlength{\tmpc}{1.23ex}% raise
   \IfStrEqCase{#1}{%
      {a} {\setlength{\tmpb}{-0.04em}}%
      {e} {\setlength{\tmpb}{-0.01em}}%
      {i} {\setlength{\tmpb}{-0.045em}\setlength{\tmpc}{1.8ex}}%
      {\i}{\setlength{\tmpb}{-0.045em}}%
      {o} {\setlength{\tmpb}{-0.01em}}%
      {u} {\setlength{\tmpb}{-0.04em}}%
   }
   \makebox[\tmpa][c]{%
      \kern\tmpb\rule[\tmpc]{0.6\tmpa}{0.035em}%
   }\kern-\tmpa#1%
}

Of curse the right values for the lengthen \tmpa, \tmpb and \tmpc depend on the selected typeface.

Result and demo code
(original macron, short macron, smart macron, super smart macron)

macrons

\documentclass{article}

\newcommand{\shortmacron}{%
   \makebox[0pt][l]{%
      \rule[1.3ex]{0.2em}{0.035em}%
   }%
}

\newlength\tmp
\newcommand{\smartmacron}[1]{%
   \settowidth{\tmp}{#1}%
   \makebox[\tmp][c]{%
      \rule[1.2ex]{0.6\tmp}{0.035em}%
   }\kern-\tmp#1%
}

\usepackage{xstring}
\newlength\tmpa
\newlength\tmpb
\newlength\tmpc
\newcommand{\supersmartmacron}[1]{%
   \settowidth{\tmpa}{#1}% width of letter
   \setlength{\tmpb}{0em}% x-shift
   \setlength{\tmpc}{1.23ex}% raise
   \IfStrEqCase{#1}{%
      {a} {\setlength{\tmpb}{-0.04em}}%
      {e} {\setlength{\tmpb}{-0.01em}}%
      {i} {\setlength{\tmpb}{-0.045em}\setlength{\tmpc}{1.8ex}}%
      {\i}{\setlength{\tmpb}{-0.045em}}%
      {o} {\setlength{\tmpb}{-0.01em}}%
      {u} {\setlength{\tmpb}{-0.04em}}%
   }
   \makebox[\tmpa][c]{%
      \kern\tmpb\rule[\tmpc]{0.6\tmpa}{0.035em}%
   }\kern-\tmpa#1%
}

\begin{document}
%\huge
%\tiny
Tac\=e, M\=arc\=o, \=unus, f\=\i li\=\i?

Tac\shortmacron e, M\shortmacron arc\shortmacron o, \shortmacron unus, f\shortmacron\i li\shortmacron\i?

Tac\smartmacron e, M\smartmacron arc\smartmacron o, \smartmacron unus, f\smartmacron\i li\smartmacron\i?

Tac\supersmartmacron e, M\supersmartmacron arc\supersmartmacron o, \supersmartmacron unus, f\supersmartmacron\i li\supersmartmacron\i?

\=a \shortmacron a

\=a \smartmacron a

\=a \supersmartmacron a\quad
\=e \supersmartmacron e\quad
\=i \supersmartmacron i\quad
\=\i \supersmartmacron \i\quad
\=o \supersmartmacron o\quad
\=u \supersmartmacron u\quad

\supersmartmacron a\quad
\supersmartmacron e\quad
\supersmartmacron i\quad
\supersmartmacron \i\quad
\supersmartmacron o\quad
\supersmartmacron u\quad
\end{document}

To use the shortcut with on of the smart versions call

\let\=\supersmartmacron

in your preamble.

Tags:

Pdftex