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 margin
option to this class has the effect of moving the left margin in an amount correspanding to \sectionwidth
. You need a way to provide either text in the left margin, like the section headings, or text sperading accross the full page. Here is some code to achieve this:
\documentclass[margin, 10pt]{res}
\usepackage{helvet}
\setlength{\textwidth}{5.1in}
\newcommand{\lmargintext}[1]{\hbox to 0pt{\hss \vtop{\hsize=\sectionwidth #1}}}
\newlength{\bodywidth}
\setlength{\bodywidth}{\textwidth}
\newenvironment{fullwidthtext}{\hbox to \textwidth\bgroup\hss
\vtop\bgroup\hsize=\sectionwidth\advance\hsize by \bodywidth}{\egroup\egroup}
\begin{document}
\moveleft.5\hoffset\centerline{\large\bf John Smith} % Your name at the top
\moveleft\hoffset\vbox{\hrule width\resumewidth height 1pt}\smallskip
\moveleft.5\hoffset\centerline{123 Broadway}
\moveleft.5\hoffset\centerline{City, State 12345}
\moveleft.5\hoffset\centerline{(000) 111-1111 or (111) 111-1112}
\begin{resume}
\section{EDUCATION}
\textsl{Bachelor of Science,} Interdisciplinary Science \\
Rensselaer Polytechnic Institute, Troy, NY, expected December 1990 \\
Concentration: Computer Science \\
Minor: Management
\lmargintext{My Name}
\medbreak
\begin{fullwidthtext}
Writing text accross the whole page is done as
follows. There may be several sentences containing plenty of text.
And new paragraphs with long text.
\end{fullwidthtext}
\end{resume}
\end{document}
The above commands mimic the way the class builds the section headings. The source code of the class notes that such commands remain to be defined.
The fullwidthtext
environemnt defined above packs its argument in to one box and so will not break across pages. This is probably exactly what you need for a signature. However, an alternative list based definition that does allow page breaks is:
\newenvironment{fullwidthtext}{\list{}{\leftmargin-\sectionwidth\itemindent0pt}\item[]}{\endlist}
Best Answer
You need to change the
\sectionwidth
. Theres
class provides an own command for that task,\newsectionwidth
, which takes care about all the other lengths that depend on the\sectionwidth
: