Suluhisho la markdown2pdf lililo tayari na msimbo wa chanzo wa Linux

utangulizi

Markdown ni njia nzuri ya kuandika makala fupi, na wakati mwingine maandishi mengi, yenye italiki na umbizo la ujasiri. Markdown pia ni nzuri kwa kuandika nakala zilizo na nambari ya chanzo iliyojumuishwa. Lakini wakati mwingine unataka kucheza bila kupoteza, kucheza na tambourini ili kuichukua kuwa faili ya kawaida ya PDF, iliyotengenezwa vizuri, na ili hakuna shida wakati wa ubadilishaji, ambayo, kwa mfano, nilikuwa nayo - huwezi kuandika kwa Kirusi. maoni ya msimbo wa chanzo, mistari ndefu sana haihamishwi, lakini kata na matatizo mengine madogo. Maagizo yatakuwezesha kuanzisha haraka kibadilishaji md2pdf bila kuelewa jinsi inavyofanya kazi. Hati ya usakinishaji wa kiotomatiki zaidi au kidogo iko hapa chini katika sehemu inayofaa.

Sampuli yangu ya kiolezo cha ubadilishaji cha TeX hutumia kifurushi cha fonti cha PSCyr, ambacho kinajumuisha usaidizi wa fonti za Microsoft, ambazo ni. Times New Roman. Kulikuwa na mahitaji kama haya ya diploma kulingana na GOST. Ikiwa unajua jinsi gani, unaweza kurekebisha kiolezo ili kuendana na mahitaji yako. Kwa maagizo yangu mwenyewe, itabidi kwanza udanganye na mpangilio wa PSCyr katika TexLive. Usanidi unafanywa katika usambazaji wa Linux Mint Mate, kwa usambazaji mwingine unaweza kuhitaji google folda za kawaida za kifurushi za TexLive za mfumo wako.

Inasakinisha TexLive

Bila shaka, unaweza kufunga sehemu muhimu tu za mfuko huu. Lakini kibinafsi, kwa kweli nilikuwa mvivu sana kutafuta usakinishaji wa chini wa lazima wa kufanya kazi. Ili kuhakikisha kuwa kila kitu kinafanya kazi, sakinisha kifurushi kizima cha TexLive. Inaitwa maandishi-imejaa na ina uzito kidogo zaidi ya gigabytes 2, kumbuka ukweli huu. Tunatekeleza amri:

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

Baada ya ufungaji wa muda mrefu wa kutosha, unaweza kuendelea na kipengee kinachofuata.

Kufunga kibadilishaji cha Pandoc

Pandoc ni kifurushi cha Linux ambacho hukuruhusu kubadilisha umbizo la maandishi kuwa zingine. Ina vipengele vingi vya kuvutia ambavyo unaweza kupata mwenyewe kwenye mtandao. Tunavutiwa tu na uwezekano wa kubadilisha faili ya alama hadi PDF. Angalia ikiwa Pandoc imewekwa na ikiwa sivyo, isakinishe. Kwa mfano kama hii:

user@hostname:~$ dpkg -s pandoc

Ikiwa matokeo yanasema kuwa haijasanikishwa, sasisha:

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

Inasakinisha kifurushi cha PSCyr cha TexLive

Kwanza unahitaji kupakua PSCyr. Kwa sasa bado inapatikana kwa hii kiungo, ikiwa wakati wa kusoma makala haipatikani kwa sababu fulani, usikate tamaa, ni rahisi kuipata pamoja na maagizo ya ufungaji kwa kuandika kitu kama "Kufunga PsCyr texlive" kwenye Google. Ikiwa inapatikana, basi ni rahisi kwako, pakua na tutafikiria kuwa umefungua kumbukumbu kwenye folda yako ya nyumbani na kwa hivyo njia ya folda iliyo kwenye kumbukumbu inaonekana kama. ~/PSCyr. Kisha nenda kwa terminal na utekeleze amri zifuatazo kwa mlolongo:

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

Ifuatayo, tafuta ni wapi saraka ya ndani iko maandishi. Tunatekeleza amri:

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

Uwezekano mkubwa zaidi unayo saraka hii - /usr/local/share/textmf/, halafu tunafanya:

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

Kweli, au huwezi kujisumbua na kuendesha amri ambayo itakili kwenye folda maandishi popote alipo:

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

Fonti za PSCyr zimesakinishwa, unganisha kwa TexLive:

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

Kiolezo cha LaTeX cha ubadilishaji wa md2pdf

Sitaelezea haswa jinsi template hii imeundwa, na nitaipa tu chini ya mharibifu bila maelezo mengi. Inatosha kusema kwamba imeundwa vizuri, angalau kulingana na jinsi inavyoshughulikia maandishi na msimbo mwingi wa chanzo. Ikiwa haujaridhika na saizi ya indents, nafasi ya mstari, ukosefu wa hesabu ya sehemu na vifungu, basi kwa maoni yangu ni rahisi sana google swali kwenye mtandao "jinsi ya kufanya hivyo katika Latex ..." na basi hitaji lako. Ikiwa haijulikani kabisa, andika kwenye maoni, nitajaribu kuingia katika mipangilio yangu miaka 4 iliyopita na kuelezea ni mstari gani wa template unawajibika kwa nini. Wakati huo huo, nitaandika jinsi nilivyofanya kwenye PC yangu, na uko huru kurudia au kurekebisha mwenyewe.

Unda faili template.tex katika orodha /usr/share/textlive/:

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

Ipe ruhusa ya kusoma:

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

ifungue chini ya mzizi na ubandike yaliyomo chini ya kiharibifu ndani yake:

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

Maudhui ya kiolezo /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}

Inahifadhi faili /usr/share/texlive/template.tex na uandike hati ambayo itabadilisha faili ya Makrdown kuwa PDF, na kuunda katika folda hiyo hiyo faili inayoitwa faili ya Markdown yenye kiambishi awali .pdf, yaani, baada ya ubadilishaji. jina la faili.md itaonekana kwenye folda. jina la faili.md.pdf. Wacha tuite maandishi md2pdf na kuweka njiani / usr / bin. Wacha tutekeleze amri kwa mlolongo:

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

Mstari wa 4 kwa kweli una amri ya ubadilishaji. makini na --kutoka=markdown_github. Toleo la GitHub la Markdown linaendana nyuma na Alama ya asili, kwa hivyo ikiwa maandishi yako yameandikwa ndani yake, sio lazima kuwa na wasiwasi. Ikiwa faili yako ya MD imeandikwa kwa lahaja maalum ya Markdown, basi soma mwongozo wa Pandoc (man pandoc), hakikisha utekelezaji wako unaungwa mkono nayo, na tweak /usr/bin/md2pdf kama ni lazima.

Hati ya usakinishaji zaidi au mdogo wa kiotomatiki

Ikiwa hutaki kabisa kusanidi chochote, na unayo usambazaji kama wa Ubuntu, unaweza kujaribu kuunda hati iliyo na yaliyofichwa chini ya mharibifu, na uwezekano mkubwa kila kitu kitajisakinisha, jambo pekee ni, nakala. kiolezo cha TeX kilichotumwa chini ya kiharibifu hapo juu inapobidi wenyewe. Fungua Terminal na uendeshe:

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

Kisha ujaze na maudhui yafuatayo:

Yaliyomo kwenye hati ya $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

Iendesha kwa amri:

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

Usisahau hiyo /usr/share/texlive/template.tex lazima ijazwe kama ilivyoonyeshwa kwenye kifungu "Kiolezo cha LaTeX cha ubadilishaji wa md2pdfΒ»maudhui.

Kutumia md2pdf

Fungua tu folda na faili ya Markdown (some_file.md) kwenye terminal na endesha amri:

user@hostname:~$ md2pdf some_file.md

Kama matokeo, faili itaonekana kwenye folda some_file.md.pdf.

Hitimisho

Kulingana na njia iliyoelezwa, unaweza kujenga mtindo wowote wa faili za PDF, unaweza pia kubadilisha muundo mwingine badala ya md, yoyote inayoungwa mkono na Pandoc. Ninathubutu kutumaini kwamba siku moja maagizo haya yatakuwa na manufaa kwa watu 3 na nusu.

Chanzo: mapenzi.com

Kuongeza maoni