Solusi markdown2pdf sing wis siap karo kode sumber kanggo Linux

Pambuka

Markdown minangka cara sing apik kanggo nulis artikel cekak, lan kadhangkala cukup akeh teks, kanthi format miring lan kandel sing prasaja. Markdown uga apik kanggo nulis artikel kanthi kode sumber. Nanging kadhangkala sampeyan pengin losslessly, nari karo rebana kanggo nyusul menyang biasa, uga-kawangun file PDF, lan supaya ora ana masalah sak konversi, kang, contone, aku - sampeyan ora bisa nulis ing Rusian ing komentar saka kode sumber, garis dawa banget ora ditransfer, nanging Cut lan masalah suntingan liyane. Pandhuan bakal ngidini sampeyan nyiyapake konverter kanthi cepet md2pdf tanpa ngerti tenan cara kerjane. Skrip kanggo instalasi otomatis luwih utawa kurang ana ing ngisor iki ing bagean sing cocog.

Cithakan conto TeX kanggo konversi nggunakake paket font PSCyr, sing kalebu dhukungan kanggo font Microsoft, yaiku Roman anyar. Ana syarat kanggo diploma miturut GOST. Yen sampeyan ngerti carane, sampeyan bisa ngowahi cithakan sing cocog karo kabutuhan. Ing pandhuanku dhewe, sampeyan kudu ngapusi setelan PSCyr ing TexLive. Persiyapan wis rampung ing distribusi Linux Mint Mate, kanggo distribusi liyane sampeyan kudu google folder paket TexLive standar kanggo sistem sampeyan.

Nginstal TexLive

Mesthi, sampeyan bisa nginstal mung bagean sing dibutuhake saka paket iki. Nanging kanthi pribadi, aku terus terang kesed kanggo nggoleki instalasi kerja sing dibutuhake. Kanggo mesthekake yen kabeh bisa digunakake, instal kabeh paket TexLive. Iku diarani texlive-lengkap lan bobote sethitik luwih saka 2 gigabyte, tetep kasunyatan iki ing atine. Kita nindakake perintah kasebut:

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

Sawise instalasi sing cukup suwe, sampeyan bisa nerusake menyang item sabanjure.

Nginstal Konverter Pandoc

Pandoc minangka paket Linux sing ngidini sampeyan ngowahi sawetara format teks menyang liyane. Nduwe akeh fitur menarik sing bisa ditemokake ing Internet. Kita mung kasengsem ing kamungkinan ngowahi file markdown menyang PDF. Priksa manawa Pandoc wis diinstal lan yen ora, instal. Contone kaya iki:

user@hostname:~$ dpkg -s pandoc

Yen output ujar manawa ora diinstal, instal:

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

Nginstal paket PSCyr kanggo TexLive

Pisanan sampeyan kudu ndownload PSCyr. Kanggo saiki isih kasedhiya ing iki link, yen ing wektu maca artikel ora kasedhiya kanggo sawetara alesan, aja kentekan niat, iku gampang kanggo nggoleki bebarengan karo instruksi instalasi dening ngetik kaya "Nginstal PsCyr texlive" ing Google. Yen kasedhiya, banjur luwih gampang kanggo sampeyan, download lan kita bakal nganggep yen sampeyan wis mbongkar arsip menyang folder ngarep lan kanthi mangkono path menyang folder sing ana ing arsip katon kaya ~/PSCyr. Banjur pindhah menyang Terminal lan nglakokake perintah ing ngisor iki kanthi urutan:

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

Sabanjure, goleki lokasi direktori lokal texmf. Kita nindakake perintah kasebut:

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

Kemungkinan sampeyan duwe direktori iki - /usr/local/share/texmf/, banjur kita nindakake:

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

Inggih, utawa sampeyan ora bisa keganggu lan mbukak printah sing bakal nyalin menyang folder texmf nang endi wae dheweke:

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

Fonts PSCyr diinstal, nyambung menyang TexLive:

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

Cithakan LaTeX kanggo konversi md2pdf

Aku ora bakal njlèntrèhaké persis carane cithakan iki diatur, lan mung bakal menehi ing spoiler tanpa panjelasan akeh. Cukup kanggo ujar manawa wis dikonfigurasi kanthi apik, paling ora babagan cara nangani teks kanthi akeh kode sumber. Yen sampeyan ora wareg karo ukuran indents, spasi baris, lack of nomer bagean lan subsections, banjur ing mratelakake panemume iku cukup gampang kanggo google pitakonan ing Internet "carane nindakake ing Lateks ..." lan banjur kabutuhan sampeyan. Yen ora cetha, nulis ing komentar, Aku bakal nyoba kanggo delve menyang setelan dhewe 4 taun ago lan njlèntrèhaké kang baris cithakan tanggung jawab kanggo apa. Ing sawetoro wektu, Aku bakal nulis mudhun carane aku nindakake ing PC, lan sampeyan bebas kanggo mbaleni utawa ngowahi dhewe.

Nggawe file template.tex ing katalog /usr/share/texlive/:

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

Menehi ijin maca:

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

Bukak ing ngisor oyod lan tempel konten sing didhelikake ing ngisor spoiler ing ngisor iki:

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

Isi cithakan /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}

Nyimpen file /usr/share/texlive/template.tex lan nulis skrip sing bakal ngowahi file Makrdown dadi PDF, nggawe ing folder sing padha file sing diarani file Markdown kanthi awalan .pdf, yaiku, sawise konversi jeneng berkas.md bakal katon ing folder. filename.md.pdf. Ayo nelpon script md2pdf lan sijine ing dalan / usr / bin. Ayo nglakokake perintah kanthi urutan:

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

Baris kaping 4 bener ngemot perintah konversi. nggatekake --from=markdown_github. Markdown versi GitHub kompatibel karo Markdown asli, dadi yen teks sampeyan ditulis, sampeyan ora perlu kuwatir. Yen file MD sampeyan ditulis nganggo dialek Markdown tartamtu, banjur waca manual Pandoc (man pandoc), priksa manawa implementasine sampeyan didhukung, lan tweak /usr/bin/md2pdf yen perlu.

Skrip kanggo instalasi otomatis luwih utawa kurang

Yen sampeyan ora pengin ngatur apa wae, lan sampeyan duwe distribusi kaya Ubuntu, sampeyan bisa nyoba nggawe skrip kanthi isi sing didhelikake ing spoiler, lan paling kamungkinan kabeh bakal diinstal dhewe, mung ana salinan. cithakan TeX dikirim ing spoiler ndhuwur kanggo ngendi sampeyan kudu dhewe. Bukak Terminal lan mbukak:

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

Banjur isi karo isi ing ngisor iki:

Isi skrip $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

Jalanake kanthi printah:

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

Aja lali sing /usr/share/texlive/template.tex kudu diisi kaya sing dituduhake ing bagean "Cithakan LaTeX kanggo konversi md2pdfΒ»isi.

Nggunakake md2pdf

Cukup mbukak folder kanthi file Markdown (some_file.md) ing Terminal lan jalanake printah:

user@hostname:~$ md2pdf some_file.md

AkibatΓ©, file bakal katon ing folder kasebut some_file.md.pdf.

kesimpulan

Adhedhasar cara sing diterangake, sampeyan bisa nggawe gaya file PDF, sampeyan uga bisa ngowahi format liyane tinimbang md, sing didhukung dening Pandoc. Aku wani ngarep-arep yen ing sawijining dina instruksi iki bisa migunani kanggo 3 setengah wong.

Source: www.habr.com

Add a comment