Réiteach markdown2pdf réidh le cód foinse le haghaidh Linux

Réamhrá

Is bealach iontach é Markdown chun alt gairid a scríobh, agus uaireanta go leor téacs, le formáidiú simplí iodálach agus trom. Tá Markdown go maith freisin chun ailt a scríobh le cód foinse san áireamh. Ach uaireanta is mian leat a chailleadh gan staonadh, damhsa le tambóirín a scoitheadh ​​​​i gcomhad PDF rialta, dea-chumtha, agus ionas nach mbeidh aon fadhbanna le linn chomhshó, a, mar shampla, bhí agam - ní féidir leat scríobh i Rúisis i. tuairimí an chóid foinse, ní aistrítear línte ró-fhada, ach gearrtha agus fadhbanna beaga eile. Tabharfaidh an treoir deis duit an tiontaire a shocrú go tapa Leabhar md2 pdf gan a thuiscint i ndáiríre conas a oibríonn sé. Tá an script le haghaidh suiteáil uathoibríoch níos mó nó níos lú thíos sa rannán cuí.

Úsáideann mo theimpléad samplach TeX le haghaidh comhshó an pacáiste cló PSCyr, a chuimsíonn tacaíocht do chlónna Microsoft, eadhon Times New Roman. Bhí ceanglais den sórt sin le haghaidh dioplóma de réir GOST. Má tá a fhios agat conas, is féidir leat an teimpléad a mhodhnú chun freastal ar do chuid riachtanas. I mo threoracha féin, beidh ort amadán a dhéanamh ar dtús leis an suíomh PSCyr i TexLive. Déantar an socrú i ndáileadh Linux Mint Mate, le haghaidh dáiltí eile b'fhéidir go gcaithfidh tú na fillteáin phacáiste caighdeánach TexLive do do chóras a google.

Suiteáil TexLive

Ar ndóigh, ní féidir leat ach na codanna riachtanacha den phacáiste seo a shuiteáil. Ach go pearsanta, bhí mé i ndáiríre ró-leisciúil a chuardach le haghaidh an tsuiteáil oibre íosta is gá. Chun a chinntiú go n-oibríonn gach rud, suiteáil an pacáiste TexLive ar fad. Tugtar texlive-lán agus meáchan beagán níos mó ná 2 ghigibheart, coinnigh an méid seo i gcuimhne. Déanaimid an t-ordú:

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

Tar éis suiteáil sách fada, is féidir leat dul ar aghaidh go dtí an chéad mhír eile.

Suiteáil an Tiontaire Pandoc

Is pacáiste Linux é Pandoc a ligeann duit roinnt formáidí téacs a thiontú go formáidí eile. Tá go leor gnéithe suimiúla ann ar féidir leat tú féin a fháil ar an Idirlíon. Níl suim againn ach sa bhféidearthacht comhad marcála síos a thiontú go PDF. Seiceáil an bhfuil Pandoc suiteáilte agus mura bhfuil, suiteáil é. Mar shampla mar seo:

user@hostname:~$ dpkg -s pandoc

Má deir an t-aschur nach bhfuil sé suiteáilte, suiteáil:

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

Suiteáil an pacáiste PSCyr do TexLive

Ar dtús is gá duit PSCyr a íoslódáil. Chun anois tá sé fós ar fáil ag seo nasc, más rud é ag an am a léamh an t-alt nach bhfuil sé ar fáil ar chúis éigin, ná éadóchas, tá sé éasca é a fháil chomh maith leis na treoracha suiteála trí rud éigin cosúil le "Installing PsCyr texlive" a chlóscríobh i Google. Má tá sé ar fáil, is fusa duit é a íoslódáil agus glacfaimid leis gur díphacáil tú an chartlann isteach i d'fhillteán baile agus mar sin is cosúil go bhfuil cosán an fhillteáin sa chartlann ~/PSCyr. Ansin téigh go dtí an Teirminéal agus déan na horduithe seo a leanas in ord:

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

Ansin, faigh amach cá bhfuil an t-eolaire áitiúil suite téacsmf. Déanaimid an t-ordú:

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

Is dócha go bhfuil an t-eolaire seo agat - /usr/áitiúil/share/texmf/, agus ansin déanaimid:

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

Bhuel, nó ní féidir leat bodhraigh agus ordú a rith a chóipeáil go fillteán téacsmf pé áit a bhfuil sí:

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

Clónna PSCyr suiteáilte, ceangail le TexLive:

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

Teimpléad LaTeX le haghaidh comhshó md2pdf

Ní dhéanfaidh mé cur síos go díreach ar an gcaoi a bhfuil an teimpléad seo cumraithe, agus tabharfaidh mé go simplí é faoin spoiler gan mórán míniú. Is leor a rá go bhfuil sé cumraithe go maith, ar a laghad i dtéarmaí an chaoi a láimhseálann sé téacsanna le go leor cód foinse. Mura bhfuil tú sásta le méid na bhfleasc, an spásáil líne, an easpa uimhrithe rannóga agus fo-ailt, is é mo thuairim go bhfuil sé éasca go leor an cheist a chur ar an Idirlíon "conas é a dhéanamh i LaTeX ..." agus ansin do riachtanas. Mura bhfuil sé soiléir ar chor ar bith, scríobh isteach na tuairimí, déanfaidh mé iarracht dul isteach i mo shocruithe féin 4 bliana ó shin agus déan cur síos ar an líne teimpléad atá freagrach as cad é. Idir an dá linn, scríobhfaidh mé síos conas a rinne mé é ar mo ríomhaire, agus tá cead agat é a athdhéanamh nó a mhodhnú duit féin.

Cruthaigh comhad teimpléad.tex sa chatalóg /usr/share/texlive/:

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

Tabhair cead léite dó:

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

oscail faoin bhfréamh é agus greamaigh an t-ábhar atá i bhfolach faoin spoiler thíos isteach ann:

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

Ábhar teimpléid /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}

An comhad a shábháil /usr/share/texlive/template.tex agus scríobh script a thiontóidh an comhad Makrdown go PDF, ag cruthú san fhillteán céanna comhad ar a dtugtar an comhad Markdown leis an réimír .pdf, is é sin, tar éis an chomhshó ainm comhaid.md le feiceáil san fhillteán. ainm comhaid.md.pdf. A ligean ar glaoch ar an script Leabhar md2 pdf agus a chur ar an mbealach / usr / bin. Déanaimis na horduithe a rith in ord:

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

Tá an t-ordú comhshó sa 4ú líne i ndáiríre. aird a thabhairt ar --ó=markdown_github. Tá an leagan GitHub de Markdown comhoiriúnach ar ais leis an Markdown bunaidh, mar sin má tá do théacs scríofa ann, ní gá duit a bheith buartha. Má tá do chomhad MD scríofa i gcanúint Markdown ar leith, ansin léigh an lámhleabhar Pandoc (man pandoc), déan cinnte go bhfuil do chur chun feidhme tacaithe aige, agus tweak /usr/bin/md2pdf más gá.

Script le haghaidh suiteáil uathoibríoch níos mó nó níos lú

Mura bhfuil tú ag iarraidh rud ar bith a chumrú ar chor ar bith, agus go bhfuil dáileadh cosúil le Ubuntu agat, is féidir leat triail a bhaint as script a chruthú leis an ábhar atá i bhfolach faoin spoiler, agus is dócha go ndéanfaidh gach rud é féin a shuiteáil, is é an t-aon rud, cóip an teimpléad TeX postáilte faoin spoiler thuas go dtí an áit a dteastaíonn uait iad féin. Oscail Teirminéal agus rith:

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

Ansin é a líonadh leis an ábhar seo a leanas:

Ábhar na scripte $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

Rith é leis an ordú:

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

Ná déan dearmad ar sin /usr/share/texlive/template.tex a líonadh isteach mar a léirítear san alt “Teimpléad LaTeX le haghaidh comhshó md2pdf» ábhar.

Ag baint úsáide as md2pdf

Oscail an fillteán leis an gcomhad Markdown (roinnt_comhad.md) sa Chríochfort agus rith an t-ordú:

user@hostname:~$ md2pdf some_file.md

Mar thoradh air sin, beidh comhad le feiceáil san fhillteán roinnt_comhad.md.pdf.

Conclúid

Bunaithe ar an modh cur síos, is féidir leat a thógáil ar aon stíl comhaid PDF, is féidir leat a thiontú freisin formáidí eile in ionad md, aon tacaíocht ó Pandoc. Dar liom a bheith ag súil go lá amháin beidh an teagasc seo úsáideach do 3 go leith duine.

Foinse: will.com

Add a comment