Tuesday, September 30, 2014

Ավարտական աշխատանքի տեքստի ձևավորումը

Վաղուց ես ուզում էի գրել այս թեմայով և ներկայացնել տարիների ընթացքում իմ կուտակած փորձն ու դիտարկումների արդյունքները։ Բայց ստացվեց այնպես, որ վերջերս ես ավելի հաճախ սկսեցի հանդիպել անփույթ ձևավորված տեքստերի, և ավելի հաճախ սկսեցի հարցեր ստանալ այն մասին, թե ինչպես ավարտական կամ կուրսային աշխատանքի փաստաթուղթը կազմելիս ստանալ այս կամ այն արդյունքը։ Օրինակ, ինչպե՛ս ձևավորել գեղեցիկ ու ճիշտ տիտղոսաթերթ, ինչպե՛ս կազմել և որտե՛ղ տեղադրել բովանդակության ցանկը, ինչպե՛ս փաստաթղթում ներդնել պատկերներ, աղյուսակներ, ինչպե՛ս կազմել գրականության (կամ աղբյուրների) ցանկը և հղումներ կատարել դրա տարրերին, ինչպե՛ս և ի՛նչ տեսքով ներկայացնել ծրագրավորման լեզուների տեքստը և այլն, և այլն։ Այս և շատ այլ հարցերի մասին եմ ես պատմում իմ գրառման մեջ՝ որպես աշխատանքային գործիք օգտագործելով TeX հրատարակչական համակարգի համար ստեղծված LaTeX մակրոսների փաթեթը։
Ամեն ինչ գրելիս ես ենթադրում եմ հայերեն տեքստերը, հետևաբար ենթադրում եմ նաև, որ ձեռագիրը պատրաստված է Unicode (ավելի կոնկրետ՝ UTF-8) կոդավորմամբ, և օգտագործվում է LaTeX-ի xetex իրականացման xelatex ծրագիրը։

Փաստաթղթի մակետի ընտրություն

Մակետ (LaTeX-ում ասում են document class) ասելով հասկացվում է փաստաթղթի ընդհանուր հատկությունների ամբողջությունը։ Օրինակ, լուսանցքների չափը, վերնագրերի ձևավորումը, ցանկերի կազմակերպումը, ոչ-տեքստային օբյեկտների տեղադրումը և այլն։ Ստանդարտ LaTeX փաթեթում առավել հաճախ օգտագործվում են չորս հիմնական մակետներ. letter, որ նախատեսված է նամակների համար, article՝ հոդվածների պատրաստման համար, report` ավելի ընդարձակ հոդվածների, փոքր գրքերի, ատենախոսությունների համար, book` լիարժեք գրքերի համար։

Ուսանողական ավարտական (կամ մագիստրոսական) աշխատանքի տեքստի պատրաստման համար ամենահարմարը report մակետն է: Սա հնարավորություն է տալիս \chapter, \section, \subsection այլ նմանատիպ մակրոսներով փաստաթուղթը բաժանել գլուխների, բաժինների ենթաբաժինների և այլ տրամաբանական մասերի։ Մակետի ընտրությունը կատարվում է LaTeX ձեռագրի \documentclass մակրոսով։
\documentclass[a4paper,11pt]{report}
Քառակուսի փակագծերում նշված a4paper պարամետրով նշված է, որ փաստաթուղթը կառուցելիս պետք է նկատի ունենալ A4 ստանդարտի տպագրական թուղթը, իսկ 11pt պարամետրն ասում է, որ տեքստի հիմնական տպատառի չափը 11 է և օգտագործվող մյուս բոլոր տառերի չափն ընտրվելու է 11 չափի հարաբերությամբ։

Լռելությամբ report մակետում ընդունված է լուսանցքների այնպիսի չափ, որ տեքստի համար մնացած տարածում, հաշվի առնելով ընթեռնելիության որոշ հարցեր, մեկ տողը պարունակի 60-70 տառ (նիշ)։ Բայց մեզ մոտ ընդունված չէ այդպիսի լայն լուսանցքներ։ Սովորաբար ընտրվում է (և աչքի համար էլ հաճելի է) ձախից և ներքևից 3 սմ, իսկ աջից և վերևից՝ 2 սմ լուսանցքներ։ Այս կարգավորումներն անելու համար կարելի է օգտագործել geometry փաթեթը՝ \usepackage հրամանի պարամերտրերում տալով լուսանցքների նախընտրելի չափերը։
\usepackage[top=2cm,bottom=3cm,left=3cm,right=2cm]{geometry}

Տպատառերի (կամ տառատեսակների) ընտրություն

Քանի որ մեր բուհերում ավարտական աշխատանքների պաշտպանության ներկայացվող տեքստերը պատրաստվում են հիմնականում հայերենով, ապա ես ուզում եմ հղում կատարել իմ բլոգի մեկ այլ գրառման՝ Հայերեն LaTeX, որտեղ ես մանրամասն պատմում եմ, թե ինչպես LaTeX-ն օգտագործել հայերեն փաստաթղթեր պատրաստելու համար։ Այդտեղ պատմում եմ նաև տպատառերի ընտրության մասին։

Տիտղոսաթերթի պատրաստումը

Տարիների ընթացքում ստացվել է այնպես, որ մեր բուհերում ներկայացվող ավարտական կամ կուրսային աշխատանքների տիտղոսաթերթերն ունեն մի ընդհանուր սխեմա՝ երբեմն այս կամ այն մանր փոփոխություններով։ Ստորև իմ մագիստրոսական աշխատանքի տիտղոսաթերթի նկարն է.
Չեմ պնդում, որ սա անթերի և օրինակելի սխեմա է, բայց այն ընդունելի է շատերի կողմից, իսկ ինձ արված միակ դիտողությունն այն էր, թե էջի վերևում «Երևանի Պետական Համալսարան» ու «Տեղեկատվական Տեխնոլոգիաների Կրթական և Հետազոտական Կենտրոն» արտահայտություններում պետք չէ բոլոր բառերը սկսել մեծատառերով։

LaTeX կոդը, որով ես կառուցել եմ այս տիտղոսաթերթը, այնքան պարզ է, որ նույնիսկ մեկնաբանությունների կարիք չկա։ Ստորև ներկայացնում եմ այն.
% titlepage միջավայրը սկսում է նոր մաքուր էջ, որի վրա բացակայում է էջի համարը
\begin{titlepage}

\begin{centering}
\LARGE{Երևանի \ Պետական \ Համալսարան}\\
\Large{Տեղեկատվական Տեխնոլոգիաների Կրթական և Հետազոտական Կենտրոն}\par
\vskip6cm
\textbf{\Huge{ԱՎԱՐՏԱԿԱՆ~~ԱՇԽԱՏԱՆՔ}}\par
\end{centering}

\null\smallskip\null

\begin{centering}
\begin{tabular}{rl}
\textbf{Թեմա:}    & \textit{Բովանդակությամբ հասցեավորվող հիշող սարքերը}\\
                   & \textit{տեստավորող ալգորիթմների կառուցում} \\[4pt]
\textbf{ՈՒսանող:} & \textit{Արմեն Բադալյան} \\[4pt]
\textbf{Ղեկավար:} & տ.~գ.~թ.~\textit{Գուրգեն Հարությունյան} \\
\end{tabular}
\par
\end{centering}

\null\vfill\null

\begin{centering}
Երևան - 2011\par
\end{centering}

\end{titlepage}

Տեքստի տրամաբանական տրոհում

report մակետում տեքստի տրամաբանական տրոհման ամենամեծ միավորը «գլուխ»-ն է, որ սկսվում է \chapter մակրոսով։ Բացի այն, որ \chapter մակրոսը վերնագիրը ձևավորում է տվյալ պահին որոշված ոճով, այն նաև մեկով ավելացնում է գլուխների հաշվիչի արժեքը։ Օրինակ,
\chapter{Ծրագրի ընդհանուր նկարագրություն}
Հաջորդ տրամաբանական միավորները «բաժին», «ենթաբաժին» և «ենթա-ենթաբաժին»-ն են, որ սկսվում են համապատասխանաբար \section, \subsection և \subsubsection մակրոսներով։ Այդ միավորներից ամեն մեկն ունի իր հաշվիչը, որոնց արժեքը ավելանում է համապատասխան մակրոսի կիրառմամբ, իսկ այդ հաշվիչների արժեքն արտածվում է վերնագրի մեջ։ Օրինակ, իմ աշխատանքի երրորդ գլուխն ուներ հետևյալ տեքստը.
Տեքստի տրամաբանական տրոհման հրամանները տեղեկություններ են հավաքում նաև բովանդակության ցանկն արտածող \tableofcontents հրամանի համար։ Սովորաբար բովանդակության ցանկը տեղադրում են տիտղոսաթերթից հետո։
    Եթե փաստաթուղթը հավելվածներ է պարունակում, ապա ձեռագրի համապատասխան տեղում պետք է ավելացնել \appendix մակրոսը։ Այդ կետից սկսած գլուխների վերնագրերը կսկսվեն «Հավելված» (կամ «Appendix») բառով և կհամարակալվեն լատինական այբուբենի տառերով։ Օրինակ այսպես.

Պատկերների տեղադրում

LaTeX-ը հնարավորություն է տալիս փաստաթղթում ներդնել (համարյա) կամայական ֆորմատի պատկերներ (նկարներ). PNG, JPEG, EPS և այլն։ Նախ հարկավոր է կցել graphicx փաթեթը.
\usepackage{graphicx}
Հետո, տեքստի այն տեղում, որտեղ պետք է ներդրվի նկարը, \includegraphics մակրոսով նշվում է նկարի ֆայլի անունը։ Օրինակ, camcell.png նկարը 0.85 մասշտաբով ներդնելու համար պետք է գրել.
\includegraphics[scale=.85]{camcells.png}
LaTeX-ում նախատեսված են այսպես կոչված «սահող» (floating) միջավայրեր։ Դրանք նախատեսված են պարունակել օբյեկտներ, որոնք ամբողջությամբ պետք է տեղավորվեն մեկ էջի վրա, ինչպես նաև թույլ են տալիս այդ օբյեկտների համար սահմանել վերնագրեր ու խաչաձև հղումների նշիչներ (labels)։ Նկարները տեքստում տեղադրվում են figure սահող միջավայրի օգնությամբ։ Օրինակ,
\begin{figure}[h]
\centering
\includegraphics[scale=.85]{camcells.png}
\caption{\textsf{SRAM}, \textsf{BCAM} բջիջներ։}
\label{fig:cells}
\end{figure}
Ձեռագրի այս հատվածն ասում է, որ 0.85 մասշտաբով ներդրվում է camcells.png նկարը, որի ներքևում գրվելու է «SRAM, BCAM բջիջներ։» վերնագիրը (\caption), իսկ խաչաձև հղումների համար օգտագործվելու է fig:cells նշիչը (\label)։ Իսկ \centering մակրոսի կիրառումը նշում է, որ նկարը հորիզոնական ուղղությամբ պետք է կենտրոնադրվի։
    \begin{figure} տողի պոչից գրված [h] պարամետրը ցույց է տալիս, որ նկարը պետք է տեղադրվի հենց ճիշտ այն տեղում, որտեղ ձեռագրում հանդիպում է figure միջավայրը։ Բացի «h» (here) տառից, կարելի է տալ, օրինակ, նաև «t» (top) և «b» (bottom) տառերը։ Դրանցից առաջինն ասում է, թե նկարը պետք է միշտ տեղադրել (սահեցնել) էջի վերևում, իսկ երկրորդը՝ էջի ներքևում։ Ինչքան գիտեմ, լռելությամբ միացված է «t» պարամետրը (նկարները սահում են էջի վերին մասը)։ Օրինակ, հետևյալ երկու նկարներից առաջինում նկարը տեղադրելիս figure միջավայրին տրված է «h» տեղադրման պարամետրը, իսկ երկրորդում ոչինչ տված չէ։

Գրականության ցանկ և հղումներ

Փաստաթղթի կարևոր բաղադրիչներից է գեղեցիկ կառուցված գրականության ցանկը։ Բարեբախտաբար LaTeX համակարգի համար ստեղծվել է BibTeX գործիքը, որը հնարավորություն է տալիս ստանդարտ և, որ ավելի կարևոր է, պարզ գրառմամբ թվարկել աշխատանքում օգտագործված (կամ օգտագործվելիք) աղբյուրները։ Օրինակ, իմ մագիստրոսական աշխատանքի համար ես պատրաստել էի մի BibTeX ֆայլ (thesisbiblio.bib), որի պարունակության մի մասը այսպիսինն էր.
@article{hgsvz,
    author = "Grigoryan H. and Harutyunyan G. and Shoukourian S. and Vardanian V. and Zorian Y.",
    title = "Generic BIST Architecture for Testing of Content Addressable Memories",
    note = "IEEE International on-line testing symposium",
    year = "2011"
}

@article{art1,
    author="W. K. Al-Assadi and A. P. Jayasumana and Y. K. Malaiya",
    title="On fault modeling and testing of content-addressable Memories",
    journel="IEEE International Workshop on Memory Technology, Design and Testing",
    year=1994
}

@article{art2,
    author="J. Zhao and S. Irrinki and M. Puri and F. Lombardi",
    title="Testing SRAM-Based Content Addressable Memories",
    journal="IEEE Transactions on Computers",
    year=2000
} 
 
@article{art3,
    author="Zh. Xuemei and Y. Yizheng and Ch. Chunxu",
    title="Tests for Word Oriented Content Addressable Memories",
    journal="Asian Test Symposium",
    year=2002
}
Այստեղ BibTeX լեզվով նկարագրված են երեք հոդվածներ (@article), որոնց տրված են համապատասխանաբար hgsvz, art1, art2 և art3 նշիչները։ BibTeX ֆայլում թվարկված գրառումներին LaTeX ձեռագրում հղում են անուն հենց այս նշիչներով։ Հղումները կարող են լինել երկու տեսակի. \cite և \nocite մարոսներով։ Առաջինի օգտագործման դեպքում հղված տարրի համարն արտածվում է հղման կետում, իսկ երկրորդի դեպքում՝ ոչ։ \nocite մակրոսն օգտագործում եմ այն դեպքում, երբ ուզում եմ գրականության ցանկին տարր ավելացնել, բայց այդ տարրը չհիշատակել աշխատանքի տեքստում։ Օրինակ, իմ աշխատանքի առաջին գլխի առաջին նախադասությունը ձեռագրում ունի հետևյալ տեսքը, որտեղ \cite մակրոսով հղում եմ կատարել hgsvz նշիչն ունեցող հոդվածին։
Բովանդակությամբ հասցեավորվող հիշող սարքերը \cite{hgsvz} 
(\textsf{Content Addressable Memory} – \CAM) դրանք հիշող 
սարքերի մի հատուկ տեսակ են, որոնք օգտագործվում են որոնման 
մեծ արագություն պահանջող ապարատային կիրառություններում:
Փաստաթղթի այն տեղում, որտեղ ուզում եմ, որ հայտնվի գրականության ցանկը (սովորաբար գրականության ցանկը տեղադրում են վերջում), գրում եմ հետևյալ տողերը.
\bibliographystyle{plain}
\bibliography{thesisbiblio}  
Սրանցից առաջինն ասում է, որ փաստաթղթում պետք է տեղադրել plain ոճի (այդ ոճերի մասին առաայժմ չընդարձակավեմ) գրականության ցանկ, իսկ երկրորդը նշում է .bib ֆայլի անունը։
    Առաջին անգամ ձեռագիրը կոմպիլյացնելուց հետո .aux ֆայլում գրառումներ են կատարվում գրականության հղումների մասին։ Այնուհետև պետք է աշխատեցնել bibtex ծրագիրը՝ արգումենտում տալով .aux ֆայլը, որը գեներացնում է միայն ձեռագրում հիշատակված աղբյուրները պարունակող .bbl ֆայլը։ Եվ հետո նորից պետք է կոմպիլյացնել ձեռագիրը, որպեսզի փաստաթղթում ավելանա գրականության ցանկը, իսկ այն կետերում, որտեղ կատարվել են հղումները, ավելացվեն համապատասխան համարները։ Հրամանների տիպիկ հաջորդականությունը կարող է ունենալ հետևյալ տեսքը, որտեղ m0.tex-ն ձեռագրի ֆայլն է։
$ xelatex m0.tex
$ bibtex m0.aux
$ xelatex m0.tex

Ծրագրերի կոդի ներկայացումը

Երբեմն անհրաժեշտություն է առաջանում փաստաթղթում ունենալ մի որևէ ծրագրավորման լեզվով գրված տեքստ։ Ստանդարտ LaTeX-ի verbatim միջավայրը իր պարունակությունն արտածում է առանց ֆորմատավորման. այնպես, ինչպես գրված է ձեռագրում։ Բայց այդ, fancyvrb փաթեթը տրամադրում է Verbatim միջավայրը, որը հնարավորություն է տալիս անփոփոխ արտածվող տեքստն արտածել լրացուցիչ ատրիբուտներով, տողերի համարներ, շրջանակ, տառատեսակի փոփոխություն և այլն։

Ամփոփում

Առայժմ այսքանը աշխատանքների ձևավորման մասին։ Կրկնեմ նորից, որ ոճական տեսկետից ես ներկայացնում եմ միայն իմ սեփական կարծիքը։ LaTeX-ը թույլ է տալիս կամայական փոփոխություններ կատարել և վերջնական փաստաթուղթը հարմարեցնել նույնիսկ ամենաքմահաճ պահանջներին։

No comments:

Post a Comment