Linux සඳහා ප්‍රභව කේතය සමඟ සූදානම් කළ markdown2pdf විසඳුම

පෙරවදන

Markdown යනු සරල ඇල අකුරු සහ තද හැඩතල ගැන්වීම සමඟ කෙටි ලිපියක් ලිවීමට හොඳ ක්‍රමයකි, සහ සමහර විට බොහෝ පෙළ. මූලාශ්‍ර කේතය ඇතුළත් ලිපි ලිවීමට මාර්ක්ඩවුන් ද හොඳය. නමුත් සමහර විට ඔබට අහිමි නොවී, රබන් සමඟ නටන්න, එය සාමාන්‍ය, හොඳින් සාදන ලද 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 texlive ස්ථාපනය කිරීම" වැනි දෙයක් ටයිප් කිරීමෙන් ස්ථාපන උපදෙස් සමඟ එය සොයා ගැනීම පහසුය. එය තිබේ නම්, එය ඔබට පහසු වේ, බාගත කරන්න, එවිට ඔබ සංරක්ෂිතය ඔබගේ මුල් ෆෝල්ඩරයට ඉවත් කර ඇති බව අපි උපකල්පනය කරමු, එවිට ලේඛනාගාරයේ ඇති ෆෝල්ඩරය වෙත යන මාර්ගය දිස්වේ. ~/PSCyr. ඉන්පසු Terminal වෙත ගොස් පහත දැක්වෙන විධානයන් අනුපිළිවෙලින් ක්‍රියාත්මක කරන්න:

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 කට පෙර මගේම සැකසුම් සොයා බැලීමට උත්සාහ කර කුමන සැකිල්ලට වගකිව යුතුද යන්න විස්තර කරන්නෙමි. මේ අතරතුර, මම එය මගේ පරිගණකයේ කළ ආකාරය ලියන්නෙමි, ඔබට එය නැවත කිරීමට හෝ වෙනස් කිරීමට ඔබට නිදහස තිබේ.

ගොනුවක් සාදන්න template.tex නාමාවලියෙහි /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 / bin. අපි විධාන අනුපිළිවෙලින් ක්‍රියාත්මක කරමු:

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 ගොනුව නිශ්චිත Markdown උපභාෂාවකින් ලියා තිබේ නම්, 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 භාවිතා කරමින්

Markdown ගොනුව සමඟ ෆෝල්ඩරය විවෘත කරන්න (some_file.md) ටර්මිනලයේ සහ විධානය ක්‍රියාත්මක කරන්න:

user@hostname:~$ md2pdf some_file.md

ප්රතිඵලයක් වශයෙන්, ෆෝල්ඩරයේ ගොනුවක් දිස්වනු ඇත some_file.md.pdf.

නිගමනය

විස්තර කරන ලද ක්‍රමය මත පදනම්ව, ඔබට PDF ගොනු වල ඕනෑම ශෛලියක් ගොඩනගා ගත හැකිය, ඔබට Pandoc විසින් සහාය දක්වන ඕනෑම md වෙනුවට වෙනත් ආකෘති පරිවර්තනය කළ හැකිය. යම් දවසක මෙම උපදෙස් 3 හමාරකට ප්‍රයෝජනවත් වනු ඇතැයි මම බලාපොරොත්තු වෙමි.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න