Նախաբան
Markdown-ը կարճ հոդված գրելու հիանալի միջոց է, իսկ երբեմն էլ բավականին շատ տեքստ՝ պարզ շեղ և թավ ձևաչափով: Markdown-ը նաև լավ է հոդվածներ գրելու համար՝ ներառված սկզբնական կոդով: Բայց երբեմն ուզում ես անկորուստ պարել դափի հետ, որպեսզի այն շրջանցես սովորական, լավ ձևավորված PDF ֆայլի, և այնպես, որ փոխակերպման ժամանակ խնդիրներ չառաջանան, որոնք, օրինակ, ես ունեի. ռուսերեն գրել չես կարող: սկզբնական կոդի մեկնաբանությունները, չափազանց երկար տողերը չեն փոխանցվում, այլ կտրված են և այլ մանր խնդիրներ: Հրահանգը թույլ կտա արագ կարգավորել փոխարկիչը md2pdf առանց իրականում հասկանալու, թե ինչպես է այն աշխատում: Քիչ թե շատ ավտոմատ տեղադրման սցենարը ներկայացված է ստորև՝ համապատասխան բաժնում:
Իմ նմուշի TeX ձևանմուշը փոխակերպման համար օգտագործում է PSCyr տառատեսակի փաթեթը, որը ներառում է Microsoft-ի տառատեսակների աջակցություն, մասնավորապես. Times նոր հռոմեական. ԳՕՍՏ-ի համաձայն դիպլոմի համար նման պահանջներ կային. Եթե գիտեք, թե ինչպես, կարող եք փոփոխել ձևանմուշը՝ ձեր կարիքներին համապատասխան: Իմ սեփական հրահանգների համաձայն, դուք նախ պետք է հիմարացնեք TexLive-ում PSCyr կարգավորումը: Կարգավորումը կատարվում է Linux Mint Mate բաշխման մեջ, այլ բաշխումների համար գուցե ստիպված լինեք փնտրել ձեր համակարգի ստանդարտ TexLive փաթեթի թղթապանակները:
TexLive-ի տեղադրում
Իհարկե, դուք կարող եք տեղադրել միայն այս փաթեթի անհրաժեշտ մասերը։ Բայց անձամբ ես, անկեղծ ասած, չափազանց ծույլ էի փնտրելու նվազագույն անհրաժեշտ աշխատանքային տեղադրումը: Համոզվելու համար, որ ամեն ինչ աշխատում է, տեղադրեք ամբողջ TexLive փաթեթը: Այն կոչվում է texlive-լրիվ և կշռում է 2 գիգաբայթից մի փոքր ավելի, հիշեք այս փաստը: Մենք կատարում ենք հրամանը.
user@hostname:~$ sudo apt install texlive-full -y
Բավականաչափ երկար տեղադրումից հետո կարող եք անցնել հաջորդ կետին:
Pandoc փոխարկիչի տեղադրում
Pandoc-ը Linux-ի փաթեթ է, որը թույլ է տալիս փոխակերպել որոշ տեքստային ձևաչափեր մյուսների: Այն ունի շատ հետաքրքիր առանձնահատկություններ, որոնք դուք կարող եք գտնել ինտերնետում: Մեզ հետաքրքրում է միայն նշագրված ֆայլը PDF-ի փոխարկելու հնարավորությունը: Ստուգեք, արդյոք Pandoc-ը տեղադրված է, և եթե ոչ, տեղադրեք այն: Օրինակ այսպես.
user@hostname:~$ dpkg -s pandoc
Եթե ելքը ասում է, որ այն տեղադրված չէ, տեղադրեք.
user@hostname:~$ sudo apt install pandoc -y
PSCyr փաթեթի տեղադրում TexLive-ի համար
Նախ անհրաժեշտ է ներբեռնել PSCyr-ը: Առայժմ այն դեռ հասանելի է այստեղ
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
Հաջորդը, պարզեք, թե որտեղ է գտնվում տեղական գրացուցակը textmf. Մենք կատարում ենք հրամանը.
user@hostname:~$ kpsewhich -expand-var='$TEXMFLOCAL'
Ամենայն հավանականությամբ, դուք ունեք այս գրացուցակը - /usr/local/share/texmf/, և այնուհետև մենք անում ենք.
user@hostname:~$ sudo cp -R ./PSCyr/* /usr/local/share/texmf/
Դե, կամ դուք չեք կարող անհանգստացնել և գործարկել հրաման, որը պատճենելու է թղթապանակ textmf որտեղ էլ որ նա լինի.
user@hostname:~$ sudo cp -R ./PSCyr/* $(kpsewhich -expand-var='$TEXMFLOCAL')
Տեղադրված է PSCyr տառատեսակներ, միացեք TexLive-ին.
user@hostname:~$ sudo texhash
user@hostname:~$ updmap --enable Map=pscyr.map
user@hostname:~$ sudo mktexlsr
LaTeX ձևանմուշ md2pdf փոխակերպման համար
Ես չեմ նկարագրի, թե ինչպես է այս ձևանմուշը կազմաձևված, և պարզապես այն կներկայացնեմ սփոյլերի տակ՝ առանց մեծ բացատրության։ Բավական է ասել, որ այն լավ կազմաձևված է, գոնե այն առումով, թե ինչպես է այն մշակում տեքստերը շատ կոդով: Եթե ձեզ չի բավարարում նահանջների չափը, տողերի տարածությունը, բաժինների և ենթաբաժինների համարակալման բացակայությունը, ապա, իմ կարծիքով, ինտերնետում բավականին հեշտ է google-ով փնտրել «ինչպես դա անել լատեքսով ...» և. ապա ձեր կարիքը: Եթե ամենևին պարզ չէ, գրեք մեկնաբանություններում, ես կփորձեմ խորանալ 4 տարի առաջվա իմ կարգավորումներում և նկարագրել, թե ինչի համար է պատասխանատու կաղապարի որ տողը։ Միևնույն ժամանակ ես կգրեմ, թե ինչպես եմ դա արել իմ ԱՀ-ում, և դուք ազատ կարող եք կրկնել կամ փոփոխել այն ինքներդ:
Ստեղծեք ֆայլ կաղապար.tex կատալոգում /usr/share/texlive/:
user@hostname:~$ sudo touch /usr/share/texlive/template.tex
Տվեք նրան կարդալու թույլտվություններ.
user@hostname:~$ sudo chmod 444 /usr/share/texlive/template.tex
բացեք այն արմատի տակ և դրա մեջ կպցրեք ներքևում գտնվող սփոյլերի տակ թաքնված բովանդակությունը.
user@hostname:~$ sudo nano /usr/share/texlive/template.tex
Կաղապարի բովանդակությունը /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}
Պահպանեք ֆայլը /usr/share/texlive/template.tex և գրեք մի սկրիպտ, որը Makrdown ֆայլը կվերածի PDF-ի՝ նույն թղթապանակում ստեղծելով Markdown ֆայլ կոչվող ֆայլը .pdf նախածանցով, այսինքն՝ փոխարկումից հետո։ ֆայլի անուն.md կհայտնվի թղթապանակում: ֆայլի անուն.md.pdf. Եկեք կոչենք սցենարը md2pdf և դրեց ճանապարհին / usr / աղբարկղ. Եկեք կատարենք հրամանները հաջորդականությամբ.
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-րդ տողը իրականում պարունակում է փոխակերպման հրամանը: ուշադրություն դարձնել --from=markdown_github. Markdown-ի GitHub տարբերակը հետընթաց համատեղելի է սկզբնական Markdown-ի հետ, այնպես որ, եթե ձեր տեքստը գրված է դրանում, անհանգստանալու կարիք չկա: Եթե ձեր MD ֆայլը գրված է հատուկ Markdown բարբառով, ապա կարդացեք Pandoc ձեռնարկը (man pandoc
), համոզվեք, որ ձեր իրականացումն ապահովված է դրանով և կսմթեք /usr/bin/md2pdf Եթե անհրաժեշտ է.
Սցենար քիչ թե շատ ավտոմատ տեղադրման համար
Եթե իսկապես չեք ցանկանում որևէ բան կարգավորել, և ունեք Ubuntu-ի նման բաշխում, կարող եք փորձել ստեղծել սկրիպտ՝ թաքնված բովանդակությամբ սփոյլերի տակ, և, ամենայն հավանականությամբ, ամեն ինչ ինքն իրեն կտեղադրվի, միակ բանը, որ պատճենեք: TeX ձևանմուշը, որը տեղադրված է վերևում գտնվող սփոյլերի տակ, որտեղ ձեզ անհրաժեշտ են: Բացեք տերմինալը և գործարկեք.
user@hostname:~$ cd
user@hostname:~$ touch installmd2pdf.sh
Այնուհետև լրացրեք այն հետևյալ բովանդակությամբ.
$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
Գործարկեք այն հրամանով.
user@hostname:~$ sudo bash $HOME/installmd2pdf.sh
Մի մոռացեք դա /usr/share/texlive/template.tex պետք է լրացվի, ինչպես նշված է բաժնում «LaTeX ձևանմուշ md2pdf փոխակերպման համար» բովանդակություն:
Օգտագործելով md2pdf
Պարզապես բացեք թղթապանակը Markdown ֆայլով (some_file.md) Տերմինալում և գործարկեք հրամանը.
user@hostname:~$ md2pdf some_file.md
Արդյունքում թղթապանակում կհայտնվի ֆայլ some_file.md.pdf.
Ամփոփում
Նկարագրված մեթոդի հիման վրա դուք կարող եք ստեղծել ցանկացած ոճի PDF ֆայլեր, կարող եք նաև փոխարկել այլ ձևաչափեր md-ի փոխարեն, որոնք աջակցվում են Pandoc-ի կողմից: Համարձակվում եմ հուսալ, որ մի օր այս հրահանգը օգտակար կլինի 3 ու կես հոգու։
Source: www.habr.com