As requested …
But first, let me summarize some things:
\vphantom{y}
doesn't add vertical space like capital letters, in your all minuscule example you could add \vphantom{Ay}
for example.
The \strut
is something similar by the way. It adds a zero-width vertical rule with a height (above the baseline) of .7\baselineskip
and a depth (below the baseline) of .3\baselineskip
.
(You get the same effect with \rule[-.3\baselineskip]{0pt}{\baselineskip}
.)
Judging of the original example this was too much depth in my opinion, and as all other nodes had majuscule letter there was no need for more adjusting.
- The class option
a4papper
gives me—to no surprise—a warning as this option is none.
- Even though
res
is based on the article
class it does not forward an option like a4paper
so that I even get a warning than.
- … which is the reason for using
[a4paper]{article}
in my examples (but you can, of course, use any class you want)
- Your
\hspace{-.25cm}
is unneeded if you add a %
at the end of the lines containing your tag. (→ What is the use of percent signs (%) at the end of lines?)
(In my comment I was wrong: The additional horizontal space doesn't come from outer sep
but from the space that is inserted.)
\fontsize{0.1}{.1}
doesn't work, it even gives a warning:
LaTeX Font Warning: Font shape `OT1/cmr/m/n' in size <0.1> not available
size <5> substituted on input line 48.
font=\tiny
doesn't get used, as it gets overwritten, too.
- All the while you're using
\scalefont{0.8}
anyway. Let's just use that.
- Don't use
\it
. (→ Does it matter if I use \textit or \it, \bfseries or \bf, etc)
Now, before we play with all the \vphantom
s, \rule
s and \strut
s they are, we just make use of TikZ' own styles, namely:
text height
and
text depth
.
We get the most appealing output (in my eyes) when we don't use a depth (ignoring all descenders in letters like y
and g
) and set the height to the one of a majuscule letter. When the above mentioned TikZ styles are used the actual heights and depths of the node text are ignored.
We could mimic this output using \vphantom{A}\smash{#2}
as the node text (#2
being the actual text), or, with the help of amsmath
's extension of \smash
, \smash[b]{#2}
(b
stands for bottom, i.e. only the bottom part is smashed).
TikZ' default settings of inner xsep
and inner ysep
of .3333em
make sure that the lines have a little padding to the text. (These settings can be changed, too, of course, to get yet another output.)
To cut a long story short
Code
\newcommand{\tagf}[2][]{{%
\scalefont{0.8}%
\sbox0{A}%
\tikz[baseline={(TAG.base)}]{
\node[draw=blue!80, fill=blue!20, rounded corners, text height=\ht0, text depth=0pt, #1] (TAG) {#2};
}%
}}
Output
Depths? Heights? What the …?
(\strut
has problems inside a TikZ-node inside tabular
so I removed it from the last column.)
Table
Closer
Full code
\documentclass[a4paper]{article}
\usepackage{parskip}% to mimic res' output
\usepackage{tikz} % loads xcolor by default
\usepackage{scalefnt}
\usepackage{amsmath}% only for the extended version of \smash
\usepackage{calc}
\usetikzlibrary{shapes.geometric}
\newcommand{\tagf}[2][]{{%
\scalefont{0.8}%
\sbox0{A}%
\tikz[baseline={(TAG.base)}]{
\node[draw=blue!80, fill=blue!20, rounded corners, text height=\ht0, text depth=0pt, #1] (TAG) {#2};
}%
}}
\begin{document}
Responsibilities include installation and configuration of Linux clusters and workstations
\tagf{SAMBA}%
\tagf{Red Hat}%
\tagf{Windows}%
\tagf{NFS}%
\tagf{Python}%
\tagf{Shell}%
\tagf{MySQL} %
Responsibilities include installation and configuration of Linux clusters and workstations
\par
Responsibilities include installation and configuration of Linux clusters and workstations
\tagf{Fortran95}%
\tagf{Make}%
\tagf{gcc}%
\tagf{GCC}%
\tagf{Python}
Responsibilities include installation and configuration of Linux clusters and workstations
\par
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The following code should not be used inside your resumee! %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\boxme}[2][black]{{%
\fboxrule=.4pt%
\fboxsep=0pt%
{\color{#1}\fbox{\color{black}#2}}%
}}
\newcommand{\showmeheightanddepth}[2][]{%
\global\sbox0{#2}%
\rlap{\kern-.4em\rule[-.1pt]{\wd0+.8em}{.2pt}}% baseline
\boxme{#2}#1
& \the\ht0
& \the\dp0
& \the\dimexpr\ht0+\dp0\relax
& \ifx#2\strut\else\let\boxme\dontboxmeinsideTikZ%
\tagf[text height=, text depth=]{#2}\fi
}
\newcommand{\dontboxmeinsideTikZ}[2][black]{%
#2%
}
\edef\baselineskipinnormaltext{\the\baselineskip}
\begin{tabular}{lrrrc}
boxed & height & depth & totalheight & Ti\emph{k}Z \\\hline
\showmeheightanddepth{ace}\\
\showmeheightanddepth{ABC}\\
\showmeheightanddepth{gy}\\
\showmeheightanddepth{Age}\\
\showmeheightanddepth{\vphantom{A}\smash{\boxme[green]{Age}}}\\
\showmeheightanddepth{\smash[b]{\boxme[green]{Age}}}\\ % needs \usepackage{amsmath}
\showmeheightanddepth[ (\texttt{strut})]{\strut}
\end{tabular}
\end{document}
The text inside the resume
environment is shifted right of an amount equal to \sectionwidth
in respect to the \section
. So you need to go back of that amount of horizontal space.
For this purpose we define a new command \fullhrulefill
:
\newcommand{\fullhrulefill}{%
\hspace*{-\sectionwidth}\hrulefill%
}
MWE:
\documentclass{res}
\usepackage{kantlipsum} % only for the example
\newcommand{\fullhrulefill}{%
\hspace*{-\sectionwidth}\hrulefill%
}
\begin{document}
\begin{resume}
\section{Education}
\kant[1]
\fullhrulefill
\section{Research Experience}
\kant[1]
\fullhrulefill
\end{resume}
\end{document}
Output:
Best Answer
A simple way would be to just redefine the
rSection
environment:which yields:
One downside of the above is that if the
resume.cls
file makes changes to therSection
environment you will not see them. An alternative is to redefine the\MakeUppercase
macro when we are within therSection
environment.Notes:
I downloaded
resume.cls
from https://github.com/treyhunner/resume/blob/master/resume.cls. Not sure if this is the correct one though.I have replaced
\bf
with\bfseries
, and\em
with\emph{}
. Please see Does it matter if I use \textit or \it, \bfseries or \bf, etc, and What is the difference between \em and \emph?.Code: Redefine
rSection
environmentCode: Redefine
\MakeUppercase
withinrSection
: