Linuxக்கான மூலக் குறியீட்டுடன் தயாராக தயாரிக்கப்பட்ட markdown2pdf தீர்வு

முன்னுரையில்

மார்க் டவுன் ஒரு சிறிய கட்டுரையை எழுதுவதற்கான சிறந்த வழியாகும், சில சமயங்களில் எளிமையான சாய்வு மற்றும் தடித்த வடிவமைப்புடன் நிறைய உரைகளை எழுதலாம். மூலக் குறியீடு உள்ளிட்ட கட்டுரைகளை எழுதுவதற்கு மார்க் டவுன் நல்லது. ஆனால் சில நேரங்களில் நீங்கள் தவறாமல், ஒரு வழக்கமான, நன்கு வடிவமைக்கப்பட்ட PDF கோப்பில் முந்திக்கொள்ள ஒரு டம்போரைனுடன் நடனமாட விரும்புகிறீர்கள், எனவே மாற்றத்தின் போது எந்த பிரச்சனையும் இல்லை, எடுத்துக்காட்டாக, நான் இருந்தேன் - நீங்கள் ரஷ்ய மொழியில் எழுத முடியாது. மூலக் குறியீட்டின் கருத்துகள், மிக நீண்ட கோடுகள் மாற்றப்படவில்லை, ஆனால் வெட்டு மற்றும் பிற சிறிய சிக்கல்கள். மாற்றியை விரைவாக அமைக்க அறிவுறுத்தல் உங்களை அனுமதிக்கும் md2pdf அது எப்படி வேலை செய்கிறது என்பதை உண்மையில் புரிந்து கொள்ளாமல். அதிகமாகவோ அல்லது குறைவாகவோ தானியங்கி நிறுவலுக்கான ஸ்கிரிப்ட் பொருத்தமான பிரிவில் கீழே உள்ளது.

மாற்றத்திற்கான எனது மாதிரி TeX டெம்ப்ளேட் PSCyr எழுத்துரு தொகுப்பைப் பயன்படுத்துகிறது, இதில் மைக்ரோசாஃப்ட் எழுத்துருக்களுக்கான ஆதரவு உள்ளது, அதாவது டைம்ஸ் நியூ ரோமன். GOST இன் படி டிப்ளோமாவிற்கு அத்தகைய தேவைகள் இருந்தன. எப்படி என்று உங்களுக்குத் தெரிந்தால், உங்கள் தேவைகளுக்கு ஏற்ப டெம்ப்ளேட்டை மாற்றலாம். எனது சொந்த அறிவுறுத்தல்களில், நீங்கள் முதலில் TexLive இல் PSCyr அமைப்பைப் பயன்படுத்தி ஏமாற்ற வேண்டும். அமைப்பு Linux Mint Mate விநியோகத்தில் செய்யப்படுகிறது, மற்ற விநியோகங்களுக்கு உங்கள் கணினிக்கான நிலையான TexLive தொகுப்பு கோப்புறைகளை நீங்கள் கூகிள் செய்ய வேண்டியிருக்கும்.

TexLive ஐ நிறுவுகிறது

நிச்சயமாக, இந்த தொகுப்பின் தேவையான பகுதிகளை மட்டுமே நீங்கள் நிறுவ முடியும். ஆனால் தனிப்பட்ட முறையில், குறைந்தபட்ச தேவையான வேலை நிறுவலைத் தேட நான் மிகவும் சோம்பேறியாக இருந்தேன். எல்லாம் செயல்படுவதை உறுதிசெய்ய, முழு TexLive தொகுப்பையும் நிறுவவும். அது அழைக்கபடுகிறது டெக்ஸ்லைவ்-முழு மற்றும் 2 ஜிகாபைட்களுக்கு சற்று அதிகமாக எடையுள்ளதாக இருக்கும், இந்த உண்மையை மனதில் கொள்ளுங்கள். நாங்கள் கட்டளையை செயல்படுத்துகிறோம்:

user@hostname:~$ sudo apt install texlive-full -y

போதுமான நீண்ட நிறுவலுக்குப் பிறகு, நீங்கள் அடுத்த உருப்படிக்குச் செல்லலாம்.

Pandoc மாற்றியை நிறுவுதல்

Pandoc என்பது லினக்ஸ் தொகுப்பாகும், இது சில உரை வடிவங்களை மற்றவற்றிற்கு மாற்ற உங்களை அனுமதிக்கிறது. இணையத்தில் நீங்கள் காணக்கூடிய பல சுவாரஸ்யமான அம்சங்களைக் கொண்டுள்ளது. மார்க் டவுன் கோப்பை PDF ஆக மாற்றும் சாத்தியத்தில் மட்டுமே நாங்கள் ஆர்வமாக உள்ளோம். Pandoc நிறுவப்பட்டுள்ளதா எனச் சரிபார்க்கவும், இல்லையெனில் நிறுவவும். உதாரணமாக இது போன்ற:

user@hostname:~$ dpkg -s pandoc

இது நிறுவப்படவில்லை என்று வெளியீடு கூறினால், நிறுவவும்:

user@hostname:~$ sudo apt install pandoc -y

TexLive க்கான PSCyr தொகுப்பை நிறுவுகிறது

முதலில் நீங்கள் PSCyr ஐ பதிவிறக்கம் செய்ய வேண்டும். இப்போதைக்கு இது இன்னும் கிடைக்கிறது இணைப்பை, கட்டுரையைப் படிக்கும் நேரத்தில் சில காரணங்களால் அது கிடைக்கவில்லை என்றால், விரக்தியடைய வேண்டாம், Google இல் "PsCyr டெக்ஸ்லைவ் நிறுவுதல்" போன்ற ஒன்றைத் தட்டச்சு செய்வதன் மூலம் நிறுவல் வழிமுறைகளுடன் அதைக் கண்டுபிடிப்பது எளிது. இது கிடைத்தால், உங்களுக்கு எளிதாக இருக்கும், பதிவிறக்கம் செய்து, காப்பகத்தை உங்கள் முகப்பு கோப்புறையில் அவிழ்த்துவிட்டீர்கள் என்று நாங்கள் கருதுவோம், இதனால் காப்பகத்தில் உள்ள கோப்புறைக்கான பாதை இப்படி இருக்கும். ~/PSCyr. பின்னர் டெர்மினலுக்குச் சென்று பின்வரும் கட்டளைகளை வரிசையாக இயக்கவும்:

user@hostname:~$ cd
user@hostname:~$ mkdir ./PSCyr/fonts/map ./PSCyr/fonts/enc
user@hostname:~$ cp ./PSCyr/dvips/pscyr/*.map ./PSCyr/fonts/map/
user@hostname:~$ cp ./PSCyr/dvips/pscyr/*.enc ./PSCyr/fonts/enc/
user@hostname:~$ echo "fadr6t AdvertisementPSCyr "T2AEncoding ReEncodeFont"" > ./PSCyr/fonts/map/pscyr.map

அடுத்து, உள்ளூர் அடைவு எங்குள்ளது என்பதைக் கண்டறியவும் texmf. நாங்கள் கட்டளையை செயல்படுத்துகிறோம்:

user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'

பெரும்பாலும் இந்த அடைவு உங்களிடம் உள்ளது - /usr/local/share/texmf/, பின்னர் நாம் செய்கிறோம்:

user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/

சரி, அல்லது நீங்கள் கவலைப்பட முடியாது மற்றும் ஒரு கோப்புறையில் நகலெடுக்கும் கட்டளையை இயக்கவும் texmf அவள் எங்கிருந்தாலும்:

user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')

PSCyr எழுத்துருக்கள் நிறுவப்பட்டுள்ளன, TexLive உடன் இணைக்கவும்:

user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr

md2pdf மாற்றத்திற்கான LaTeX டெம்ப்ளேட்

இந்த டெம்ப்ளேட் எவ்வாறு கட்டமைக்கப்பட்டுள்ளது என்பதை நான் சரியாக விவரிக்க மாட்டேன், மேலும் அதிக விளக்கம் இல்லாமல் ஸ்பாய்லரின் கீழ் தருகிறேன். குறைந்த பட்சம் நிறைய மூலக் குறியீட்டைக் கொண்ட உரைகளைக் கையாளும் விதத்தில், இது நன்றாக உள்ளமைக்கப்பட்டுள்ளது என்று சொன்னால் போதுமானது. உள்தள்ளல்களின் அளவு, வரி இடைவெளி, பிரிவுகள் மற்றும் துணைப்பிரிவுகளின் எண்ணிக்கையின் பற்றாக்குறை ஆகியவற்றில் நீங்கள் திருப்தி அடையவில்லை என்றால், "லேடெக்ஸில் இதை எப்படி செய்வது ..." என்ற கேள்வியை இணையத்தில் கூகிள் செய்வது மிகவும் எளிதானது என்பது என் கருத்து. பின்னர் உங்கள் தேவை. இது தெளிவாக இல்லை என்றால், கருத்துகளில் எழுதுங்கள், நான் 4 ஆண்டுகளுக்கு முன்பு எனது சொந்த அமைப்புகளை ஆராய முயற்சிப்பேன் மற்றும் வார்ப்புருவின் எந்த வரி எதற்கு பொறுப்பு என்பதை விவரிக்கிறேன். இதற்கிடையில், எனது கணினியில் நான் அதை எவ்வாறு செய்தேன் என்பதை எழுதுவேன், அதை நீங்களே மீண்டும் செய்யலாம் அல்லது மாற்றலாம்.

ஒரு கோப்பை உருவாக்கவும் டெம்ப்ளேட்.டெக்ஸ் பட்டியலில் /usr/share/texlive/:

user@hostname:~$ sudo touch /usr/share/texlive/template.tex

அதற்கு படிக்க அனுமதி கொடுங்கள்:

user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.tex

அதை ரூட்டின் கீழ் திறந்து, கீழே உள்ள ஸ்பாய்லரின் கீழ் மறைத்து வைக்கப்பட்டுள்ள உள்ளடக்கங்களை அதில் ஒட்டவும்:

user@hostname:~$ sudo nano /usr/share/texlive/template.tex

டெம்ப்ளேட் உள்ளடக்கம் /usr/share/texlive/template.tex

documentclass[oneside,final,14pt]{extreport}
usepackage{extsizes}
usepackage{pscyr}
renewcommand{rmdefault}{ftm}
usepackage[T2A]{fontenc}
usepackage[utf8]{inputenc}
usepackage{amsmath}
usepackage{mathtext}
usepackage{multirow}
usepackage{listings}
usepackage{ucs}
usepackage{hhline}
usepackage{tabularx}
usepackage{booktabs}
usepackage{longtable}
usepackage{titlesec}
usepackage{hyperref}
usepackage{graphicx}
usepackage{setspace}
usepackage[center,it,labelsep=period]{caption}
usepackage[english,russian,ukrainian]{babel}
usepackage{vmargin}
newcommand{specialcell}[2][c]{%
    begin{tabular}[#1]{@{}c@{}}#2end{tabular}}
setpapersize{A4}
setmarginsrb {1cm}{1cm}{1cm}{1cm}{0pt}{0mm}{0pt}{13mm}
usepackage{indentfirst}
setlengthparindent{1cm}
renewcommand{baselinestretch}{1}
renewcommandthechapter{}
renewcommandthesection{}
renewcommandthesubsection{}
renewcommandthesubsubsection{}
titleformat
{chapter} % command
{bfseriesnormalsizecentering} % format
{thechapter} % label
{0.5ex} % sep
{
    centering
}
[
vspace{-1.5ex}
] % after-code
titleformat
{section}
[block]
{normalfontbfseries}
{thesection}{0.5em}{}
sloppy
letoldenumerateenumerate
renewcommand{enumerate}{
  oldenumerate
  setlength{itemsep}{1pt}
  setlength{parskip}{0pt}
  setlength{parsep}{0pt}
}
letolditemizeitemize
renewcommand{itemize}{
  olditemize
  setlength{itemsep}{1pt}
  setlength{parskip}{0pt}
  setlength{parsep}{0pt}
}
providecommand{tightlist}{%
  setlength{itemsep}{0pt}setlength{parskip}{0pt}}

titlespacing{subsubsection}{parindent}{3mm}{3mm}
titlespacing{subsection}{parindent}{3mm}{3mm}
usepackage{color}

lstset{
    basicstyle=footnotesizettfamily,
    inputencoding=utf8,
    extendedchars=true,
    showspaces=false,
    keepspaces=true
    showstringspaces=false,
    showtabs=false,
    tabsize=4,
    captionpos=b,
    breaklines=true,
    breakatwhitespace=true,
    breakautoindent=true,
    linewidth=textwidth
}

begin{document}
$if(title)$
maketitle
$endif$
$if(abstract)$
begin{abstract}
$abstract$
end{abstract}
$endif$

$for(include-before)$
$include-before$

$endfor$
$if(toc)$
{
$if(colorlinks)$
hypersetup{linkcolor=$if(toccolor)$$toccolor$$else$black$endif$}
$endif$
setcounter{tocdepth}{$toc-depth$}
tableofcontents
}
$endif$
$if(lot)$
listoftables
$endif$
$if(lof)$
listoffigures
$endif$
$body$

$if(natbib)$
$if(bibliography)$
$if(biblio-title)$
$if(book-class)$
renewcommandbibname{$biblio-title$}
$else$
renewcommandrefname{$biblio-title$}
$endif$
$endif$
bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$}

$endif$
$endif$
$if(biblatex)$
printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$

$endif$
$for(include-after)$
$include-after$

$endfor$
end{document}

கோப்பை சேமிக்கிறது /usr/share/texlive/template.tex மற்றும் Makrdown கோப்பை PDF ஆக மாற்றும் ஒரு ஸ்கிரிப்டை எழுதவும், அதே கோப்புறையில் .pdf என்ற முன்னொட்டுடன் Markdown கோப்பு எனப்படும் கோப்பை உருவாக்கவும், அதாவது மாற்றத்திற்குப் பிறகு filename.md கோப்புறையில் தோன்றும். filename.md.pdf. ஸ்கிரிப்ட் என்று அழைக்கலாம் md2pdf மற்றும் வழியில் வைத்து இங்கு / usr / பின். கட்டளைகளை வரிசையாக இயக்குவோம்:

user@hostname:~$ cd
user@hostname:~$ touch md2pdf
user@hostname:~$ echo "#!/bin/bash" > md2pdf
user@hostname:~$ echo "pandoc --output=$1.pdf --from=markdown_github --latex-engine=pdflatex --listings --template=/usr/share/texlive/template.tex $1" >> md2pdf
user@hostname:~$ sudo cp md2pdf /usr/bin/
user@hostname:~$ sudo chmod 111 /usr/bin/md2pdf

4 வது வரியில் உண்மையில் மாற்று கட்டளை உள்ளது. கவனம் செலுத்த --from=markdown_github. Markdown இன் GitHub பதிப்பு அசல் Markdown உடன் பின்னோக்கி இணக்கமாக உள்ளது, எனவே உங்கள் உரை அதில் எழுதப்பட்டிருந்தால், நீங்கள் கவலைப்பட வேண்டியதில்லை. உங்கள் MD கோப்பு ஒரு குறிப்பிட்ட மார்க் டவுன் பேச்சுவழக்கில் எழுதப்பட்டிருந்தால், Pandoc கையேட்டைப் படிக்கவும் (man pandoc), உங்கள் செயல்படுத்தல் ஆதரிக்கப்படுவதை உறுதிசெய்து, மாற்றங்களைச் செய்யவும் /usr/bin/md2pdf தேவைப்பட்டால்.

அதிகமாகவோ அல்லது குறைவாகவோ தானியங்கி நிறுவலுக்கான ஸ்கிரிப்ட்

நீங்கள் உண்மையில் எதையும் உள்ளமைக்க விரும்பவில்லை என்றால், உபுண்டு போன்ற விநியோகம் உங்களிடம் இருந்தால், ஸ்பாய்லரின் கீழ் மறைத்து வைக்கப்பட்டுள்ள உள்ளடக்கங்களைக் கொண்டு ஒரு ஸ்கிரிப்டை உருவாக்க முயற்சி செய்யலாம், மேலும் பெரும்பாலும் அனைத்தும் தானாகவே நிறுவப்படும், ஒரே விஷயம், நகலெடுப்பது மட்டுமே. தேவையான இடங்களில் TeX டெம்ப்ளேட் மேலே ஸ்பாய்லரின் கீழ் வெளியிடப்பட்டது. முனையத்தைத் திறந்து இயக்கவும்:

user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh

பின்னர் பின்வரும் உள்ளடக்கத்துடன் அதை நிரப்பவும்:

$HOME/installmd2pdf.sh ஸ்கிரிப்ட்டின் உள்ளடக்கங்கள்

#!/bin/bash
cd /tmp
sudo apt install texlive-full pandoc -y
wget http://blog.harrix.org/wp-content/uploads/2013/02/PSCyr.zip
unzip -qq PSCyr.zip
cd
mkdir ./PSCyr/fonts/map ./PSCyr/fonts/enc
cp ./PSCyr/dvips/pscyr/*.map ./PSCyr/fonts/map/
cp ./PSCyr/dvips/pscyr/*.enc ./PSCyr/fonts/enc/
echo "fadr6t AdvertisementPSCyr "T2AEncoding ReEncodeFont"" > ./PSCyr/fonts/map/pscyr.map
sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')
sudo texhash
updmap --enable Map=pscyr.map
sudo mktexlsr
sudo touch /usr/share/texlive/template.tex
touch md2pdf
echo "#!/bin/bash" > md2pdf
echo "pandoc --output=$1.pdf --from=markdown_github --latex-engine=pdflatex --listings --template=/usr/share/texlive/template.tex $1" >> md2pdf
sudo cp md2pdf /usr/bin/
sudo chmod 111 /usr/bin/md2pdf

கட்டளையுடன் அதை இயக்கவும்:

user@hostname:~$ sudo bash $HOME/installmd2pdf.sh

அதை மறந்துவிடாதே /usr/share/texlive/template.tex பிரிவில் குறிப்பிடப்பட்டுள்ளபடி நிரப்பப்பட வேண்டும் "md2pdf மாற்றத்திற்கான LaTeX டெம்ப்ளேட்" உள்ளடக்கம்.

md2pdf ஐப் பயன்படுத்துகிறது

மார்க் டவுன் கோப்புடன் கோப்புறையைத் திறக்கவும் (some_file.md) டெர்மினலில் மற்றும் கட்டளையை இயக்கவும்:

user@hostname:~$ md2pdf some_file.md

இதன் விளைவாக, கோப்புறையில் ஒரு கோப்பு தோன்றும் some_file.md.pdf.

முடிவுக்கு

விவரிக்கப்பட்ட முறையின் அடிப்படையில், நீங்கள் PDF கோப்புகளின் எந்த பாணியையும் உருவாக்கலாம், md க்கு பதிலாக மற்ற வடிவங்களையும் மாற்றலாம், Pandoc ஆல் ஆதரிக்கப்படும். ஒரு நாள் இந்த அறிவுறுத்தல் மூன்றரை நபர்களுக்கு பயனுள்ளதாக இருக்கும் என்று நான் நம்புகிறேன்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்