% \iffalse %\ProvidesFile{vndriver.dtx}[2003/11/01 v01.01 VNR.KTV.DTX.driver] % \fi % % \section{Driver} % % \subsection{Common Part} % % \begin{macrocode} %<*test|rm|it|csc> % \end{macrocode} % % |version_check| was introduced in |dc1.3|. % \begin{macrocode} version_check(1,0); % \end{macrocode} % % Accessories for polish special letters. Pseudoparameters. % % \begin{macrocode} input exaccess; input expseudo; % \end{macrocode} % \begin{macrocode} mode_setup; font_setup; pseudo_setup; % \end{macrocode} % % \begin{macrocode} % % \end{macrocode} % % \subsection{Test Mode} % % \begin{macrocode} % set_lowercase; % input vnaccent; % input_lr_fam; % input_li_fam; % \end{macrocode} % \begin{macrocode} %<*test> set_uppercase; input vnaccent; input_ur_fam; % % \end{macrocode} % % % \subsection{Only for T5supp} % % \subsubsection{Common Part} % % \begin{macrocode} %<*t5supp> input exbraces; input expunct; % input exaccent; input exsign; % % \end{macrocode} % % \subsubsection{Roman} % % \begin{macrocode} %<*!test&rm&t5supp> set_lowercase; input vnaccent; input vndothook; input vnminus; input vnlacc; input vnclr; set_uppercase; input vnaccent; input vnuacc; input vncur; % % \end{macrocode} % % \subsubsection{Italic} % % \begin{macrocode} %<*!test&it&t5supp> set_lowercase; input vnaccent; input vndothook; input vnminus; input vnlacc; input vncli; set_uppercase; input vnaccent; input vnuacc; input vncur; % % \end{macrocode} % % \subsubsection{CSC} % % \begin{macrocode} %<*!test&csc&t5supp> set_uppercase; input vnaccent; input vnuacc; input vncur; % % \end{macrocode} % % If the variable |gen_t5supp_supp| is already known, % the |next| equals |endinput| and the driver stops here; % otherwise, the |next| is |relax| and nothing happens. % % \begin{macrocode} %<*!test&!t5supp&csc> input exrulett; input exbraces; input expunct; input exsign; input exromp; input exrdigit; set_uppercase; input vnaccent; input vncur; % % \end{macrocode} % % \subsection{Something from EC font} % % Letters from |EC| font. % \begin{macrocode} %<*!test&!t5supp&(rm|it)> input exbraces; input expunct; input exaccent; input exsign; input exrlig; input exromp; input exrulett; input exrllett; input exrdigit; % % \end{macrocode} % % \subsection{Lowercase Letters} % % \begin{macrocode} %<*!test&!t5supp&(rm|it)> set_lowercase; input vnaccent; % % \end{macrocode} % % \subsubsection{Roman fonts} % % \begin{macrocode} %<*!test&!t5supp&rm> input vnclr; input vndothook; input vnminus; % % \end{macrocode} % % \subsubsection{Italic fonts} % % \begin{macrocode} %<*!test&!t5supp&it> input vncli; input vndothook; input vnminus; % % \end{macrocode} % % \subsection{Uppercase Letters} % % \begin{macrocode} %<*!test&!t5supp&(rm|it)> set_uppercase; input vnaccent; input vncur; % % \end{macrocode} % % \subsection{Only for CSC} % % \begin{macrocode} %<*csc> % \end{macrocode} % % \begin{macrocode} boolean is_small_cap; is_small_cap:=true; % \end{macrocode} %%% fine higher % the `higher' values are used while putting accents and attaching ogoneks % \begin{macrocode} forsuffixes $ = u,o, letter_fit, x_height, bar_height, body_height,stem: higher.$.#:=$.#; higher.$:=$; endfor % \end{macrocode} %%% fine lower % \begin{macrocode} begingroup % \end{macrocode} % \begin{macrocode} forsuffixes $ = u, width_adj, cap_serif_fit, letter_fit, body_height, cap_height, x_height, bar_height, comma_depth, flare, dot_size, cap_hair, stem, cap_stem, cap_curve, cap_ess, cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut, o, apex_o: save $; $.#:=lower.$.#; endfor fudge:=lower.fudge; % \end{macrocode} % optional part: % \begin{macrocode} forsuffixes $ = depth_corr, left_corr, top_breadth_corr, tip_breadth_corr, tip_xcorr, tip_ycorr, pre_angle, post_angle, pre_limit, post_limit, pre_lightness, post_lightness, pre_deflexion, post_deflexion, cap_flat, ogonek_pen#: if known lower.$: $:=lower.$; fi endfor % \end{macrocode} % \begin{macrocode} input expseudo; % \end{macrocode} % \begin{macrocode} font_setup; pseudo_setup; % \end{macrocode} % \begin{macrocode} %<*!test&!t5supp> input_lig excspl; % % \end{macrocode} % \begin{macrocode} %<*test> set_smallcap; input vnaccent; input_sc_fam; endgroup % % \end{macrocode} % % \begin{macrocode} %<*!test&t5supp> set_smallcap; input vnaccent; input vnlacc; input vncur; input txpseudo; font_setup; pseudo_setup; input txaccent; input vndothook; input vnminus; % \end{macrocode} % % \begin{macrocode} endgroup % % \end{macrocode} % % \begin{macrocode} %<*!test&!t5supp> extra_endchar := extra_endchar & "charcode:=charcode+code_offset"; code_offset := ASCII"a" - ASCII"A"; input exrulett; % upper case (majuscules) suppress_i_dot := true; code_offset := 0; % \end{macrocode} % \begin{macrocode} set_smallcap; input vnaccent; input vncur; % \end{macrocode} % \begin{macrocode} input txpseudo; font_setup; pseudo_setup; input txaccent; input vndothook; input vnminus; % \end{macrocode} % % \begin{macrocode} endgroup; % \end{macrocode} % % \begin{macrocode} % % \end{macrocode} % \begin{macrocode} % % \end{macrocode} % % \subsection{Font Parameters} % % \subsubsection{Common Part} % % \begin{macrocode} %<*!test&!t5supp&(rm|it|csc)> font_coding_scheme := "Vietnamese TeX Font Encoding"; boundarychar := oct"027"; font_slant slant; font_x_height x_height#; font_cap_height cap_height#; font_asc_height asc_height#; % % \end{macrocode} % % \begin{macrocode} %<*!test&!t5supp&(rm|it|csc)> font_acc_cap_height (cap_height#+acc_height#); font_desc_depth desc_depth#; font_max_height (max(asc_height#,body_height#, cap_height#+acc_height#)); font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#)); font_baselineskip max(1.2*designsize,body_height#+paren_depth#); % font_digit_width % set inside the digits file % font_cap_stem % set after the programme of the capital I % % \end{macrocode} % % \subsubsection{Roman} % % \begin{macrocode} %<*!test&!t5supp&rm> if monospace: font_normal_space 9u#; % no stretching or shrinking font_quad 18u#; font_extra_space 9u#; input vnmligtb; % ligature := monospaced fonts else: font_normal_space 6u# + 2letter_fit#; font_normal_stretch 3u#; font_normal_shrink 2u#; font_quad 18u# + 4letter_fit#; font_extra_space 2u#; input vnrligtb; % ligature := not monospaced fonts fi % % \end{macrocode} % % \subsubsection{Italic} % % \begin{macrocode} %<*!test&!t5supp&it> if monospace: font_normal_space 9u#; % no stretching or shrinking font_quad 18u#; font_extra_space 9u#; letter_fit# := letter_fit := 0; input vnmligtb; % ligature := monospaced else: font_normal_space 6u#+2letter_fit#; font_normal_stretch 3u#; font_normal_shrink 2u#; font_quad 18u#+4letter_fit#; font_extra_space 2u#; input vniligtb; % ligature := proportionally spaced fi % % \end{macrocode} % % \subsubsection{CSC} % % \begin{macrocode} %<*!test&csc&!t5supp> if monospace: font_normal_space 9u#; % no stretching or shrinking font_quad 18u#; font_extra_space 9u#; input vnmligtb; % do the monospace ligature programs else: font_normal_space 6u# + 2letter_fit#; font_normal_stretch 3u#; font_normal_shrink 2u#; font_quad 18u# + 4letter_fit#; font_extra_space 2u#; input vncligtb; % do the ligature programs, not for monospaced fonts fi % % \end{macrocode} % % \endinput