Thursday, December 25, 2014

TeX/LaTeX : ఒక పరిచయం




TeX/LaTeX : ఒక పరిచయం
 



ప్రొఫెసర్ డోనాల్డ్ ఇర్విన్ నూత్, స్టాన్ ఫోర్డ్ విశ్వవిద్యాలయం లో గణిత ఆచార్యులుగా పని చేసేవారు. ఆయన The Art of Computer Programming అనే ఉద్గ్రంధాన్ని వ్రాసారు. ఆ పుస్తకం యొక్క మొదటి కూర్పు ప్రతులు అయిపోగా, తిరిగి ఆ పుస్తకాన్ని
కంప్యూటర్ ప్రోగ్రామింగ్ లో వచ్చిన నూతన ఆవిష్కరణలను చేరుస్తూ తిరిగి వ్రాసి ముద్రణకోసం పబ్లిషర్ కు ఇచ్చారు. మొదటి కూర్పును మెటల్ ఫాంటులను ఉపయోగించి ముద్రించగా, ద్వితీయ ముద్రణ సమయానికి కంప్యూటర్ టైప్ సెట్టింగ్ మొదలయింది. ప్రింటర్ పంపిన గాలీ ప్రూఫులను చూసిన నూత్ చాలా నిరుత్సాహ పడ్డారు. అంతకు ముందు 4 సంవత్సరాలనుండి నూత్ అమెరికన్ మాథమాటికల్ సైన్సెస్ వారి జర్నల్స్ కు తన పరిశోధనా పత్రాలను పంపడానిని మానివేశాడు. దానికి కారణం అ.మా.సై. డిజిటల్ టైప్ సెట్టింగ్ ను స్వీకరించి తమ జర్నల్స్ ను ముద్రించడం.

ఆ సమయంలో నూత్ ఈ విధంగా ఆలోచించారు ``నేనొక గణిత శాస్త్రజ్ఞుడను అలాగే కంప్యూటర్ ప్రోగ్రామింగ్ చేయడం తెలుసు. అలాంటప్పుడు నేనెందుకు ఒక కంప్యూటర్ ప్రోగ్రామును తయారు చెయ్యకూడదు.'' అనుకున్నదే తడవుగా తన పుస్తక ముద్రణను పక్కన పెట్టి ఈ విషయం గురించి ఆలోచించడం మొదలు పెట్టాడు. చుట్టుపక్కల ఉన్న ముద్రణాలయాలను దర్శించి అక్కడ పనిచేస్తున్న కంపోజర్లను కలిసి పుస్తక ముద్రణలో ని మెళకువలను ఆకళింపు చేసుకున్నాడు.

దాని ఆధారంగా ఆయన రెండు ప్రోగ్రాములను తయారు చేయడానికి సంకల్పించాడు. ఒకటి \TeX\ (టెక్)రెండవది Metafont (మెటాఫాంట్). మెటాఫాంట్ టెక్ ప్రోగ్రాముకు కావలసిన ఖతులను తయారు చెయ్యడానికి ఉపయోగించే ప్రోగ్రామ్ అయితే, టెక్  ఆ ఖతులను ఉపయోగించి పుస్తకాలను కంపోజ్ చెయ్యడానికి ఉపయోగపడే ఇంజన్. అదే సమయంలో అమెరికన్ మాథమేటికల్ సొసైటి నూత్ ను తమ సొసైటీలో ప్రసంగిచడానికి ఆహ్వానించింది. నూత్ ఈ అవకాశాన్ని తను తయారు చేస్తున్న కంప్యూటర్ ప్రోగ్రాముల గురించి చెప్పడానికి ఉపయోగించుకున్నారు. నూత్ ప్రసంగాన్ని విన్న అమెరికన్ మాథమేటికల్ సొసైటీ సభ్యులు ఎంతగానో ప్రభావితమయ్యారు. కారణం నూత్ తన ప్రోగ్రాములను ఉచితంగా ఇవ్వడానికి నిర్ణయించడం. వారు ఈ కంప్యూటరు ప్రోగ్రాము దాదాపుగా తయారుగా ఉందని, త్వరలోనే ఉపయోగంలోకి వస్తుందని భావించారు. ఇది 1977 లో జరిగింది.

టెక్ మరియు మెటాఫాంటు ప్రోగ్రాములు ఉపయోగించే స్థాయికి 1982 లో తయారయ్యాయి. ఈ కార్యక్రమంలో నూత్ కు ఎందరో కంప్యూటరు ప్రోగ్రామరులు సహాయం చేసారు.  ప్రస్తుతం టెక్ వెర్షన్ సంఖ్య  $\pi$ విలువకు సమానము - అనగా 3.1.... అలాగే మెటాఫాంటు వెర్షన్ సంఖ్య $\epsilon$ విలువకు సమానము - అనగా 2. .... నూత్ టెక్ మరియు మెటాఫాంటు ప్రోగ్రాములను స్థిరీకరించారు. అనగ్ టెక్ వెర్షన్ 4 వచ్చే అవకాశం కాని మెటాఫాంట్ వెర్షన్ 3 వచ్చె అవకాశం కాని  లేదు.

నూత్ టెక్ ప్రోగ్రామును పాస్కల్ లాంగ్వేజ్ ను ఉపయోగించి పిడిపి 10 కంప్యూటరు మీద తయారు చేసారు. పాస్కల్ లో ఉన్న పరిమితుల కారణంగా టెక్ ప్రొగ్రాముకు కూడా కొన్ని పరిమితులు ఎర్పడ్డాయి. టెక్ ప్రోగ్రాము ముందు 128 అక్షరాలను మాత్రమే ఉపయోగించేదిగా ఉండేది. కాని ఐరోపా దేశస్థులు తమ భాషలోని అక్షరాలను కూడా టెక్ లో వాడగలగి ఉండాలని పట్టుపట్టగా టెక్ ప్రోగ్రామును తిరిగి వ్రాసారు కాని ఎక్కువ మార్పులను చేయనని తెలిపారు. కాని చివరకు చాలా మార్పులు చేసారు. ఇప్పుడు టెక్ 256 అక్షరాలను వాడగలదు. టెక్ వాడే అక్షరాలను మెటాఫాంట్ ఉపయోగించి తయారు చేసారు. ఇవి బిట్ మాప్ ఫాంట్లు. ఇవి టెక్ కు మాత్రమే పరిమితము.

తరువాత Tan The Than అనే అతను pdfTeX ను తయారు చేసాడు. దీనితో పోస్ట్ స్క్రిప్ట్ ఫాంట్ లను వాడడం సులువయ్యింది. అలాగే నూత్ తయారుచేసిన మెటాఫాంట్ ఫాంట్లను (cmr, concrete) పోస్ట్ స్క్రిప్ట్ లోకి కూడా మార్చారు.

ఏదేనా సిస్టమ్ ను టెక్ అని పిలవాలంటే అని తను తయారు చేసిన కొన్ని పరీక్షలలో నెగ్గాలని నూత్ షరతు విధించారు.

దీని తరువాత NTS (New Typing System) అనే ప్రోగ్రామ్ కూడా వచ్చింది కాని అంత గా ప్రాచుర్యం పొందలేదు.

Yannis Horalambus అను నతడు Omega అనే ప్రోగ్రామ్ ను తయారు చేసాడు. ఇది యూనికోడ్ ఫాంటు లను ఉపయోగించగలదు మరియు అన్నిభాషలకు పనిచేయగలదు. కాని ఇది ఒక అకాడమిక్ ప్రోజెక్టుగానే మిగిలిపోయింది. దీనిని అభివృద్ధి చేయడం అపివేశారు. ఈ Omega ఆధారంగా తరువాత Aleph అనే ప్రోగ్రామ్ తయారు అయ్యింది. దీనిని ఎక్కువగా అరబిక్ భాషలకు వాడుతున్నారు.

తరువాత Silmaris కు చెందిన జొనాథన్ క్యూ (Jonathan Kew) అనునతడు \XeTeX\ అను ప్రోగ్రామ్ ను రూపకల్పన చేసినాడు. దీనిని యాపిల్ సంస్థవారి కంప్యూటర్లకోసం తయారు చేసారు. కాని ఇప్పుడు దీనిని విండోస్ మరియు లైనక్స్ ల కోసం కూడా అభివృద్ధి చేసారు. ఇది యూనీకోడ్ ఆధారితం. అందువల్ల యూనీకోడ్ ఖతులను మరియు సిస్టమ్ ఖతులను కూడా ఉపయోగించి పత్రాలను తయారు చెయ్యవచ్చు.

టెక్ విశిష్టతలు
టెక్ మరియు మెటాఫాంట్ ప్రోగ్రాములను తయారు చేయడానికి నూత్ లిటరేట్ ప్రోగ్రామింగ్ అనే పద్ధతిని ఉపయోగించాడు. దీని కోసం ఆయన Weave మరియు Tangle అనే ప్రోగ్రామ్ ల తో web అనే సిస్టమ్ ను తయారు చేశాడు. దీనిని ఉపయోగించి ఆయన తన ప్రోగ్రామ్ లోనే దానికి సంబంధించిన డాక్యుమెంటేషన్ కూడా వ్రాసేవాడు. దీనిని Weave ద్వారా నడిపినప్పుడు ప్రొగ్రామ్ విడిగాను డాక్యుమెంటేషన్ విడిగాను అయ్యేది. అలాగే కోడ్ లో ఏమయిన మార్పులు చేయవలసి వస్తే Tangle ను వాడిన సరయిన చోట ఆ మార్పు అయ్యేది. దీనివల్ల నూత్ వ్రాసిన ప్రోగ్రామ్ ను చాలా మంది చదివి అర్థం చేసుకోవడం మరియు ప్రోగ్రాములో మార్పులు చేయడం సులభమయ్యింది. ముందు చెప్పిన విధంగా నూత్ టెక్ మరియు మెటాఫాంట్ ప్రోగ్రాములను పాస్కల్ లాంగ్వేజ్ ను ఉపయోగించి తయారు చేసారు. అందువల్ల  C లాంగ్వేజ్ కోసం తరువాత CWEB ను తయారు చేసారు.

తరువాత నూత్ వ్రాసిన మెటాఫాంట్ ప్రోగ్రామ్ ను కొంచెం మార్చి ... మెటాపోస్ట్ అనే ప్రోగ్రామ్ ను తయారు చేసాడు. దీనిని ఉపయోగించి టెక్స్ ను ఉపయోగించి తయారు చేసే పుస్తకాలలోకి కావలసిన బొమ్మలను తయారు చేయవచ్చు. ఈ బొమ్మలలో గణిత సూత్రాలను కూడా ఇమిడింపచేయవచ్చు. దీనితో తయారయ్యే బొమ్మలు eps ఫార్మాట్ లో తయారవుతాయి.

దీనిని ఇంకా అభివృద్ధి చేసి ప్రస్తుతం Asymptote అనే ప్రోగ్రామ్ ను కూడా విడుదల చేసారు. దీనితో pdf ఫార్మాట్ లో బొమ్మలు తయారవుతాయి.

LaTeX అంటే ఏమిటి?
టెక్ ను ఉపయోగించి పుస్తకాలను అందంగా తయారు చేయవచ్చు. నూత్ తన పుస్తకాల నన్నింటిని తన టెక్ ప్రోగ్రామును ఉపయోగించే వ్రాసారు (Digital Typography Series of books \& Art of Computer programming). కాని టెక్ ను ఉపయోగించి పుస్తకాలు రాయాలంటే ముందుగా మాక్రోలను తయారు చేసుకోవాలి. దాని కోసం టెక్ ను క్షుణ్ణంగా అధ్యయనం చేయవలసిన అవసరం ఉంది.

లాస్లి లాంపోర్టు అనే కంప్యూటర్ శాస్త్రజ్ఞుడు తను వ్రాసే పుస్తకానికి తయారు చేసిన మాక్రోలను \LaTeX\ అనే పేరుతో 1990 లో విడుదల చేసాడు. అప్పటినుండి అమెరికన్ మాథమేటికల్ అసోసియోషన్ కూడా వీటిని తన జర్నల్స్ కోసం ఉపయోగించడం మొదలు పెట్టడంతో అన్ని జర్నల్స్ దీనిని వాడడం  మొదలు పెట్టాయి. ప్రస్తుతం \LaTeXe\ ని వాడుతున్నారు. దీనిని ఇంకా అభివృద్ధి చేసి \LaTeX 3 విడుదల చేయాలన్న ప్రయత్నాలు జరుగుతున్నాయి.

 \LaTeX\ వచ్చిన తరువాత టెక్ ను ఉపయోగించి పుస్తకాలు తయారు చేయడం సులభం అయ్యింది. దీనికి మరిన్ని వసతులు కల్పించడానికి చాలా మంది ఔత్సాహికులు చాలా ప్యాకేజీలను తయారు చేసారు.

అలాగే Pragma అనే పబ్లిషింగ్ సంస్థ Con\TeX t అనే మాక్రోలను తయారు చేసింది. వీరు టెక్ కు పెర్ల్ మరియు రూబీ ప్రోగ్రామింగ్ లాంగ్వేజ్ లను కలిపి దీనిని తయారు చేసారు. దీనికి మెటాపోస్ట్ ను మెటాఫన్ అనే పేరుతో కలిపి చాలా సులభంగా పుస్తకాలను ముద్రించే విధంగా తయారు చేసారు. కాని ఇది అంత జనాదరణను పొందలేదు.

అలాగే లాలిపాప్ అనే మాక్రోలు కూడా దొరుకుతున్నాయి. దీని ప్రోగ్రామింగ్ html ప్రోగ్రామింగ్ లా ఉంటుంది.

టెక్ లో ఉన్న విశేషం ఏమిటింటే 20 - 25 సంవత్సరాల క్రితం తయారు చేసిన పుస్తకాలను కూడా తిరిగి టెక్ మీద రన్ చేసినప్పుడు ఏవిధమయిన పొరపాట్లు రాకుండా 20 సంవత్సరాల క్రితం అవుట్ పుట్ ఎలా వచ్చిందో ఇప్పుడు కూడా అలాగే రావడం. అలాగే టెక్ ను ఉపయోగించి వ్రాసిన పుస్తకాలను ఏ ఆపరేటింగ్ సిస్టమ్ ల మీద రన్ చేసినా అవుట్ పుట్ ఒకలాగే ఉంటుంది. ఈ సౌలభ్యత  వర్డ్ ప్రోసెసర్ లకు లేదు.

టెక్ ఫైళ్లు పూర్తిగా టెక్స్టు ఫైళ్లు. అందువల్ల ఇవి చిన్నగా ఉంటాయి మరియు వీటిని ఇంటర్ నెట్ ద్వారా పంపడం సులభం. అంతర్గతం గా ఏవిధమయిన కోడ్ ఉండదు కనక మాక్రో వైరస్ లు మొదలగునవి సిస్టమ్ లో ప్రవేశించే అవకాశం లేదు.

టెక్ ఎలా పనిచేస్తుంది

పుస్తక ముద్రణ లోని ఈ అంశాలను గమనించండి. రచయిత పుస్తకాన్ని వ్రాసి దాని వ్రాత ప్రతిని (manuscript) ముద్రణాలయానికి అందచేస్తాడు. తరువాత ఆ వ్రాతప్రతిలో ఏ ఖతిని వాడాలి, ఎక్కడ వాలు అక్షరాలు వాడాలి, ఎక్కడ బొద్దు అక్షరాలు వాడాలి, హెడిండ్ కు ఏ ఖతిని వాడాలి మొదలయిన వాటిని ఫార్మాటర్ మార్జిన్ లో మార్క్ చేసి కంపోజిటర్ కు అందచేస్తారు. కంపోజిటరు ఆ మార్కింగ్ లను బట్టి పుస్తకాన్ని కంపోజ్ చేస్తాడు.

కంప్యూటర్లు అందరికి అందుబాటులోకి వచ్చాక ఇప్పుడు ఎవరూ  పుస్తకాలు చేతితో వ్రాసేవారు లేరు. అందరూ కంప్యూటరు మీదే పుస్తకాలను టైపు చేసేస్తున్నారు. దానికోసం మైక్రోసాఫ్ట్ వర్డు మొదలయిన వర్డ్ ప్రోసెసర్లను వాడుతున్నారు. వర్డ్ ప్రోసెసర్లు WYSIWYG (What you see is what you get) సూత్రం మీద పనిచేస్తాయి. అందువల్ల మనం పుస్తకాన్ని టైపు చేసేటప్పుడు దానిలోని కంటెంటు మీద కన్నా మన ధ్యాస దాని ఫార్మాటింగ్ మీద ఎక్కువవుతుంది. అంతేకాక మనం పుస్తకాన్ని అందంగా చేసే ప్రయత్నంలో రకరకాల ఖతులను వాడి పుస్తకాన్ని పాడుచేస్తాము.

మీరు కనక పాత కాలంలో ముద్రించిన పుస్తకాలను చూసిన రెండు లేక మూడు ఖతులను మాత్రమే వాడినట్లు గమనిస్తారు.

లాటెక్ ప్రోగ్రామ్ ను ఉపయోగించి మనం మన పుస్తకంలో ఏది టైటిల్, ఏది సెక్షను హెడింగు, ఏది సబ్ హెడింగో మనం చెప్తాము. అలాగే మనం ఏ ఖతులను వాడాలో ముందుగానే నిర్ణయిస్తాము. దాని ప్రకారం టెక్ మన పుస్తకాన్ని ఫార్మాట్ చేస్తుంది. అలాగే లాటెక్ ను వాడడం వల్ల విషయ సూచి, ఇండెక్స్ మొదలయినవి చాలా సులభంగా తయారు చెయ్యవచ్చు. అలాగే పుస్తకం లో వచ్చిన బొమ్మలను మరియు ఆధారాలను (References) కూడా సులభంగా రిఫర్ చెయ్యవచ్చు. ఏవన్నా మార్పులు కావాలంటే మొత్తం పుస్తకం అంతా చాలా సులభంగా మార్చుకోవచ్చు.

పుస్తకాలను వ్రాయడానికి లాటెక్ ను ఒకసారి ఉపయోగించిన వారు,  ఆ పుస్తకము అందము చూసి మరల మరల పుస్తకాలను వ్రాయడానికి ఉత్సాహపడుతుంటారు.

No comments: