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