# How to change letter spacing / condense letters together

I'm starting up with LaTeX today in order to be able to produce better-looking PDFs for university assignments. I'm working through a list of small exercises, handed out by a volunteer professor, and a certain one has stalled me a bit.

This is what I'm supposed to have in my output:

So, to tackle it, here's the code I wrote:

\section{\gt Άσκηση 1η} \gt
\fontsize{14}{16.8} \selectfont Α
\fontsize{16}{19.2} \selectfont Β
\fontsize{20}{24}   \selectfont Γ
\fontsize{24}{28.8} \selectfont Δ
\fontsize{28}{33.6} \selectfont Ε
\fontsize{32}{38.4} \selectfont Ζ
\fontsize{36}{43.2} \selectfont Η
\fontsize{40}{48}   \selectfont Θ
\fontsize{44}{52.8} \selectfont Ι
\fontsize{40}{48}   \selectfont κ
\fontsize{36}{43.2} \selectfont λ
\fontsize{32}{38.4} \selectfont μ
\fontsize{28}{33.6} \selectfont ν
\fontsize{24}{28.8} \selectfont ξ
\fontsize{20}{24}   \selectfont ο
\fontsize{16}{19.2} \selectfont π


The output is, of course, the following:

Obviously I still have to do something for the letter spacing, condense them together. I've gone through at least 6 similar topics on tex.stackexchange and I haven't been able to solve it using the already proposed solutions.

Any help related to my question or with any problems in my code (maybe I've written redundant lines) would be greatly appreciated.

I'm using TeXStudio and MiKTeX.

• You have a 2 word spaces (from end of line, and after \fontsize{}{}) after each letter: also you don't want to change the baselineskip after each letter (it has no effect anyway as the same baseline is used for the whole paragraph Oct 14, 2013 at 16:51
• @DavidCarlisle I fixed that right now, I keep forgetting this isn't a compiler that ignores whitespaces. Also added {}s at the end of statements. I'm still in need of spacing, though. Oct 14, 2013 at 17:03

This is homework, so I'll only give a hint: no \fontsize command is used, just standard documented commands.

It's obviously an exercise on the font size changing commands:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[greek]{babel}
\begin{document}
{\itshape
\tiny Α%
\scriptsize Β%
\footnotesize Γ%
\small Δ%
\normalsize Ε%
\large Ζ%
\Large Η%
\LARGE Θ%
\huge Ι%
\huge κ%
\LARGE λ%
\Large μ%
\large ν%
\normalsize ξ%
\small ο%
\footnotesize π%
\scriptsize ρ%
\tiny ς}
\end{document}

• Did you play with \tiny, \footscript etc? Oct 14, 2013 at 18:08
• @DimitrisSfounis Exactly. Oct 14, 2013 at 19:35
• I have noticed something. At the end of your letters you place a single %. Without it, my letters have spacing between them. With it, they stick together. I was curious about that. Oct 15, 2013 at 10:01

Manually changing the spacing between words is usually not required or recommended. I mention the spacing between words because, as David noted, you are adding unwanted spaces between your letters, and therefore each is treated as a word:

\fontsize{14}{16.8}[*space*]\selectfont Α[*space*]
\fontsize{16}{19.2}[*space*]\selectfont Β[*space*]
...


Also, as you already figured, a more sensible approach is to use the built-in size commands.

\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage[english,greek]{babel}

\begin{document}
\textit{\scriptsize A\footnotesize B\small G\normalsize D\large E\Large Z\LARGE H\huge J\Huge I\Huge k\huge l\Large m\large n\normalsize x\small o\footnotesize p\scriptsize r\tiny s}
\end{document}


This question inspires me to create the following command, called \wavytext:

\usepackage{intcalc}

\newcounter{countwavytext}
\makeatletter
\newcommand{\@wavychar}[1]{%
\ifnum\intcalcMod{\value{countwavytext}}{19}=0\tiny#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=1\scriptsize#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=2\footnotesize#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=3\small#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=4\normalsize#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=5\large#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=6\Large#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=7\LARGE#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=8\huge#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=9\Huge#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=10\huge#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=11\LARGE#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=12\Large#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=13\large#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=14\normalsize#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=15\small#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=16\footnotesize#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=17\scriptsize#1\else%
\ifnum\intcalcMod{\value{countwavytext}}{19}=18\tiny#1\else%
\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
\stepcounter{countwavytext}}
\newcommand{\wavytext}[1]{%
\@tempswafalse
\@for\next:=#1\do
{\if@tempswa\else%
\@tempswatrue\fi%
\@wavychar{\next}}%
}
\makeatother


The effect of the command is demonstrate as follow:

\textit{\wavytext{A,B,Γ,Δ,E,Ζ,Η,Θ,I,Κ,Λ,M,N,Ξ,O,Π,Ρ,Σ,Τ}}

\textit{\wavytext{α,β,γ,δ,ε,ζ,η,θ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,σ,τ}}


produces

I am not satisfy by the current definition, though, as each character must be separated by ,. One possible solution is to redefine \@forloop and \@iforloop. But I guess that creates more troubles than it solves...

• If you were on XeLaTeX or LuaLaTeX the Greek characters would be single tokens; in (pdf)LaTeX they could be two or more tokens (multibyte in UTF-8) so a general solution without separating commas would be much more complicated: Greek letters are two byte long, others can be one, three or four. Oct 15, 2013 at 8:28
• How nice is that! Oct 15, 2013 at 9:56