Yakagadzirira-yakagadzirwa markdown2pdf mhinduro ine source code yeLinux

Foreword

Markdown inzira yakanaka yekunyora chinyorwa chipfupi, uye dzimwe nguva chakawanda chinyorwa, chine nyore uye chakapusa fomati. Markdown yakanakirawo kunyora zvinyorwa zvine source code inosanganisirwa. Asi dzimwe nguva iwe unoda kusarasikirwa, kutamba netamborini kuti uitore mune yakajairwa, yakanyatso kuumbwa faira rePDF, uye kuti pasave nematambudziko panguva yekutendeuka, iyo, semuenzaniso, ini - haugone kunyora muchiRussia mu. zvirevo zveiyo kodhi kodhi, mitsetse yakarebesa haina kutamiswa, asi kucheka uye mamwe matambudziko madiki. Murairo uchakubvumidza iwe kukurumidza kuseta converter md2pdf pasina kunyatsonzwisisa kuti zvinoshanda sei. Iyo script yekuwedzera kana kushoma yekuisa otomatiki iri pazasi muchikamu chakakodzera.

Muenzaniso wangu TeX template yekushandura inoshandisa iyo PSCyr font package, iyo inosanganisira tsigiro yemafonti eMicrosoft, anoti. Times New Roman. Paiva nezvinodiwa zvediploma maererano neGOST. Kana iwe uchiziva sei, iwe unogona kugadzirisa iyo template kuti ienderane nezvido zvako. Mune mirairo yangu, iwe unofanirwa kutanga wapusa nePSCyr kurongedza muTexLive. Iyo setup inoitwa muLinux Mint Mate kugovera, kune kumwe kugovera iwe unogona kuGoogle iyo yakajairwa TexLive package mafolda ehurongwa hwako.

Kuisa TexLive

Ehe, iwe unogona kuisa chete zvikamu zvinodiwa zvepakeji iyi. Asi ini pachangu, ndaive neusimbe hwekutarisira kushomeka kwakakosha kushanda. Kuti uve nechokwadi chekuti zvese zvinoshanda, isa iyo yese TexLive package. Inonzi texlive-full uye inorema zvishoma kudarika 2 gigabytes, chengeta chokwadi ichi mupfungwa. Isu tinotora murairo:

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

Mushure mekugadzirisa kwenguva yakareba, unogona kuenderera kune chimwe chinhu chinotevera.

Kuisa iyo Pandoc Converter

Pandoc iLinux package inobvumidza iwe kushandura mamwe mafomati mafomati kune vamwe. Iine zvakawanda zvinonakidza maficha aunogona kuzviwana iwe paInternet. Isu tinongofarira mukana wekushandura faira rekudzika kuita PDF. Tarisa kana Pandoc yakaiswa uye kana isiri, isa. Somuenzaniso seizvi:

user@hostname:~$ dpkg -s pandoc

Kana iyo yakabuda ichiti haina kuisirwa, isa:

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

Kuisa iyo PSCyr package yeTexLive

Kutanga iwe unofanirwa kurodha PSCyr. Parizvino ichiri kuwanikwa panguva ino batanidzo, kana panguva yekuverenga nyaya yacho isingawanikwi nokuda kwechimwe chikonzero, usaora mwoyo, zviri nyore kuiwana pamwe chete nemirayiridzo yekuisa nekunyora chimwe chinhu se "Kuisa PsCyr texlive" muGoogle. Kana iripo, saka zviri nyore kwauri, dhawunirodha uye isu tichafunga kuti wakaburitsa dura remukati mufolda yako yekumba uye nekudaro nzira yefolda iri mudura inoita senge. ~/PSCyr. Wobva waenda kuTerminal uye woita mirairo inotevera munhevedzano:

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

Tevere, tsvaga panowanikwa dhairekitori renzvimbo textmf. Isu tinotora murairo:

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

Zvingangodaro kuti une dhairekitori iri - /usr/local/share/textmf/, uye tobva taita:

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

Zvakanaka, kana kuti haugone kunetseka uye kumhanya murairo unozokopa kune folda textmf chero kwaanenge ari.

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

PSCyr mafonti akaiswa, batanidza kuTexLive:

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

LaTeX template ye md2pdf shanduko

Ini handisi kuzotsanangura chaizvo kuti iyi template inogadziriswa sei, uye ndinongoipa pasi pemuparadzi pasina tsananguro yakawanda. Zvakakwana kutaura kuti yakanyatso gadziridzwa, zvirinani maererano nemabatiro aanoita magwaro ane yakawanda source code. Kana iwe usingagutsikane nehukuru hwema indents, mutsara wemitsara, kushomeka kwenhamba yezvikamu uye zvikamu, saka mukuona kwangu zviri nyore kuGoogle mubvunzo paInternet "maitirwo ekuita muLatex ..." uye ipapo kushaiwa kwako. Kana zvisina kujeka zvachose, nyora mune zvakataurwa, ini ndichaedza kunyura mune yangu marongero makore 4 apfuura uye kutsanangura kuti ndeupi mutsara wetemplate une chekuita nei. Panguva ino, ini ndichanyora pasi kuti ndakazviita sei paPC yangu, uye wakasununguka kudzokorora kana kuzvishandura iwe pachako.

Gadzira faira template.tex mubhuku /usr/share/textlive/:

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

Ipe mvumo yekuverenga:

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

vhura pasi pemudzi uye unamate zviri mukati zvakavigwa pasi pemuparadzi pazasi mazviri:

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

Zvinyorwa zvetemplate /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}

Kuchengetedza faira /usr/share/texlive/template.tex uye nyora chinyorwa chichashandura iyo Makrdown faira kuPDF, ichigadzira muforodha imwe chete faira inonzi Markdown faira ine prefix .pdf, kureva, mushure mekutendeuka. filename.md ichaonekwa mufolda. filename.md.pdf. Ngatishevedze script md2pdf ndokuisa munzira / usr / bin. Ngatiite mirairo munhevedzano:

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

Mutsara wechina une murairo wekutendeuka. teererai --kubva=markdown_github. Iyo GitHub vhezheni yeMarkdown inodzokera kumashure inoenderana neyekutanga Markdown, saka kana chinyorwa chako chakanyorwa mairi, haufanirwe kunetseka. Kana yako MD faira yakanyorwa mune chaiyo Markdown dialect, wobva waverenga Pandoc manual (man pandoc), ita shuwa kuti kuita kwako kunotsigirwa nazvo, uye tweak /usr/bin/md2pdf Kana zvakakodzera.

Script yekuwedzera kana kushoma kuisirwa otomatiki

Kana iwe usiri kunyatsoda kugadzirisa chero chinhu zvachose, uye uine Ubuntu-yakafanana kugovera, unogona kuedza kugadzira script ine zvirimo zvakavigwa pasi pemuparadzi, uye kazhinji zvese zvinozvimisikidza, chinhu chega ndechekuti, kopi. iyo TeX template yakatumirwa pasi pemuparadzi kumusoro kwaunoda iwe pachako. Vhura Terminal uye mhanya:

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

Wozadza nezvayo zvinotevera:

Zviri mukati meiyo $HOME/installmd2pdf.sh script

#!/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

Mhanya nayo nemurairo:

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

Usakanganwa izvozvo /usr/share/texlive/template.tex inofanira kuzadzwa sezvinoratidzwa muchikamu "LaTeX template ye md2pdf shandukoΒ»zviripo.

Kushandisa md2pdf

Ingovhura iyo folda neMarkdown faira (some_file.md) muTerminal uye shandisa murairo:

user@hostname:~$ md2pdf some_file.md

Nekuda kweizvozvo, faira ichaonekwa mufolda some_file.md.pdf.

mhedziso

Kubva pane yakatsanangurwa nzira, unogona kuvaka chero chimiro chePDF mafaera, unogona zvakare kushandura mamwe mafomati pane md, chero anotsigirwa nePandoc. Ndinotsunga kutarisira kuti rimwe zuva murayiridzo uyu uchabatsira vanhu vatatu nehafu.

Source: www.habr.com

Voeg