Makrode nicje w LATEX

Transkrypt

Makrode nicje w LATEX
Makrodenicje w LTEX
A
Bo»ena Wo¹na-Szcze±niak
April 13, 2014
1
Materiaªy w j. angielskim
• http://en.wikibooks.org/wiki/LaTeX/Macros
• http://www.sharelatex.com/learn/Defining_your_own_commands
2
Komenda
\newcommand
Posta¢ ogólna dla wprowadzenia nowej komendy bez parametru domy±lnego:
\newcommand{name}[num]{definition}
A
Kod w L TEXodpowiednio umieszczany:
•
przed
\begin{document}:
\newcommand{\wbal}{Wikibook o \LaTeX}
•
po
\begin{document}:
To jest \wbal'' \ldots{} \wbal''
•
Wykonanie:
A
A
To jest Wikibook o L TEX . . . Wikibook o L TEX
*********
Nast¦pny przykªad ilustruje denicj¦ nowej komendy, która pobiera argumenty.
A
Kod w L TEX odpowiednio umieszczany:
1
•
przed
\begin{document}:
\newcommand{\wbalsup}[1] {
To jest Wikibook o LaTeX wspierana przez #1}
\newcommand{\wbalTwo}[2] {
To jest Wikibook o LaTeX wspierana przez #1 i #2}
•
po
\begin{document}:
\begin{itemize}
\item \wbalsup{Wikimedia}
\item \wbalsup{wielu u»ytkowników!}
\item \wbalTwo{John Doe}{Anthea Smith}
\end{itemize}
•
Wykonanie:
To jest Wikibook o LaTeX wspierana przez Wikimedia
To jest Wikibook o LaTeX wspierana przez wielu u»ytkowników!
To jest Wikibook o LaTeX wspierana przez John Doe i Anthea
Smith
Uwaga !
\wbalTwo
Cyfry nie mog¡ by¢ u»ywane w nazwach makr. Zatem
jest dozwolon¡ nazw¡ a
\wbal2
nie !!!
*********
Posta¢ ogólna dla wprowadzenia nowej komendy z parametrem domy±lnym:
\newcommand{name}[num][default]{definition}
A
Kod w L TEXodpowiednio umieszczany:
•
przed
\begin{document}:
\newcommand{\wTwo}[2][Wikimedia]{
To jest Wikibook o LaTeX wspierana przez {#1} i {#2}}
•
po
\begin{document}:
2
\begin{itemize}
\item \wTwo{John Doe}
\item \wTwo[Anthea Smith]{John Doe}
\end{itemize}
•
Wykonanie:
To jest Wikibook o LaTeX wspierana przez Wikimedia i John Doe
To jest Wikibook o LaTeX wspierana przez Anthea Smith i John
Doe
Uwaga !
W przpadku parametru domy±lnego, u»ycie dwóch parametrów
wymaga, aby pierwszy podany byª w nawiasach
towych
3
kwadra-
!!!
Komenda
\newenvironment
Posta¢ ogólna dla deniowania nowego ±rodowiska:
\newenvironment{name}[num]{before}{after}
Komenda
\newenvironment mo»e mie¢ argument opcjonalny.
Nie mo»na
t¡ komend¡ deniowa¢ ±rodowisk ju» zdeniowanych. Aby przedeniowa¢/zmodykowa¢
istniej¡c¡ denicj¦, nale»y u»y¢ komendy
A
\renewenvironment.
Kod w L TEXodpowiednio umieszczany:
•
przed
\begin{document}:
\newenvironment{otoczka}
{ \rule{1ex}{1ex}\hspace{\stretch{1}} }
{ \hspace{\stretch{1}}\rule{1ex}{1ex} }
•
po
\begin{document}:
\begin{otoczka}
1234567890
\end{otoczka}
3
•
Wykonanie:
1234567890
***
•
przed
\begin{document}:
\newenvironment{otoczka-b}
{ \rule{2ex}{2ex}\hspace{\stretch{1}} \bf }
{ \hspace{\stretch{1}}\rule{2ex}{2ex} }
•
po
\begin{document}:
\begin{otoczka-b}
1234567890
\end{otoczka-b}
•
3.0.1
•
1234567890
Wykonanie:
Konieczno±¢ rozdzielenia nawiasów klamrowych
przed
\begin{document}:
\newenvironment{otoczka-a}
{ \rule{2ex}{2ex}\hspace{\stretch{1}} \textcolor{red}\bgroup
{ \egroup !!! \hspace{\stretch{1}}\rule{1ex}{1ex} }
•
po
\begin{document}:
\begin{otoczka-a}
1234567890
\end{otoczka-a}
•
1234567890
Wykonanie:
4
!!!
}
3.1
Zb¦dne wci¦cia
Wersja niechciana:
•
przed
\begin{document}:
\newenvironment{simple}{\noindent}{\par\noindent}
•
po
\begin{document}:
\begin{simple}
See the space\\to the left.
\end{simple}
Same\\here.
•
Wykonanie:
See the space
to the left.
Same
here.
Wersja poprawna:
•
przed
\begin{document}:
\newenvironment{correct}
{\noindent\ignorespaces}
{\par\noindent \ignorespacesafterend}
•
po
\begin{document}:
\begin{correct}
No space\\to the left.
\end{correct}
Same\\here.
•
Wykonanie:
5
No space
to the left.
Same
here.
Mieszkaªa stonoga pod Biaªa, Bo tak si¦ jej podobaªo. Raz przychodzi li±cik
maªy Do stonogi, ›e proszona jest do Biaªej Na pierogi. Ucieszyªo to stonog¦,
Wi¦c ruszyªa szybko w drog¦.
Mieszkaªa stonoga pod Biaªa, Bo tak si¦ jej podobaªo. Raz przychodzi li±cik
maªy Do stonogi, ›e proszona jest do Biaªej Na pierogi. Ucieszyªo to stonog¦,
Wi¦c ruszyªa szybko w drog¦.
3.2
•
Przykªady
przed
\begin{document}:
\newenvironment{tinyitquote}%
{\begin{quote}\begin{tiny}\it}%
{\end{tiny}\end{quote}}
•
po
\begin{document}:
\begin{tinyitquote}
Nim zd¡»yªa doj±¢ do Biaªej,
Nogi jej si¦ popl¡taªy:
Lewa z praw¡, przednia z tyln¡,
Ka»dej nodze bardzo pilno,
Szósta zd¡»y¢ chce za siódm¡,
Ale siódmej i±¢ za trudno,
No, bo przed ni¡ stoi ósma,
Która wªa±nie jaki± guz ma.
\end{tinyitquote}
•
Wykonanie:
Nim zd¡»yªa doj±¢ do Biaªej, Nogi jej si¦ popl¡taªy:
Lewa z praw¡, przednia z tyln¡, Ka»dej
nodze bardzo pilno, Szósta zd¡»y¢ chce za siódm¡, Ale siódmej i±¢ za trudno, No, bo przed ni¡
stoi ósma, Która wªa±nie jaki± guz ma.
•
przed
\begin{document}:
6
\newenvironment{qsi}[1]%
{\begin{quote}#1 napisaª,\begin{sloppypar}\it}%
{\end{sloppypar}\end{quote}}
•
po
\begin{document}:
\begin{qsi}{Jan Brzechwa}
Nim zd¡»yªa doj±¢ do Biaªej,
Nogi jej si¦ popl¡taªy:
Lewa z praw¡, przednia z tyln¡,
Ka»dej nodze bardzo pilno,
Szósta zd¡»y¢ chce za siódm¡,
Ale siódmej i±¢ za trudno,
No, bo przed ni¡ stoi ósma,
Która wªa±nie jaki± guz ma.
\end{qsi}
•
Wykonanie:
Jan Brzechwa napisaª,
Nim zd¡»yªa doj±¢ do Biaªej, Nogi jej si¦ popl¡taªy: Lewa z praw¡,
przednia z tyln¡, Ka»dej nodze bardzo pilno, Szósta zd¡»y¢ chce
za siódm¡, Ale siódmej i±¢ za trudno, No, bo przed ni¡ stoi ósma,
Która wªa±nie jaki± guz ma.
7