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)
\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.