\documentclass{article} \usepackage[OT2, T2A, T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[nomath]{cmsrb} \DeclareSymbolFont{cmsrbex}{OMX}{cmsrbex}{m}{n} \DeclareMathSymbol{\srbintop}{\mathop}{cmsrbex}{"52} \DeclareMathSymbol{\srbointop}{\mathop}{cmsrbex}{"48} \newcommand{\srbint}{\relax\srbintop\displaylimits} \newcommand{\srboint}{\relax\srbointop\displaylimits} \usepackage{amssymb} \input glyphtounicode.tex \pdfgentounicode=1 \usepackage{fancyvrb} \usepackage{tabularx} \newcommand\textcmsuper[1]{{\fontencoding{T2A}\fontfamily{cmr}\selectfont #1}} \newcommand{\example}[1]{{\fontencoding{T2A}\selectfont #1} & \textcmsuper{#1}} \newcommand\otinput[1]{{\fontencoding{T1}\selectfont \verb"#1"} & {\fontencoding{OT2}\selectfont #1}} \DeclareTextSymbolDefault{\dj}{T1} \begin{document} \title{The \texttt{cmsrb} package} \author{Uroš Stefanović\footnote{\texttt{urostajms@gmail.com}}} \date{\today{} v3.1} \maketitle \section{Why \textsf{cmsrb}?} The \textsf{cm-super} package provides great support for Cyrillic script in various languages, but there's a problem with italic variants of some letters for Serbian and Macedonian. The \textsf{cmsrb} package includes the correct shapes for italic letters \verb|\cyrg|, \verb|\cyrd|, \verb|\cyrp|, \verb|\cyrt| and letter \verb|\cyrb|. This package also has some improvements in letters and accents used in Serbian language. \section{Package Features} The \textsf{cmsrb} fonts are the extensions of the Computer Modern fonts for Serbian and Macedonian languages for \TeX{} (\LaTeX). Support files are provided for T1, TS1, T2A, X2 and OT2 encodings. Supported font styles are serif, sans-serif and mono, for size 10pt. This package is very simple to use: just put \begin{verbatim} \usepackage{cmsrb} \end{verbatim} in preamble of the document. \begin{table}[h!] \newcolumntype{C}{>{\centering\arraybackslash}X}% \begin{tabularx}{\textwidth}{|C C|C C|C C|} \hline cmsrb & cm-super & cmsrb & cm-super & cmsrb & cm-super \\ \hline \hline \example{\textit{бгдпт}} & \example{\textbf{\textit{бгдпт}}} & \example{ђћ} \\ \hline \example{б\textbf{б}\textit{б}\textsl{б}} & \example{\={а}\textsc{\={а}\f{и}}} & \example{\textit{đ\textbf{đ}}} \\ \hline \end{tabularx} \caption{Some \textsf{cm-super} and \textsf{cmsrb} differences.}\label{t2} \end{table} \section{OT2 Features} The OT2 encoding is modified to match the rules of Latin to Cyrillic transcription in Serbian language. Therefore, the \textsf{ts}, \textsf{kh}, \textsf{ch} and similar ligatures are removed from the encoding (see Table~\ref{t1}). In OT2 encoding Macedonian letters Ѓ and Ќ are added, with Montenegrin letters \CYRSJE{} and \CYRZJE. However, it is not recommended to use the OT2 encoding; better choice for Serbian language is T2A encoding and utf8 input. One can use OT2 encoding if they already have a document written in Latin---in which case it would be easy to transcribe it to Cyrillic. \begin{table} \newcolumntype{C}{>{\centering\arraybackslash}X}% \begin{tabularx}{\textwidth}{|C C|C C|C C|C C|} \hline Input & Output & Input & Output & Input & Output & Input & Output \\ \hline \hline \otinput{A} & \otinput{B} & \otinput{C} & \otinput{D} \\ \hline \otinput{E} & \otinput{F} & \otinput{G} & \otinput{H} \\ \hline \otinput{I} & \otinput{J} & \otinput{K} & \otinput{L} \\ \hline \otinput{M} & \otinput{N} & \otinput{O} & \otinput{P} \\ \hline \otinput{Q} & \otinput{R} & \otinput{S} & \otinput{T} \\ \hline \otinput{U} & \otinput{V} & \otinput{W} & \otinput{X} \\ \hline \otinput{Y} & \otinput{Z} & \otinput{\#} & \otinput{} \\ \hline \hline \otinput{a} & \otinput{b} & \otinput{c} & \otinput{d} \\ \hline \otinput{e} & \otinput{f} & \otinput{g} & \otinput{h} \\ \hline \otinput{i} & \otinput{j} & \otinput{k} & \otinput{l} \\ \hline \otinput{m} & \otinput{n} & \otinput{o} & \otinput{p} \\ \hline \otinput{q} & \otinput{r} & \otinput{s} & \otinput{t} \\ \hline \otinput{u} & \otinput{v} & \otinput{w} & \otinput{x} \\ \hline \otinput{y} & \otinput{z} & \otinput{+} & \otinput{} \\ \hline \hline \otinput{C1} & \otinput{D1} & \otinput{D2} & \otinput{D3} \\ \hline \otinput{E0} & \otinput{E1} & \otinput{E2} & \otinput{I0} \\ \hline \otinput{I1} & \otinput{J1} & \otinput{J2} & \otinput{L1} \\ \hline \otinput{N0} & \otinput{N1} & \otinput{P1} & \otinput{P2} \\ \hline \otinput{Z1} & \otinput{\v{C}} & \otinput{\'C} & \otinput{\DJ} \\ \hline \otinput{\v{S}} & \otinput{\v{Z}} & \otinput{LJ} & \otinput{Lj} \\ \hline \otinput{NJ} & \otinput{Nj} & \otinput{D\v{Z}} & \otinput{D\v{z}} \\ \hline \hline \otinput{c1} & \otinput{d1} & \otinput{d2} & \otinput{d3} \\ \hline \otinput{e0} & \otinput{e1} & \otinput{e2} & \otinput{i0} \\ \hline \otinput{i1} & \otinput{j1} & \otinput{j2} & \otinput{l1} \\ \hline \otinput{\i} & \otinput{n1} & \otinput{p1} & \otinput{p2} \\ \hline \otinput{z1} & \otinput{\v{c}} & \otinput{\'c} & \otinput{\dj} \\ \hline \otinput{\v{s}} & \otinput{\v{z}} & \otinput{lj} & \otinput{} \\ \hline \otinput{nj} & \otinput{} & \otinput{d\v{z}} & \otinput{} \\ \hline \hline \otinput{\char20} & \otinput{\char21} & \otinput{\char28} & \otinput{\char29} \\ \hline \otinput{\'G} & \otinput{\'K} & \otinput{\'g} & \otinput{\'k} \\ \hline \otinput{\'S} & \otinput{\'Z} & \otinput{\'s} & \otinput{\'z} \\ \hline \end{tabularx} \caption{OT2 encoding in \textsf{cmsrb} package.}\label{t1} \end{table} \section{T1 Features} The T1 encoding now support conversion from Cyrillic to Latin script (see Example~7). \section{Math} The \textsf{cmsrb} package load default Computer Modern math fonts, but load only fonts with size lower or equal 10pt, for better visual effect. Also, it change integral sign from $\int$ to $\srbint$ (upright integral is traditionally used in Serbian language, with \verb|\limits| option). To prevent change for the integral symbols, it's enough to use \textsf{noint} option: \begin{verbatim} \usepackage[noint]{cmsrb} \end{verbatim} Also, in Serbian language is better to use the symbols $\leqslant$ and $\geqslant$ than the symbols $\leq$ и $\geq$. If one use package \textsf{amssymb}, this signs will be replaced automatically (also $\nleqslant$ and $\ngeqslant$ will be used). Of course, one can stop this change with option \textsf{nosymb}: \begin{verbatim} \usepackage[nosymb]{cmsrb} \end{verbatim} However, one can use \textsf{nomath} option to prevent any change in math fonts: \begin{verbatim} \usepackage[nomath]{cmsrb} \end{verbatim} \section{Examples} \noindent\textbf{Example 1: } \begin{Verbatim} \documentclass{article} \usepackage{cmsrb} \usepackage[OT2,T1]{fontenc} \usepackage[serbian]{babel} \newcommand{\test}% {Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.} \begin{document} \test \\ \fontencoding{OT2}\selectfont \test \\ Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a \end{document} \end{Verbatim} \noindent\textbf{Result 1:} \\ \indent Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\ {\fontencoding{OT2}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\ Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a}\\[1cm] \noindent\textbf{Example 2: } \begin{Verbatim} \documentclass{article} \usepackage{cmsrb} \usepackage[OT2,T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[serbian]{babel} \newcommand{\test}% {Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos.} \begin{document} \textit{\test} \\ \fontencoding{OT2}\selectfont \textit{\test} \end{document} \end{Verbatim} \noindent\textbf{Result 2:} \\ \indent \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.} \\ {\fontencoding{OT2}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}}\\[1cm] \fontencoding{T2A}\selectfont \noindent\textbf{Example 3: } \begin{Verbatim} \documentclass{article} \usepackage{cmsrb} \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage[serbianc]{babel} \DeclareTextSymbolDefault{\dj}{T1} \begin{document} \textit{Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos.\\ Љубазни фењерџија чађавог лица хоће да ми покаже штос.} \\ Акценти: \'{и}\`{и}\C{и}\f{и}\={и}\^{и}\"{и}\u{и} \end{document} \end{Verbatim} \noindent\textbf{Result 3:} \\ \indent {\textit{Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos.\\ Љубазни фењерџија чађавог лица хоће да ми покаже штос.} \\ Акценти: \'{и}\`{и}\C{и}\f{и}\={и}\^{и}\"{и}\u{и}}\\[1cm] \noindent\textbf{Example 4: } \begin{Verbatim} \documentclass{article} \usepackage{cmsrb} \usepackage[T2A]{fontenc} \usepackage[utf8]{inputenc} \usepackage[serbianc]{babel} \begin{document} \textit{абвгдђѓежз\'{з}ѕијклљмнњопрс\'{с}тћќуфхцчџш} \end{document} \end{Verbatim} \noindent\textbf{Result 4:} \\ \indent {\textit{абвгдђѓежз\'{з}ѕијклљмнњопрс\'{с}тћќуфхцчџш}}\\[1cm] \noindent\textbf{Example 5: } \begin{Verbatim} \documentclass{article} \usepackage{cmsrb} \newcommand{\ud}{\,\mathrm{d}} \begin{document} $$ \int_0^1 e^x\ud x \geq 0 $$ \end{document} \end{Verbatim} \noindent\textbf{Result 5:} \\ $$ \srbint_0^1 e^x\,\mathrm{d} x \geqslant 0 $$ \\[1cm] \noindent\textbf{Example 6: } \begin{Verbatim} \documentclass{article} \usepackage[nomath]{cmsrb} \newcommand{\ud}{\,\mathrm{d}} \begin{document} $$ \int_0^1 e^x\ud x \geq 0 $$ \end{document} \end{Verbatim} \noindent\textbf{Result 6:} \\ $$ \int_0^1 e^x\,\mathrm{d} x \geq 0 $$\\[1cm] \noindent\textbf{Example 7: } \begin{Verbatim} \documentclass{article} \usepackage{cmsrb} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[serbian]{babel} \begin{document} Љубазни фењерџија чађавог лица хоће да ми покаже штос. \end{document} \end{Verbatim} \noindent\textbf{Result 7:} \\ \indent Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos. \section{Version history} \subsection*{3.1} \begin{itemize} \item Bugs fixed. \item Options \textsf{noint} and \textsf{nosymb} are active. \item Symbols $\leq$, $\geq$, $\nleq$, $\ngeq$ are changed. \end{itemize} \subsection*{3.0} \begin{itemize} \item Letter б is modificated. \item Cyrillic to Latin conversion is added. \item Math fonts are changed (\textsf{nomath} option is active). \item Upright integral sign is added. \end{itemize} \subsection*{2.0} \begin{itemize} \item Added support for the letters {\fontencoding{OT2}\selectfont \'g, \'k, \'s, \'z}. \end{itemize} \subsection*{1.1} \begin{itemize} \item The separate \verb|.map| files merged into one. \end{itemize} \end{document}