%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Contents: Customising LaTeX output % $Id: custom.tex 172 2008-09-25 05:26:50Z oetiker $ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{\LaTeX-г тохируулах} \begin{intro} ђмн°х білгіідэд судалсан тушаалуудын тусламжтайгаар баримтыг гојмсог биш ч гэсэн хэвлэлийн горимоор уншихад эвтэйхэн, эмх цэгцтэй аятайхан бэлтгэж чаддаг боллоо. Гэвч \LaTeX{}-ийн тушаал, хірээлліід эсвэл зарим тушаалын боловсруулалтын дараах ір дін, хэрэглэгчийн шаардлагад нийцэхгій байж болох юм. Энэ білэгт \LaTeX-ийн боловсруулалтаар іісэх нэгэн хэвийн загварыг °°рчл°х шинэ боломжийн талаар °гіілнэ. \end{intro} \section{Шинэ тушаал, хірээлэл ба багцууд} Энэхіі номд тушаал бірийг тайлбарлахдаа тэдгээрийг хайрцаглаж, номын т°гсг°лийн товъјгт хавсарган оруулсан байгааг анзаарсан байх. “інийг гійцэтгэхдээ тухай бірд нь \LaTeX{} тушаалыг ашиглалгійгээр ажиллагааг х°нг°вчл°х ііднээс шинээр тушаал болон хірээллийг тодорхойлсон \wi{багц}ыг дараах маягаар іісгэж ашигласан болно: \begin{example} \begin{lscommand} \ci{dum} \end{lscommand} \end{example} Дээрх жишээнд хайрцаглах шинэ хірээллийг илтгэх \ci{lscommand}, тушаалын нэрийг бичиж товъјгт хавсаргах \ci{ci} гэсэн тушаалуудыг шинээр ашиглаж байна. Уг номын арын товъјгоос \ci{dum} тушаалын, тііний бичигдэн орсон хуудас бірийн дугаарыг харж болно. Хэрэв тушаал бірийг хайрцаглахгій гэвэл \texttt{lscommand} хірээлэлд °°рчл°лт хийхэд хангалттай. Энэ нь \LaTeX{}-ийн хайрцаглах тушаалыг олон дахин бичиж, тіінийгээ нэгбірчлэн дахин засварлахаас зайлсхийх давуу талтай. \subsection{Шинэ тушаалууд} Шинээр тушаал іісгэхдээ \begin{lscommand} \ci{newcommand}\verb|{|% \emph{нэр}\verb|}[|\emph{тоо}\verb|]{|\emph{тодорхойлолт}\verb|}| \end{lscommand} \noindent гэсэн індсэн хојр хувьсагч біхий тушаалыг ашиглана. Тэдгээр хувьсагчдыг тайлбарлавал: \emph{нэр} гэдэг нь тухайн іісгэхийг хіссэн тушаалын нэр, \emph{тодорхойлолт} гэдэг нь уг тушаал. Д°рв°лжин хаалт доторх \emph{тоо} хувьсагч нь шинээр іісгэх тушаалд агуулагдах хувьсагчийн тоог (9 хіртэлх утга авна) илтгэнэ. Хэрэв іінийг б°гл°хгій орхивол іінд 0 гэсэн утга харгалзана, °°р°°р хэлбэл энд хувьсагч оноон °г°хгій байж болно. Ойлгомжтой болгох ііднээс дараах хојр жишээг авч ізье. Эхний жишээнд \ci{tnss} гэсэн шинэ тушаал тодорхойлогджээ. Энэ тушаал нь ``\LaTeXe-ийн танилцуулга'' гэсэн °гіілбэрийг илэрхийлж байна. Иймэрхіі тушаал нь номын нэрийг ахин дахин дурдахад, ажиллагааг х°нг°вчл°х ііргийг гійцэтгэдэг. \begin{example} \newcommand{\tnss}{\LaTeXe-ийн танилцуулга} Энэ бол ``\tnss'' \ldots{} ``\tnss'' \end{example} Удаах жишээнд хувьсагчийг хэрхэн тодорхойлохыг ізіілжээ. Хувьсагчийн утгыг \verb|#1| гэсэн хаягт оноох б°г°°д хэрэв нэгээс олон хувьсагч тодорхойлох бол \verb|#2| гэх мэтээр зарлана. \begin{example} \newcommand{\txsit}[1] {Энэ бол \LaTeXe-ийн товч\emph{#1} танилцуулга} % in the document body: \begin{itemize} \item \txsit{ бус} \item \txsit{хон} \end{itemize} \end{example} \LaTeX{} ижил нэрээр шинэ тушаал іісгэдэггій. Харин ііний оронд \ci{renewcommand} гэсэн тушаалыг ашиглаж болно. Энэ нь бичлэгийн хувьд \verb|\newcommand| тушаалтай ижил. Зайлшгій тохиолдолд \ci{providecommand} тушаалыг ашиглаж болно. Энэ нь ажиллагааны хувьд \ci{newcommand} тушаалтай т°стэй боловч хэрэв уг тушаал дахин тодорхойлогдож байгаа тохиолдолд \LaTeXe{} іінийг хэрэгсдэггій. Энд \LaTeX{} тушаалын ард орсон сул зайтай холбоотой асуудал х°нд°гд°н°. Энэ талаарх дэлгэрэнгійг \pageref{whitespace}-р хуудаснаас ізнэ іі. \subsection{Шинэ хірээлліід} \verb|\newcommand| тушаалтай яг адилаар \ci{newenvironment} тушаалыг ашиглан шинэ хірээлэл іісгэж бас болно: \begin{lscommand} \ci{newenvironment}\verb|{|% \emph{нэр}\verb|}[|\emph{тоо}\verb|]{|% \emph{эхлэл}\verb|}{|\emph{т°гсг°л}\verb|}| \end{lscommand} \ci{newenvironment} тушаалд м°н л дурын хувьсагч тодорхойлж болно. \emph{Эхлэл} хувьсагч доторх нь хірээлэл доторх текстээс урьтаж биелэх б°г°°д \emph{т°гсг°л} хувьсагч доторх нь \verb|\end{|\emph{нэр}\verb|}| тушаалын дараагаар биелнэ. Доорх жишээнд \ci{newenvironment} тушаалыг хэрхэн ашиглахыг ізіілжээ. \begin{example} \newenvironment{king} {\rule{1ex}{1ex}% \hspace{\stretch{1}}} {\hspace{\stretch{1}}% \rule{1ex}{1ex}} \begin{king} Хілцэнгій номхон албат минь \ldots \end{king} \end{example} \emph{Тоо} гэсэн хувьсагч нь \verb|\newcommand| тушаалд орсонтой ижил іірэг гійцэтгэнэ. \LaTeX{}, дахин хірээлэл тодорхойлохыг з°вш°°р°хгій б°г°°д харин \ci{renewenvironment} тушаалаар °мн° тодорхойлсон тушаалд °°рчл°лт оруулж болно. Энэ нь бичлэгийн хувьд м°н \ci{newenvironment} тушаалтай адилхан. Дээрх жишээнд орсон тушаалуудтай хожим танилцах болно. \ci{rule} тушаалыг \pageref{sec:rule}-р хуудаснаас, \ci{stretch} тушаалыг \pageref{cmd:stretch}-р хуудаснаас, тіінчлэн \ci{hspace} тушаалын талаарх дэлгэрэнгійг \pageref{sec:hspace}-р хуудаснаас тус тус ізэж болно. \subsection{Иліідэл зай} Шинэ хірээлэлд алдаанд тооцож болохуйц иліідэл зай іісэх нь бий. Жишээлбэл, эхлэл болон т°гсг°лд°° догол м°р авдаггій хірээлэл іісгэх гээд ізье. \ci{ignorespaces} тушаал нь хірээллийн эхний хэсэг биелэгдсэний дараа тохиолдох сул зайг хэрэгсэхгій ба \LaTeX{}-д т°гсг°л хэсэгт арай °°р \ci{ignorespacesafterend} гэсэн тушаалыг ашигладаг. \begin{example} \newenvironment{simple}% {\noindent}% {\par\noindent} \begin{simple} Зіін захын\\ зайг ажигла. \end{simple} Энд м°н\\адил. \end{example} \begin{example} \newenvironment{correct}% {\noindent\ignorespaces}% {\par\noindent% \ignorespacesafterend} \begin{correct} Зіін захад\\зай алга. \end{correct} Энд м°н\\адил. \end{example} \subsection{\LaTeX-ийн боловсруулах тушаал} Юникс т°рлийн ійлдлийн системіідтэй ажиллах іед \LaTeX{} баримтыг боловсруулахад Makefiles ашиглах шаардлага тулгарч болох юм. \LaTeX{} дээр, боловсруулах тушаал тііний хувьсагчийн тусламжтайгаар нэг баримтыг хэд хэдэн янзаар іісгэн бэлтгэж болно. Хэрэв баримтдаа дараах тушаалыг нэмж оруулъя: \begin{verbatim} \usepackage{ifthen} \ifthenelse{\equal{\blackandwhite}{true}}{ % "хар цагаан" хувилбараар боловсруулах.. }{ % "°нг°т" хувилбараар боловсруулах.. } \end{verbatim} Тэгвэл \LaTeX{} дээр дараах командыг биеліілж болно: \begin{verbatim} latex '\newcommand{\blackandwhite}{true}\input{test.tex}' \end{verbatim} Энд \verb|\blackandwhite| тушаал биелэгдэх ба хэрэв \verb|\blackandwhite| тушаалын утгыг false болговол баримтыг °нг°т°°р боловсруулан гаргана. \subsection{Шинээр багц іісгэх} Баримтын эхлэлд олон тооны шинэ хірээлэл болон тушаал іісгэх нь баримтыг нэлээд сунжруулах талтай байдаг. “інээс зайлсхийх алхам нь тэдгээр хірээлэл болон тушаалуудыг тусад нь шинэ \LaTeX{} багцад оруулж улмаар іісгэсэн багцаа \ci{usepackage} тушаалаар баримтдаа дуудаж оруулах явдал юм. \begin{figure}[!htbp] \begin{lined}{\textwidth} \begin{verbatim} % Тобиас Оетикерын туршилтын багц \ProvidesPackage{demopack} \newcommand{\tnss}{\LaTeXe-ийн товч бус танилцуулга} \newcommand{\txsit}[1]{\LaTeXe-ийн товч\emph{#1} танилцуулга} \newenvironment{king}{\begin{quote}}{\end{quote}} \end{verbatim} \end{lined} \caption{Жишээ багц.} \label{package} \end{figure} Багц іісгэнэ гэдэг нь ер°нхийд°° баримтын эхлэл хэсгийг, \texttt{.sty} °рг°тг°лтэй файлд салган оруулах явдал б°г°°д тэрхіі багц файлын эхлэлд дараах тушаал зарлагдсан байна \begin{lscommand} \ci{ProvidesPackage}\verb|{|\emph{багцын нэр}\verb|}| \end{lscommand} \noindent \verb|\ProvidesPackage| тушаалын тусламжтайгаар \LaTeX{} тухайн ашиглаж буй багцын нэрийг мэдээлэх т°дийгій уг багцыг давхардуулан ачаалах іеийн алдааны мэдээллийг харуулах болно. Дээрх тушаалыг агуулсан бяцхан жишээг \ref{package}-р зурагт ізіілэв. \section{Фонт ба тііний хэмжээ} \subsection{Фонт °°рчл°х тушаалууд} \index{фонт}\index{фонтын хэмжээ} \LaTeX{}, баримтын логик бітцээс (білэг, зійлчлэл, \ldots) хамааруулан зохих фонт тііний хэмжээг тохируулдаг хэдий ч заримдаа тохиргоог гараар °°рчл°н оруулах шаардлага гардаг. Тохиргоог °°рчл°хд°° \ref{fonts} болон~\ref{sizes}-р хіснэгтіідэд ізіілсэн тушаалуудыг ашиглана. Фонт бірийн бодит хэмжээ нь тэдгээрийн загварыг тодорхойлох ба эдгээр нь баримтын т°р°л болон сонголтоос хамаардаг. \ref{tab:pointsizes}-р хіснэгтэд фонт бірийн, тэдгээрийг т°л°°л°х тушаалуудаар ердийн баримтын т°р°лд іісэх бодит хэмжээг харуулав. \begin{example} {\small Жижиг \textbf{тод}} {\Large том \textit{налуу}.} \end{example} \LaTeXe{}-ийн нэг чухал онцлог чанар бол °мн° тодорхойлсон фонтын т°л°вийг хэвээр хадгалах буюу °°рчилж болдог фонтын т°л°вийн тусгаарлагдмал байдал юм. \emph{Математик горимд} текстийн фонтыг °°рчл°х \emph{тушаалыг} ашиглахдаа \emph{математик горимоос} ердийн текст загвар уруу шилжих б°г°°д хэрэв математик фонтыг °°рчл°х бол \ref{mathfonts}-р хіснэгтэд ізіілсэн тусгай тушаалуудыг ашиглана. \begin{table}[!bp] \caption{Фонтууд.} \label{fonts} \begin{lined}{12cm} % % Alan suggested not to tell about the other form of the command % eg \verb|\sffamily| or \verb|\bfseries|. This seems a good thing to me. % \begin{tabular}{@{}rl@{\qquad}rl@{}} \fni{textrm}\verb|{...}| & \textrm{\wi{босоо}}& \fni{textsf}\verb|{...}| & \textsf{\wi{хэрчлээсгій}}\\ \fni{texttt}\verb|{...}| & \texttt{бичгийн машины}\\[6pt] \fni{textmd}\verb|{...}| & \textmd{ердийн нарийн}& \fni{textbf}\verb|{...}| & \textbf{\wi{тод}}\\[6pt] \fni{textup}\verb|{...}| & \textup{\wi{ердийн хэрчлээстэй}}& \fni{textit}\verb|{...}| & \textit{\wi{бичмэл}}\\ \fni{textsl}\verb|{...}| & \textsl{\wi{налуу}}& \fni{textsc}\verb|{...}| & \textsc{\wi{Том}}\\[6pt] \ci{emph}\verb|{...}| & \emph{онцолсон} & \fni{textnormal}\verb|{...}| & \textnormal{ердийн} \end{tabular} \bigskip \end{lined} \end{table} \begin{table}[!bp] \index{фонтын хэмжээ} \caption{Фонтын хэмжээ.} \label{sizes} \begin{lined}{12cm} \begin{tabular}{@{}ll} \fni{tiny} & \tiny маш жижиг \\ \fni{scriptsize} & \scriptsize жижигхэн\\ \fni{footnotesize} & \footnotesize жижиг \\ \fni{small} & \small жижгэвтэр \\ \fni{normalsize} & \normalsize ердийн \\ \fni{large} & \large томовтор \end{tabular}% \qquad\begin{tabular}{ll@{}} \fni{Large} & \Large том \\[5pt] \fni{LARGE} & \LARGE томхон \\[5pt] \fni{huge} & \huge маш том \\[5pt] \fni{Huge} & \Huge асар том \end{tabular} \bigskip \end{lined} \end{table} \begin{table}[!tbp] \caption{Баримтын стандарт т°р°л дэх ісгийн бодит хэмжээ.}\label{tab:pointsizes} \label{tab:sizes} \begin{lined}{12cm} \begin{tabular}{lrrr} \multicolumn{1}{c}{хэмжээ} & \multicolumn{1}{c}{10pt (індсэн) } & \multicolumn{1}{c}{11pt-ээр сонгоход} & \multicolumn{1}{c}{12pt-ээр сонгоход}\\ \verb|\tiny| & 5pt & 6pt & 6pt\\ \verb|\scriptsize| & 7pt & 8pt & 8pt\\ \verb|\footnotesize| & 8pt & 9pt & 10pt \\ \verb|\small| & 9pt & 10pt & 11pt \\ \verb|\normalsize| & 10pt & 11pt & 12pt \\ \verb|\large| & 12pt & 12pt & 14pt \\ \verb|\Large| & 14pt & 14pt & 17pt \\ \verb|\LARGE| & 17pt & 17pt & 20pt\\ \verb|\huge| & 20pt & 20pt & 25pt\\ \verb|\Huge| & 25pt & 25pt & 25pt\\ \end{tabular} \bigskip \end{lined} \end{table} \begin{table}[!bp] \caption{Математик фонт.} \label{mathfonts} \begin{lined}{0.7\textwidth} \begin{tabular}{@{}ll@{}} \fni{mathrm}\verb|{...}|& $\mathrm{Roman\ Font}$\\ \fni{mathbf}\verb|{...}|& $\mathbf{Boldface\ Font}$\\ \fni{mathsf}\verb|{...}|& $\mathsf{Sans\ Serif\ Font}$\\ \fni{mathtt}\verb|{...}|& $\mathtt{Typewriter\ Font}$\\ \fni{mathit}\verb|{...}|& $\mathit{Italic\ Font}$\\ \fni{mathcal}\verb|{...}|& $\mathcal{CALLIGRAPHIC\ FONT}$\\ \fni{mathnormal}\verb|{...}|& $\mathnormal{Normal\ Font}$\\ \end{tabular} %\begin{tabular}{@{}lll@{}} %\textit{Command}&\textit{Example}& \textit{Output}\\[6pt] %\fni{mathcal}\verb|{...}|& \verb|$\mathcal{B}=c$|& $\mathcal{B}=c$\\ %\fni{mathscr}\verb|{...}|& \verb|$\mathscr{B}=c$|& $\mathscr{B}=c$\\ %\fni{mathrm}\verb|{...}|& \verb|$\mathrm{K}_2$|& $\mathrm{K}_2$\\ %\fni{mathbf}\verb|{...}|& \verb|$\sum x=\mathbf{v}$|& $\sum x=\mathbf{v}$\\ %\fni{mathsf}\verb|{...}|& \verb|$\mathsf{G\times R}$|& $\mathsf{G\times R}$\\ %\fni{mathtt}\verb|{...}|& \verb|$\mathtt{L}(b,c)$|& $\mathtt{L}(b,c)$\\ %\fni{mathnormal}\verb|{...}|& \verb|$\mathnormal{R_{19}}\neq R_{19}$|& %$\mathnormal{R_{19}}\neq R_{19}$\\ %\fni{mathit}\verb|{...}|& \verb|$\mathit{ffi}\neq ffi$|& $\mathit{ffi}\neq ffi$ %\end{tabular} \bigskip \end{lined} \end{table} Фонтын хэмжээг °°рчл°х тушаалд \wi{гој хаалт} нь \emph{хязгаар тогтоох} чухал іірэг гійцэтгэдэг. “ігээр \LaTeX{}-ийн ихэнх тушаалуудын ійлчлэх хірээг тогтооно.\index{хязгаар тогтоох} \begin{example} Тіінд {\LARGE том болон {\small жижиг} ісгіід таалагддаг}. \end{example} Фонт °°рчл°х тушаалд догол (хоосон зай) орсон бол фонт °°рчл°х тушаалаар м°р хоорондох зай давхар °°рчл°гд°н°. Тиймээс гој хаалтыг \verb|}| хаахдаа анхаарах хэрэгтэй. Дараах хојр жишээнд орсон \ci{par} тушаалын байрлал бірд м°р хоорондох зай хэрхэн °°рчл°гд°ж байгааг анзаар.\footnote{\texttt{\bs{}par} нь хоосон м°ртэй яг ижил} \begin{example} {\Large Битгий унш! Энэ худлаа. Надад итгээрэй!\par} \end{example} \begin{example} {\Large Энэ ч бас худлаа. Намайг худалч гэдгийг мэднэ биз дээ.}\par \end{example} Догол м°рийн фонтын хэмжээг тэр чигт нь °°рчл°х бол фонт °°рчл°х тушаалын хірээллийг ашиглах хэрэгтэй. \begin{example} \begin{Large} Энэ худлаа. Ингэхэд юу болоод байна аа \ldots \end{Large} \end{example} \noindent Энэ нь олон дахин давхарлан хэрэглэх гој хаалтын тоог ц°°лд°г. \subsection{Анхаарах зійлс} Энэ білгийн эхэнд °гіілсэнчлэн баримтад тухайн мэдээллийг онцлох зорилгоор фонт °°рчл°х тушаалыг ахин дахин хэрэглэх явдал нь \LaTeX{}-ийн баримтын гадаад дотоод бітцийг ангилах зарчимд харшлах с°р°г талтай байдаг. Иймээс онцлох ійлдлийг гійцэтгэхдээ, фонт °°рчл°х індсэн тушаалыг ``логикийн багцлах тушаалыг'' тодорхойлох \verb|\newcommand| тушаалаар орлуулах хэрэгтэй юм. \begin{example} \newcommand{\oops}[1]{% \textbf{#1}} ђр°°нд біі \oops{орогтун}, энд іл мэдэгдэх \oops{машин} байна. \end{example} Энэ арга нь хожим фонт °°рчл°х \verb|\textbf| тушаалыг °°р тушаалаар °°рчл°х хэрэг гарахад баримтад орсон \verb|\textbf| тушаал бірийг олж, °°рчилб°л зохих ііргээр орсон эсэхийг тогтоосны індсэн дээр, °°рчл°х нісэр ажлыг хялбаршуулах давуу талтай юм. \subsection{З°вл°мж} Фонтын хэмжээ хэлбэртэй холбоотой асуудлыг ц°°н хэдэн ігээр цэглэе:\nopagebreak \begin{quote} \small \texttt{Баримтад} \textsf{\textbf{\LARGE О}\texttt{Л}\textsl{О}Н} \textit{т°рлийн} \Huge фонт \tiny ашиглах \footnotesize \textbf{нь} \large \textit{баримтыг} \normalsize иліі \textsc{гаргацтай} \textsl{\textsf{сайхан} харагдуу\large л\Large д\LARGE а\huge г} гэдгийг \underline{\textbf{санагтун\Huge!}} \end{quote} \section{Зай} \subsection{М°р хоорондын зай} \index{м°р хоорондын зай} Баримтын м°р хоорондох зайг ихэсгэе гэвэл доорх \begin{lscommand} \ci{linespread}\verb|{|\emph{іржіілэгч}\verb|}| \end{lscommand} \noindent тушаалыг, зохих утгын хамтаар баримтын эхлэлд зарлах хэрэгтэй. М°р хоорондох зайг, \verb|\linespread{1.3}| тушаал нь ``нэг хагас'' м°рийн хэмжээтэйгээр, \verb|\linespread{1.6}| тушаал нь ``хојр'' м°рийн хэмжээтэйгээр тус тус авна. М°р хоорондох ердийн зай нь эдгээрээс бага буюу іржіілэгч утга нь~1 байна.\index{хојр м°рийн зай} \ci{linespread} тушаал нь хэрэглэхэд нэлээд эрс тэс, хэвлэлд тохиромжгій тул м°р хоорондох зайг °°рчл°хд°° дараах тушаалыг ашиглах нь дээр: \begin{lscommand} \verb|\setlength{\baselineskip}{1.5\baselineskip}| \end{lscommand} \begin{example} {\setlength{\baselineskip}% {1.5\baselineskip} Энэ хэсгийн м°р хоорондох зай °мн°х°°с°° 1.5 дахин сунажээ. Энд par тушаалыг т°гсг°лд ашиглаж байгааг анзаар.\par} Гој хаалт хаагдсаны дараа біх зійл эргээд хуучин хэвэндээ орж байгааг энэхіі догол м°рд харуулав. \end{example} \subsection{Догол м°рийн хэмжээ}\label{parsp} \LaTeX{}-д догол м°рд зориулсан хојр хувьсагч бий. Оролтын файлын эхлэлд дараах тохиргоог хийснээр \begin{code} \ci{setlength}\verb|{|\ci{parindent}\verb|}{0pt}| \\ \verb|\setlength{|\ci{parskip}\verb|}{1ex plus 0.5ex minus 0.2ex}| \end{code} догол м°рийн хэмжээг °°рчилж болно. Эдгээр хојр тушаал нь догол м°р хоорондын хэмжээ болон догол зайн хэмжээг ихэсгэх буюу багасгадаг. \TeX{}-д хуудасны догол м°рийг тохируулах шаардлагатай тохиолдолд догол м°рийн м°р алгасах зайн хэмжээг ихэсгэж багасгахад \texttt{plus} ба \texttt{minus} гэдгийг хэрэглэнэ. Европт догол м°рийг гаргахдаа м°р хооронд тодорхой зай авч, м°рийг доголгійгээр эхліілдэг. Энэ нь гарчгийн жагсаалтын м°ріідийг нэлээд сийрэг болгох гээд байдаг. “інээс зайлсхийж, дээрх тушаалуудыг баримтын эхлэлд бус \verb|\tableofcontents| тушаалын доор зарлах буюу ихэнх мэргэжлийн номуудад догол м°рийн эхлэлд зай авдаг харин м°р хооронд нэмэлт зай авдаггійг харгалзаж, эдгээр тушаалыг ер°°с ашиглахгій байвал зохино. Зійлийг догол м°р°°р эхліілэхийн тулд дараах тушаалыг \begin{lscommand} \ci{indent} \end{lscommand} \noindent зійлийн эхлэлд зарлах хэрэгтэй.\footnote{Білгийн гарчгийн араас эхлэх догол м°рд зай авахын тулд `tools' бірдлийн \pai{indentfirst} багцыг ашигла.} Мэдээж энэ нь \verb|\parindent| тушаалын утга тэгээс ялгаатай іед хічинтэй. Зійлийг догол м°р°°р эхліілэхгій гэвэл дараах тушаалыг \begin{lscommand} \ci{noindent} \end{lscommand} \noindent зійлийн эхлэлд зарлана. “інийг шинэ білэг іісгэх тушаал агуулаагій дан текст біхий баримтын °мн° хэрэглэхэд тохиромжтой. \subsection{Хэвтээ зай} \label{sec:hspace} \LaTeX{} іг болон °гіілбэр хоорондын зайг автоматаар тогтоодог. Хэвтээ зайг дараах тушаалаар авна: \index{хэвтээ!зай} \begin{lscommand} \ci{hspace}\verb|{|\emph{урт}\verb|}| \end{lscommand} М°рийн т°гсг°л буюу эхэн дэх хэвтээ зайг \verb|\hspace| бус \verb|\hspace*| тушаалаар хадгалан ілдээж болно. \emph{Уртыг} тоон утга тііний нэгжийн хамтаар илэрхийлнэ. Ихэнх чухал нэгжіідийг \ref{units}-р хіснэгтэд ізіілэв. \index{нэгжіід}\index{хэмжигдэхіініід} \begin{example} Энэ зай\hspace{1.5cm}нь 1.5 сантиметр. \end{example} \suppressfloats \begin{table}[tbp] \caption{\TeX{}-ийн уртын нэгжіід.} \label{units}\index{нэгжіід} \begin{lined}{9.5cm} \begin{tabular}{@{}ll@{}} \texttt{mm} & миллиметр $\approx 1/25$~ямх \quad \demowidth{1mm} \\ \texttt{cm} & сантиметр = 10~мм \quad \demowidth{1cm} \\ \texttt{in} & ямх $=$ 25.4~мм \quad \demowidth{1in} \\ \texttt{pt} & цэг $\approx 1/72$~ямх $\approx \frac{1}{3}$~мм \quad\demowidth{1pt}\\ \texttt{em} & энэхіі фонтын `M' ісгийн °рг°нтэй дійнэ \quad \demowidth{1em}\\ \texttt{ex} & энэхіі фонтын `x' ісгийн °нд°ртэй дійнэ \quad \demowidth{1ex} \end{tabular} \bigskip \end{lined} \end{table} \label{cmd:stretch} Тухайн м°рийн нийт ілдэгдэл хоосон зайг \begin{lscommand} \ci{stretch}\verb|{|\emph{n}\verb|}| \end{lscommand} \noindent гэсэн тушаалаар n тэнціі хэсэгт хувааж болох ба \verb|\hspace{\stretch{|\emph{n}\verb|}}| гэсэн хос тушаалаар тухайн м°рийн хоосон зайг тодорхой харьцаатайгаар хувааж болно. \begin{example} x\hspace{\stretch{1}} x\hspace{\stretch{3}}x \end{example} Хэвтээ зайг текстэд ашиглахдаа хоосон зайн хэмжээг тухайн фонтын хэмжээнээс шууд хамаарахаар тохируулж болно. “іний тулд текстээс хамаарах \texttt{em} ба \texttt{ex} нэгжіідийг ашиглана: \begin{example} {\Large{}том\hspace{1em}y}\\ {\tiny{}маш жижиг\hspace{1em}y} \end{example} \subsection{Босоо зай} \LaTeX{} нь догол м°р, білэг, дэд білэг хоорондын зайг автоматаар тохируулдаг. Шаардлагатай тохиолдолд \emph{догол м°р хоорондох} зайг дараах тушаалаар нэмж °°рчилж болно: \begin{lscommand} \ci{vspace}\verb|{|\emph{урт}\verb|}| \end{lscommand} Энэхіі тушаал нь хојр хоосон м°р хооронд орох јстой. Хэрэв хуудасны дээд буюу доод хэсэг дэх зайг хадгалан ілдээх шаардлагатай бол дээрх \verb|\vspace| тушаалын ард од тавих \verb|\vspace*| хэрэгтэй. \index{босоо зай} Текстийг хуудасны сіілийн м°рд оруулах буюу текстийг босоо тэнхлэгийн дагуу хуудсанд голлуулах тохиолдолд \verb|\stretch| ба \verb|\pagebreak| тушаалуудын хослолыг ашиглана. \begin{code} \begin{verbatim} Текстіід \ldots \vspace{\stretch{1}} “інийг хуудасны сіілийн м°рд оруулна.\pagebreak \end{verbatim} \end{code} Зійл \emph{хоорондох} буюу хіснэгтийн м°р хоорондох зайг °°рчл°хийн тулд дараах \begin{lscommand} \ci{\bs}\verb|[|\emph{урт}\verb|]| \end{lscommand} \noindent тушаалыг ашиглана. \ci{bigskip} ба \ci{smallskip} тушаалуудаар босоо зайг, тодорхой зайн утга оноохгійгээр тогтоосон хэмжээнд авч болно. \section{Хуудасны зохиомж} \begin{figure}[!hp] \begin{center} \makeatletter\@mylayout\makeatother \end{center} \vspace*{1.8cm} \caption{Хуудасны зохиомжийн хувьсагчууд.} \label{fig:layout} \cih{footskip} \cih{headheight} \cih{headsep} \cih{marginparpush} \cih{marginparsep} \cih{marginparwidth} \cih{oddsidemargin} \cih{paperheight} \cih{paperwidth} \cih{textheight} \cih{textwidth} \cih{topmargin} \end{figure} \index{хуудасны зохиомж} \LaTeXe{}-д \verb|\documentclass| тушаалаар \wi{цаасны хэмжээ}г тодорхойлж °гч болдог б°г°°д ингэснээр хуудасны \wi{зах}ад зохих текстийг автоматаар байрлуулдаг, іінийг °°рийнх°°р°° °°рчилж бас болно. \thispagestyle{fancyplain} \ref{fig:layout}-р зурагт °°рчилж болох хувьсагчуудыг ізіілэв. Уг зураг `tools' бірдлийн \pai{layout} багцын тусламжтайгаар бітээгджээ.% \footnote{\CTANref|macros/latex/required/tools|} \textbf{БАЙЗ!} \ldots ``Хуудасны °рг°ний хэмжээг ихэсгэх'' гэж байгаа тохиолдолд \LaTeX-д ихэнх зійліід нь хуудасны хэмжээндээ зохицсон байдгийг бодолцох хэрэгтэй. Энэ нь мэдээж MS Word программын ердийн хуудасны хэмжээг бодвол харьцангуй нарийхан. Гэхдээ °нд°р т°вшинд хэвлэгдсэн номын\footnote{Нэр хіндтэй хэвлэлийн газруудын хэвлэсэн номуудыг хэлж байна.} нэг м°рд агуулагдах тэмдэгтийн тоог дунджаар гаргавал м°р бірд ойролцоогоор 66-аас иліігій тэмдэгт орсон байх б°г°°д энэ нь \LaTeX{} хуудасны м°р бірд агуулагдах тэмдэгтийн тоотой яг дійнэ. Туршлагаас ізвэл м°рд агуулагдах тэмдэгтийн тоо ихсэх тусам уншихад хіндрэлтэй болдог байна. Энэ нь м°рийн эхлэлээс т°гсг°л хіртэл гійлгэн уншихад нід чилдэгтэй холбоотой учраас сониныг олон баганатайгаар хэвлэдэг ажээ. Иймд м°рд агуулагдах тэмдэгтийн тоо олшрох тусам уншихад хіндрэлтэй болдог гэдгийг санах хэрэгтэй. \LaTeX{}-д эдгээр хувьсагчдыг дараах хојр тушаалаар °°рчл°хд°° эдгээр тушаалуудыг ихэвчлэн баримтын эхэнд зарлана. Эхний тушаал нь хувьсагчид тогтмол утга онооно: \begin{lscommand} \ci{setlength}\verb|{|\emph{хувьсагч}\verb|}{|\emph{урт}\verb|}| \end{lscommand} Хојр дахь тушаал нь хувьсагчийн уртыг нэмэгдіілнэ: \begin{lscommand} \ci{addtolength}\verb|{|\emph{хувьсагч}\verb|}{|\emph{урт}\verb|}| \end{lscommand} Хојр дахь тушаал нь індсэн тохиргооноос хамаарч ажилладаг тул \ci{setlength} тушаалаас иліі ір ашигтай юм. Текстийн °рг°нийг нэг сантиметрээр нэмэгдіілэхийн тулд баримтын эхлэлд доорх тушаалыг бичиж °гн°: \begin{code} \verb|\addtolength{\hoffset}{-0.5cm}|\\ \verb|\addtolength{\textwidth}{1cm}| \end{code} Энд \pai{calc} багцын талаар дурдахад энэ нь \ci{setlength} тушаалын функцийн іл хамаарах хувьсагчид болон функцийн іл хамаарах хувьсагчид тоон утга оноож болох бусад газруудад арифметик ійлдлийг ашиглахад хэрэглэгдэнэ. \section{Урттай холбоотой °°р бусад зійліід} \LaTeX{} баримтад абсолют уртыг ашиглахаас зайлсхийх бірэн боломжтой байдаг. Хуудасны туслах элементіідийн °нд°р °рг°ний талаар дурдъя. Зургийн °рг°нийг тохируулах \verb|\textwidth| тушаалаар зургийг тухайн хуудсанд нь багтааж болно. Дараах 3 тушаалаар текстийн м°рийн °рг°н, °нд°р, доголын уртыг тогтоож болно. \begin{lscommand} \ci{settoheight}\verb|{|\emph{хувьсагч}\verb|}{|\emph{текст}\verb|}|\\ \ci{settodepth}\verb|{|\emph{хувьсагч}\verb|}{|\emph{текст}\verb|}|\\ \ci{settowidth}\verb|{|\emph{хувьсагч}\verb|}{|\emph{текст}\verb|}| \end{lscommand} \noindent Дараах жишээнд эдгээр тушаалыг хэрхэн ашиглахыг ізіілэв. \begin{example} \flushleft \newenvironment{vardesc}[1]{% \settowidth{\parindent}{#1:\ } \makebox[0pt][r]{#1:\ }}{} \begin{displaymath} a^2+b^2=c^2 \end{displaymath} \begin{vardesc}{“інд}$a$, $b$ -- тэгш °нц°гт гурвалжны сууриуд. $c$ -- тэгш °нц°гт гурвалжны гипотенуз. $d$ -- тодорхойгій. \end{vardesc} \end{example} \section{Хайрцгууд} \LaTeX{}, хуудсыг бітээхдээ хайрцаглагдсан ісэг бірийг нийліілж іг болгоод тэдгээр ігсийг °°р хооронд нь дахин, хуудасны м°рд багтахуйц агшиж сунадаг байхаар нэгтгэдэг. \TeX{}-ийн ажиллагааны талаар хялбараар тайлбарлахад ийм б°г°°д ііний гол зангилаа нь тііний хайрцаглан нэгтгэх зарчимд оршино. “сгээс гадна дурын °г°гдлийг хайрцаглаж болох б°г°°д тэдгээрт \LaTeX{} хайрцаглагдсан ганц ісгийг зохион байгуулахтай ижилхэн аргачлалыг хэрэгжіілдэг. Хэдийгээр онцлон дурдаагій ч сіілийн білгіідэд \ei{tabular} хірээлэл болон \ci{includegraphics} гэх мэт хайрцаглах бітцэд тулгуурласан зарим нэг тушаалуудтай танилцсан билээ. ђ°р°°р хэлбэл, хіснэгт буюу зургийг тал бірээр нь текстийн °рг°н°°с иліігій урттайгаар т°в°ггійхэн нэгтгэн зохион байгуулах боломжтой нь харагдаж байна. Білэг текстийг дараах \begin{lscommand} \ci{parbox}\verb|[|\emph{байр}\verb|]{|\emph{°рг°н}\verb|}{|\emph{текст}\verb|}| \end{lscommand} \noindent тушаал буюу \begin{lscommand} \verb|\begin{|\ei{minipage}\verb|}[|\emph{байр}\verb|]{|\emph{°рг°н}\verb|}| текст \verb|\end{|\ei{minipage}\verb|}| \end{lscommand} \noindent хірээллээр хайрцаглаж болно. \texttt{Байр} хувьсагч нь хайрцгийг біхэлд нь босоо тэнхлэгийн хувьд шилжіілэх \texttt{c, t} буюу \texttt{b} утгуудыг авна. \texttt{ђрг°н} хувьсагч нь хайрцгийн °рг°ний уртыг тодорхойлно. \ei{minipage} ба \ci{parbox} хојрын індсэн ялгаа нь \ei{parbox} тушаалд, тушаал болон хірээлліід ійлчилдэггій байхад \ei{minipage} хірээлэлд эдгээр нь індсэн ііргээ гійцэтгэдэг ажээ. \ci{parbox} тушаалаар, босоо тэнхлэгийн хувьд білэг текстэд м°р таслах болон бусад ійлдлийг гійцэтгэж болдог байхад \ci{mbox} мэтийн тушаалаар хэвтээ тэнхлэгийн дагуу ійлдэл гійцэтгэж болно. Энэ нь хэд хэдэн хайрцгийг нэг хайрцагт нэгтгэх болон \LaTeX{}-г іг хооронд таслахаас зайлсхийх боломжийг олгоно. Хайрцгийг дахин хайрцаглах боломжтой учраас хэвтээ тэнхлэгийн дагуух хайрцаглах ійлдэл нь нэлээд уян хатан чанартай байдаг. \begin{lscommand} \ci{makebox}\verb|[|\emph{°рг°н}\verb|][|\emph{байр}\verb|]{|\emph{текст}\verb|}| \end{lscommand} \noindent \texttt{°рг°н} нь гаднах хайрцгийн °рг°ний хэмжээг тодорхойлно.\footnote{Гаднах хайрцаг нь доторх бичвэрээсээ жижиг байж болох ба хайрцгийн уртыг 0pt гэж сонгож гаднах хірээг харагдуулахгій байж бас болно.} М°н тіінчлэн хайрцгийн °рг°ний хэмжээг уртын хэмжигдэхіінээр илэрхийлж болохоос гадна \emph{текстийн} уртын харьцангуй хэмжээг \ci{width}, \ci{height}, \ci{depth}, ба \ci{totalheight} тушаалуудаар илэрхийлж болно. \emph{байр} хувьсагчид дараах ганц ісгіід оногдоно: \textbf{c} голлуулан, \textbf{l} зіін тийш, \textbf{r} баруун тийш, буюу \textbf{s} текстийг хайрцагт сунган тус тус байрлуулах. \ci{framebox} тушаал нь \ci{makebox} тушаалтай яг ижилхэн боловч текстийн гаднах хайрцгийн хірээг гаргадаггій. Эдгээр \ci{makebox} ба \ci{framebox} тушаалуудыг хэрхэн хэрэглэхийг дараах жишээгээр харуулъя. \begin{example} \makebox[\textwidth]{% т ° в}\par \makebox[\textwidth][s]{% с у н г а м а л}\par \framebox[1.1\width]{ Хайрцаглагдчихлаа!} \par \framebox[0.8\width][r]{Дэндіі, урт байна} \par \framebox[1cm][l]{зігээр ээ, энэ ч бас} “інийг уншиж чадаж байна уу? \end{example} Бид хайрцаглах ійлдлийг хэвтээ тэнхлэгийн хувьд авч ізлээ, тэгвэл одоо босоо тэнхлэгийн хувьд авч ізье.\footnote{Хайрцаглах ійлдэл нь хэвтээ ба босоо гэсэн хојрхон тэнхлэгт ійлчилдэг.} \LaTeX{}-ийн хувьд хайрцаглах ійлдлийг босоо тэнхлэгийн хувьд \begin{lscommand} \ci{raisebox}\verb|{|\emph{дээш}\verb|}[|\emph{гол-шугамаас-дээш-нь}\verb|][|\emph{гол-шугамаас-доош-нь}\verb|]{|\emph{текст}\verb|}| \end{lscommand} \noindent тушаалаар т°в°ггійхэн гійцэтгэдэг. Уг тушаалын эхний гурван хувьсагчид, \emph{текст} хэмээх іл хамаарах хувьсагчийн хайрцгийн байрлалын хэмжээг тохируулах \ci{width}, \ci{height}, \ci{depth}, ба \ci{totalheight} тушаалуудыг ашиглаж болно. \begin{example} \raisebox{0pt}[0pt][0pt]{\Large% \textbf{Аааа\raisebox{-0.3ex}{а}% \raisebox{-0.7ex}{аа}% \raisebox{-1.2ex}{а}% \raisebox{-2.2ex}{а}% \raisebox{-4.5ex}{а}}} гэж тіінийг хашхирахад ойр хавийнхан нь тіінд аюул тулгарсныг огтхон ч анзаарсангій \end{example} \section{Хэвтээ шугам} \label{sec:rule} Энэ білгийн эхэнд доорх тушаалыг хальт дурдсан билээ. \begin{lscommand} \ci{rule}\verb|[|\emph{дээш}\verb|]{|\emph{°рг°н}\verb|}{|\emph{°нд°р}\verb|}| \end{lscommand} \noindent Ердийн тохиолдолд энэхіі тушаалаар битіі хайрцгийг дірсэлдэг. \begin{example} \rule{3mm}{.1pt}% \rule[-1mm]{5mm}{1cm}% \rule{3mm}{.1pt}% \rule[1mm]{1cm}{5mm}% \rule{3mm}{.1pt} \end{example} \noindent Хэвтээ ба босоо шугамуудыг дірслэхэд тохиромжтой байдгаар нь энэ номын ніір хуудасны шугамыг \ci{rule} тушаалаар зурсан юм. \bigskip {\flushright Т°гс°в.\par} % % Local Variables: % TeX-master: "lshort2e" % mode: latex % mode: flyspell % End: