TeX fonts have only 256 slots. And you can't mix encodings without telling LaTeX to do it; \textcyrillic
defined by babel
with the russian
option does this. The last specified encoding becomes the default one.
This should be a complete list of sans serif fonts available also in T2A encoding (for cyrillic):
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\renewcommand{\familydefault}{\sfdefault}
\begin{document}
\renewcommand{\sfdefault}{PTSans-TLF}\normalfont
\section{PTSans}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfdefault}{fds}\normalfont
\section{Droid}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfdefault}{fco}\normalfont
\section{Comforta}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfdefault}{fca}\normalfont
\section{Cantarell}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfdefault}{iwona}\normalfont
\section{Iwona}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfdefault}{fos}\normalfont
\section{OpenSans}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\end{document}
Of course the declarations should be given in the preamble, this is just to show the specimens.
With the following example, I show the result of having Helvetica (Arial is similar) for Latin text and one of the previous fonts for Russian text in cyrillic. Take your pick and define \sfcyrillic
to the chosen family.
\documentclass{article}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[russian,english]{babel}
\renewcommand{\sfdefault}{phv}
\renewcommand{\familydefault}{\sfdefault}
\newcommand{\sfcyrillic}{} %%% Add here your preference
\usepackage{xpatch}
\xpatchcmd{\Russian}
{\selectfont}
{\fontfamily{\sfcyrillic}\selectfont}
{}{}
\xshowcmd\Russian
\begin{document}
\renewcommand{\sfcyrillic}{PTSans-TLF}\normalfont
\section{PTSans}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfcyrillic}{fds}\normalfont
\section{Droid}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfcyrillic}{fco}\normalfont
\section{Comforta}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfcyrillic}{fca}\normalfont
\section{Cantarell}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfcyrillic}{iwona}\normalfont
\section{Iwona}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\renewcommand{\sfcyrillic}{fos}\normalfont
\section{OpenSans}
Todd is a cat. \textcyrillic{у меня есть машина. я очень харашо.}
\end{document}
The problem seems to be in the fact that the European Modern font have a slightly thinner em than Computer Modern.
If I load tabulary
with the debugshow
option, I get
Table
Target Width: 345.0pt
\tabcolsep: 6.0pt \arrayrulewidth: 0.4pt \doublerulesep: 2.0pt
\tymin: 10.0pt \tymax: 690.0pt
Col 1: Initial=22.00003pt -12.0pt Final=10.00003pt > tymin
Line Width: 333.0pt, Natural Width: 10.00003pt, Ratio: 1
10.00003pt,
Total:10.00003pt
for the first tabulary
when T1
is not loaded. Conversely, I get
Table
Target Width: 345.0pt
\tabcolsep: 6.0pt \arrayrulewidth: 0.4pt \doublerulesep: 2.0pt
\tymin: 10.0pt \tymax: 690.0pt
Col 1: Initial=21.99756pt -12.0pt Final=9.99756pt < tymin
Package tabulary Warning: No suitable columns! on input line 10.
Line Width: 323.00244pt, Natural Width: 0.0pt, Ratio: 1
9.99756pt,
Total:0.0pt
when T1
is loaded.
If I add
\AtBeginDocument{\setlength{\tymin}{1em}}
to the document preamble, the diagnostic is
Table
Target Width: 345.0pt
\tabcolsep: 6.0pt \arrayrulewidth: 0.4pt \doublerulesep: 2.0pt
\tymin: 9.99756pt \tymax: 690.0pt
Col 1: Initial=21.99756pt -12.0pt Final=9.99756pt > tymin
Line Width: 333.0pt, Natural Width: 9.99756pt, Ratio: 1
9.99756pt,
Total:9.99756pt
that avoids the warning.
Best Answer
Note that this is font encoding (determines what kind of font is used), not input encoding.
The default font encoding (OT1) of TeX is 7-bit and uses fonts that have 128 glyphs, and so do not include the accented characters as individual glyphs. So a letter ö is made by adding an accent to the existing 'o' glyph.
The T1 font encoding is an 8-bit encoding and uses fonts that have 256 glyphs. So an 'ö' is an actual single glyph in the font. Many of the older fonts have had T1 variants devised for them as well, and many newer fonts are available only in T1. I think "Computer Modern" was originally OT1, and "Latin Modern" is T1. (Look at OT1 font encoding and T1 font encoding.)
If you don't use
\usepackage[T1]{fontenc}
,