Pamoka 6

Daugelio paketų naudojimas vienu metu

Komanda \usepackage priima kableliais atskirtą paketų sąrašą, todėl viena komanda gali įkelti kelis paketus, pavyzdžiui, \usepackage{color,graphicx}. Jei neprivalomajame komandos argumente perduodate paketo parinktis, jos bus taikomos kiekvienam sąrašo paketui, bet ne visuose jos gali būti numatytos. Mums lengviau komentuoti paketus, jei jie įkeliami atskirai. Taigi mes laikysimės praktikos kiekvieną paketą įkelti atskiroje eilutėje.

babel paketas

Mes pristatėme babel paketą pagrindinėje pamokoje kaip priemonę pasirinkti skirtingus žodžių kėlimo modelius. Bet jis daro daug daugiau nei tik tai, atsižvelgdamas į vartojamą (-as) kalbą (-as). Pavyzdžiui, vokiečių kalbai jis pateikia keletą trumpinių, nurodančių vietas galimiems žodžių lūžiams, taip pat būdą greitai įvesti vokiškus akcentus be vokiškos klaviatūros. Taip pat pastebėkite, kad skyriaus antraštė Table of Contents, paprastai sukuriama komandos \tableofcontents, pasikeitė į vokišką Inhaltsverzeichnis.

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage[ngerman]{babel} % Pastebėkite, kad parinkties vardas 'ngerman'

\begin{document}

\tableofcontents

\section{"Uber "Apfel und Birnen}

\subsection{Äpfel}
Äpfel sind rot.

\subsection{Birnen}
Birnen sind gelb.


\end{document}

Kiti kalbos parametrai keičia formatavimą, pavyzdžiui, tradicinėje prancūzų tipografijoje yra tarpas prieš kai kuriuos skyrybos ženklus, kaip : ir babel tai prideda automatiškai, jei įkeliate jį su parinktimi french.

Globalios parinktys

Kartais reikia, kad parinktis būtų prieinama visiems jūsų įkeltiems paketams. Tada ji nurodoma prie komandos \documentclass ir kiekvienas paketas gali „pamatyti“ šį sąrašą. Taigi, norėdami perduoti dokumento kalbą visiems paketams, galime naudoti:

\documentclass[ngerman]{article} % Pastebėkite, kad parinkties vardas 'ngerman'
\usepackage[T1]{fontenc}

\usepackage{babel}

\begin{document}

\tableofcontents

\section{"Uber "Apfel und Birnen}

\subsection{Äpfel}
Äpfel sind rot.

\subsection{Birnen}
Birnen sind gelb.

\end{document}

Daugiau apibrėžimų

Komanda \newcommand gali apibrėžti naujas komandas, turinčias iki devynių argumentų, iš kurių pirmasis gali būti neprivalomas.

Paimkime pavyzdį iš pagrindinės pamokos, ir padarykime spalvos argumentą neprivalomu, pagal nutylėjimą imdami mėlyną.

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{xcolor}

\newcommand\kw[2][blue]{\textcolor{#1}{\itshape #2}}

\begin{document}

Something about \kw{apples} and \kw[red]{oranges}.

\end{document}

Neprivalomas argumentas yra nurodomas laužtiniuose skliaustuose [], o jei jis yra praleistas, tada naudojama apibrėžime nurodyta reikšmė.

\NewDocumentCommand

Nuo 2020 m. spalio mėn. laidos LaTeX turi išplėstą apibrėžimų sistemą. Senesnėse LaTeX laidose ji buvo pasiekiama prijungus xparse paketą, kurį mes čia irgi naudojame suderinamumui pasiekti.

Aukščiau pateiktą pavyzdį galime pakartoti, bet naudodami \NewDocumentCommand:

\documentclass{article}
\usepackage[T1]{fontenc}

\usepackage{xparse} % Reikalingas tik senesnėms LaTeX laidoms
\usepackage{xcolor}

\NewDocumentCommand\kw{O{blue} m}{\textcolor{#1}{\itshape #2}}

\begin{document}

Something about \kw{apples} and \kw[red]{oranges}.

\end{document}

Kaip ir \newcommand, \NewDocumentCommand priima apibrėžiamą komandą (čia \kw) ir apibrėžimo kūną su argumentais nurodytais nuo #1 iki #9, tačiau turi skirtingą argumentų deklaravimo dalį.

Kitaip nei su \newcommand, kuriai nurodomas tik argumentų skaičius ir yra galimybė padaryti pirmąjį argumentą neprivalomu, nurodant jam numatytąją reikšmę, su \NewDocumentCommand kiekvienas argumentas nurodomas raide; taigi, dviejų argumentų komandai būtų nurodyta {mm}, o ne [2]. Tai šiek tiek ilgesnis užrašas, tačiau leidžiantis apibrėžti daug daugiau komandų formų. Pateikėme tik šį paprastą pavyzdį, kai pirmasis argumentas yra neprivalomas (optional), numatytoji reikšmė yra mėlyna (O{blue}), o antrasis argumentas yra privalomas (m, mandatory).