The problem comes from the line
\section*{\refname}
used inside the thebibliography
environment as defined in article.cls
(the base document class for res.cls
). To prevent the asterisk, add the following lines to the preamble:
\makeatletter
\renewenvironment{thebibliography}[1]
{\list{\@biblabel{\@arabic\c@enumiv}}%
{\settowidth\labelwidth{\@biblabel{#1}}%
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\@openbib@code
\usecounter{enumiv}%
\let\p@enumiv\@empty
\renewcommand\theenumiv{\@arabic\c@enumiv}}%
\sloppy
\clubpenalty4000
\@clubpenalty \clubpenalty
\widowpenalty4000%
\sfcode`\.\@m}
{\def\@noitemerr
{\@latex@warning{Empty `thebibliography' environment}}%
\endlist}
\makeatother
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}
Best Answer
The class
res.cls
is somewhat old and it is not flexible; I would suggest you to consider using a more modern class to typeset your CV (SeeWriting Applications for a Job / CV
). To solve your particular problem, you can use\parbox
es: