Markdown2pdf prest egindako irtenbidea Linuxerako iturburu-kodearekin

hitzaurrea

Markdown artikulu labur bat idazteko modu bikaina da, eta batzuetan testu asko, formatu etzana eta lodia sinplearekin. Markdown ere ona da iturburu-kodea duten artikuluak idazteko. Baina batzuetan galdu gabe, danbolinarekin dantzatu nahi duzu PDF fitxategi arrunt eta ongi osatu batean gainditzeko, eta bihurtzeko garaian arazorik egon ez dadin, nik, adibidez, izan nuen - ezin duzu errusieraz idatzi. iturburu-kodearen iruzkinak, lerro luzeegiak ez dira transferitzen, ebaki eta beste arazo txiki batzuk baizik. Argibideek bihurgailua azkar konfiguratzeko aukera emango dizu md2pdf nola funtzionatzen duen benetan ulertu gabe. Instalazio gehiago edo gutxiago automatikorako scripta dago behean dago dagokion atalean.

Nire lagin TeX txantiloiak bihurtzeko PSCyr letra-tipo paketea erabiltzen du, Microsoft-en letra-tipoetarako laguntza barne hartzen duena, hots. Times new roman. GOSTren arabera diploma bat izateko halako baldintzak zeuden. Badakizu nola, txantiloia alda dezakezu zure beharretara egokitzeko. Nire argibideetan, TexLive-n PSCyr ezarpenarekin engainatu beharko duzu lehenik. Konfigurazioa Linux Mint Mate banaketan egiten da, beste banaketa batzuetarako zure sistemarako TexLive paketeen karpeta estandarrak Googlen bilatu beharko dituzu.

TexLive instalatzen

Jakina, pakete honen beharrezko zatiak bakarrik instala ditzakezu. Baina pertsonalki, egia esan, alferra nengoen beharrezko gutxieneko lan-instalazioa bilatzeko. Dena funtzionatzen duela ziurtatzeko, instalatu TexLive pakete osoa. Deitzen da texlive-betea eta 2 gigabyte baino pixka bat gehiago pisatzen du, kontuan izan datu hau. Komandoa exekutatzen dugu:

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

Instalazio nahiko luze baten ondoren, hurrengo elementura joan zaitezke.

Pandoc Converter instalatzea

Pandoc Linux pakete bat da, testu formatu batzuk beste batzuetara bihurtzeko aukera ematen duena. Interneten aurki ditzakezun ezaugarri interesgarri asko ditu. Markdown fitxategi bat PDF bihurtzeko aukera baino ez zaigu interesatzen. Egiaztatu Pandoc instalatuta dagoen eta ez bada, instalatu. Adibidez, honela:

user@hostname:~$ dpkg -s pandoc

Irteerak instalatuta ez dagoela esaten badu, instalatu:

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

TexLiverako PSCyr paketea instalatzen

Lehenik eta behin, PSCyr deskargatu behar duzu. Oraingoz oraindik eskuragarri dago honetan link, artikulua irakurtzeko unean arrazoiren batengatik ez badago eskuragarri, ez etsi, erraza da instalatzeko argibideekin batera aurkitzea Google-n "PsCyr texlive instalatzen" bezalako zerbait idatziz. Eskuragarri badago, orduan errazagoa da zuretzat, deskargatu eta artxiboa etxeko karpetan deskonprimitu duzula suposatuko dugu eta, beraz, artxiboan dagoen karpetarako bidea itxura izango du. ~/PSCyr. Ondoren, joan Terminalera eta exekutatu komando hauek sekuentzian:

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

Ondoren, jakin ezazu non dagoen tokiko direktorioa texmf. Komandoa exekutatzen dugu:

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

Litekeena da direktorio hau izatea - /usr/local/share/texmf/, eta gero egiten dugu:

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

Beno, edo ezin duzu traba egin eta karpeta batean kopiatuko duen komando bat exekutatu texmf edonon dagoen:

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

PSCyr letra-tipoak instalatuta, konektatu TexLive-ra:

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

LaTeX txantiloia md2pdf bihurtzeko

Ez dut txantiloi hau nola konfiguratuta dagoen zehatz deskribatuko, eta spoiler azpian emango dut azalpen handirik gabe. Nahikoa da ondo konfiguratuta dagoela esatea, iturburu-kode asko duten testuak nola kudeatzen dituen behintzat. Kosken tamainarekin, lerroen tartearekin, atalen eta azpiatalen zenbakitze faltarekin konforme ez bazaude, nire ustez, nahiko erraza da Interneten galdera "nola egin Latex-en egin ..." Google-n. orduan zure beharra. Batere argi ez badago, idatzi iruzkinetan, nire ezarpenetan sakontzen saiatuko naiz duela 4 urte eta deskribatzen dut txantiloiaren zein lerro den zeren arduraduna. Bitartean, nire ordenagailuan nola egin nuen idatziko dut, eta zuk zeuk errepikatu edo alda dezakezu.

Sortu fitxategi bat txantiloia.tex katalogoan /usr/share/texlive/:

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

Eman irakurtzeko baimenak:

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

ireki erroaren azpian eta itsatsi beheko spoiler azpian ezkutatuta dagoen edukia bertan:

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

Txantiloiaren edukia /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}

Fitxategia gordetzen /usr/share/texlive/template.tex eta idatzi Makrdown fitxategia PDF bihurtuko duen script bat, karpeta berean Markdown fitxategia izeneko fitxategi bat sortuz .pdf aurrizkiarekin, hau da, bihurketa egin ondoren. fitxategi-izena.md karpetan agertuko da. fitxategi-izena.md.pdf. Dei diezaiogun gidoiari md2pdf eta bidean jarri / Usr / bin. Exekutatu ditzagun komandoak sekuentzian:

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. lerroak benetan konbertsio komandoa dauka. arreta jarri --from=markdown_github. Markdown-en GitHub bertsioa atzerantz bateragarria da jatorrizko Markdown-ekin, beraz, zure testua bertan idatzita badago, ez duzu kezkatu beharrik. Zure MD fitxategia Markdown dialekto zehatz batean idatzita badago, irakurri Pandoc eskuliburua (man pandoc), ziurtatu zure inplementazioa onartzen duela, eta moldatu /usr/bin/md2pdf Beharrezkoa bada.

Instalazio gehiago edo gutxiago automatikorako scripta

Benetan ezer konfiguratu nahi ez baduzu eta Ubuntu antzeko banaketa baduzu, spoiler azpian ezkutatuta dagoen edukia duen script bat sortzen saia zaitezke, eta ziurrenik dena instalatuko da, gauza bakarra da kopiatzea. goiko spoiler azpian argitaratutako TeX txantiloia beraiek behar dituzun tokira. Ireki Terminala eta exekutatu:

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

Ondoren, bete ezazu eduki honekin:

$HOME/installmd2pdf.sh script-aren edukia

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

Exekutatu komandoarekin:

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

Ez ahaztu hori /usr/share/texlive/template.tex " atalean adierazitako moduan bete behar daLaTeX txantiloia md2pdf bihurtzekoΒ»edukia.

md2pdf erabiliz

Ireki Markdown fitxategiarekin karpeta (zenbait_fitxategi.md) Terminalean eta exekutatu komandoa:

user@hostname:~$ md2pdf some_file.md

Ondorioz, fitxategi bat agertuko da karpetan zenbait_fitxategi.md.pdf.

Ondorioa

Deskribatutako metodoan oinarrituta, edozein PDF fitxategi estilo eraiki dezakezu, md-ren ordez beste formatu batzuk ere bihur ditzakezu, Pandoc-ek onartzen duen edozein. Ausartzen naiz egunen batean argibide hau 3 pertsona eta erdirentzat baliagarria izango dela espero.

Iturria: www.habr.com

Gehitu iruzkin berria