Pakiety wrapfig i listings

Transkrypt

Pakiety wrapfig i listings
Pakiety wrapfig i listings
21 marca 2015
1.
Pakiet wrapfig
Pakiet wrapfig należy wczytać w preambule dokumentu. Pozwala on na oblewanie tekstem obrazka.
\begin{wrapfigure}[2]{r}[12pt]{60pt}
\includegraphics[width=60pt]{graf}
\end{wrapfigure}
\begin{wrapfigure}[ilość węższych linii]
{położenie}[spad]{szerokość rysunku}
Położenie to jedna z liter r, l, i, o, R, L, I, O. Duże litery pozwalają kompilatorowi wybrać odpowiednie miejsce na rysunek, małe każą go umieścić tam
gdzie się pojawił.
I, i oznaczają umieszczenie obrazka na tym marginesie który jest po stronie
zszywanej (w druku dwustronnym, O, o - daleko od zszywania.
Z uwagi na walory estetyczne obrazek może oblewać tylko zwykły tekst.
Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę.
Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst
oblewający literę. Tekst oblewający literę. Tekst oblewający literę.
W
\begin{wrapfigure}[12]{r}{60pt}
\includegraphics[width=60pt]{graf}
\end{wrapfigure}
1
to jest tekst to jest tekst to jest tekst to jest tekst
to jest tekst to jest tekst to jest tekst to jest tekst to
jest tekst to jest tekst to jest tekst to jest tekst to jest
tekst to jest tekst to jest tekst to jest tekst to jest tekst
to jest tekst to jest tekst to jest tekst to jest tekst to
jest tekst to jest tekst to jest tekst to jest tekst to jest
tekst to jest tekst to jest tekst to jest tekst to jest tekst
to jest tekst to jest tekst to jest tekst to jest tekst to
jest tekst to jest tekst to jest tekst to jest tekst to jest
tekst to jest tekst to jest tekst to jest tekst to jest tekst
to jest tekst to jest tekst to jest tekst to jest tekst to
jest tekst to jest tekst to jest tekst to jest tekst to jest
tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst
to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to
jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest
tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst
to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to
jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest tekst to jest
tekst to jest tekst to jest tekst to jest tekst to jest tekst
W
\begin{wrapfigure}[12]{o}[24pt]{120pt}
\includegraphics[width=120pt]{graf}
\end{wrapfigure}
Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę.
Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst
oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający
literę.
Tekst
oblewający
literę.
Tekst
oblewający
literę.
Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst
oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst
oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst
oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający
literę. Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę.
Tekst oblewający literę. Tekst oblewający literę. Tekst oblewający literę.
W
\begin{wrapfigure}{i}{3cm}
\includegraphics[width=3cm]{graf}
\end{wrapfigure}
2
2.
Pakiet listings
Pakiet listings wczytujemy w preambule poleceniem \usepackage.
Język określamy poleceniem
\lstset{language=[dialekt]nazwa jezyka}
a następnie kod umieszczamy w środowisku
\begin{lstlisting}
kod źródłowy
\end{lstlisting}
Fragment kodu w linii umieszczamy poleceniem
\lstinline!fragment kodu!
Znak ! może zostać zastąpiony dowolnym innym, nie występującym w kodzie.
Dostępne języki (wybór)
C++ (ANSI, GNU, ISO, Visual) Gnuplot, Haskell, HTML, Lisp (empty,
Auto), Logo, make (empty, gnu), Mathematica (1.0, 3.0), Matlab, Mercury,
MetaPost, Pascal (Borland6, Standard, XSC), Perl, PHP, Python, Ruby, SQL,
TeX (AlLaTeX, common, LaTeX, plain, primitive), VBScript XML, XSLT
Przykład XML
<?xml version=" 1 . 0 " e n c o d i n g=" i s o −8859−2" ?>
− <z w i e r z a k i>
<p i e s>Brytan</ p i e s>
<kot>F e l i k s</ kot>
<k r o l i k>Kicek</ k r o l i k>
</ z w i e r z a k i>
\lstset{language=XML}
\begin{lstlisting}
<?xml version="1.0" encoding="iso-8859-2" ?>
- <zwierzaki>
<pies>Brytan</pies>
<kot>Feliks</kot>
<krolik>Kicek</krolik>
</zwierzaki>
\end{lstlisting}
Przykład języka Ruby
search_engines =
%w [ Google Yahoo MSN ] . map do | e n g i n e |
" h t t p : / /www. " + e n g i n e . downcase + " . com"
end
3
c l a s s Numeric
def p l u s ( x )
s e l f .+( x )
end
end
y = 5. plus 6
# y wynosi t e r a z 11
\begin{lstlisting}
search_engines =
%w[Google Yahoo MSN].map do |engine|
"http://www." + engine.downcase + ".com"
end
\end{lstlisting}
\begin{lstlisting}
class Numeric
def plus(x)
self.+(x)
end
end
y = 5.plus 6
# y wynosi teraz 11
\end{lstlisting}
Przykład języka Java
// OddEven . j a v a
import j a v a x . swing . JOptionPane ;
public c l a s s OddEven {
// " i n p u t " i s t h e number t h a t
t h e u s e r g i v e s t o t h e computer
private int i n p u t ; // a wh ol e
number ( " i n t " means i n t e g e r )
/∗
∗ This i s t h e c o n s t r u c t o r method .
∗/
public OddEven ( ) {}
\lstset{language=Java}
\begin{lstlisting}
// OddEven.java
4
import javax.swing.JOptionPane;
public class OddEven {
// "input" is the number that
the user gives to the computer
private int input; // a whole
number("int" means integer)
/*
* This is the constructor method.
*/
public OddEven() {}
\end{lstlisting}
Można wydrukować tylko kilka wskazanych linii kodu nadając wartość parametrom firstline i lastline. Początek środowiska będzie wyglądał następująco
\begin{lstlisting}[firstline=liczba,lastline=liczba]
Kod można też wczytać bezpośrednio z pliku
\lstinputlisting{scieżka do pliku}
Domyślne ustawienia można zmienić poleceniem
\lstset{parametr=wartość}
Parametry, które można modyfikować to:
• basicstyle — określa wygląd czcionki dla całego kodu,
• keywordstyle — określa wygląd czcionki, którą drukowane będą słowa kluczowe,
• identifierstyle — określa wygląd czcionki, którą drukowane będą nazwy
stałych, zmiennych, funkcji, procedur itp.,
• commentstyle — określa wygląd czcionki, którą drukowane będą komentarze,
• stringstyle — określa wygląd czcionki, którą drukowane będą stałe znakowe i łańcuchy znakowe.
Jako wartość można podać między innymi stopień pisma, rodzinę czcionek,
kolor (o ile załadowany zostanie pakiet do obsługi koloru, np. color).
Numerowanie linii kodu
Aby numerować linie kodu należy przed środowiskiem z kodem umieścić polecenie
\lstset{numbers=strona}
Wartość strona może być left, right, none. Jeśli do powyższego ustawienia
5
dopiszemy parametr numberstyle=styl, możemy zmienić rozmiar liczb. Parametr stepnumber=krok ustala czy numerowane mają być wszystkie linie czy np.
co druga. Parametr numbersep=odległość ustala odstęp numeru od linii kodu.
Aby w kodzie drukowane były znaki niewidoczne (np. spacje) należy podać
parametr
\lstset{showspaces=true,showtabs=true}
Wielkość tabulacji ustawiamy poleceniem
\lstset{tabsize=wielkość}
a jeśli chcemy by drukowany był jakiś konkretny znak tabulacji to musimy go
określić poleceniem
\lstset{tabs=znak}
2.1.
Przykłady
Środowisko lstlisting z parametrami firstline i lastline
Parametry firstline i lastline można łączyć w obrębie tego samego środowiska. Wtedy otrzymamy wydruk tylko części kodu, od linii 4 do 7 – jak w
przykładzie poniżej.
\begin{lstlisting}[firstline=4,lastline=7] %%%
if (argc == 1)
{
printf ("Uzycie: wczytaj plik\n");
exit (EX_USAGE); // kod bledu: 64
}
FILE *plik;
if ((plik = fopen (argv [1], "r")) == NULL)
{
printf ("Niepoprawna nazwa pliku\n");
exit (EX_NOINPUT); // kod bledu: 66
}
\end{lstlisting}
}
FILE ∗ p l i k ;
i f ( ( p l i k = f o p e n ( argv [ 1 ] , " r " ) ) == NULL)
{
Polecenie lstinputlisting
Polecenie to powoduje wczytanie i wklejenie do dokumentu zawartości podanego pliku (w tym przypadku pliku "kod.c", znajdującego się na tym samym
miejscu co dokument LaTeX-owy) \lstinputlisting{kod.c}
6
#include <s t d i o . h>
#include < s t d l i b . h>
#include < s y s e x i t s . h>
/∗ Kod z r o d l o w y programu " w y p i s z " ∗/
int main ( int argc , char ∗ argv [ ] )
{
i f ( a r g c == 1 )
{
p r i n t f ( " U z y c i e : ␣ wypisz ␣ p l i k \n" ) ;
e x i t (EX_USAGE) ; // kod b l e d u : 64
}
FILE ∗ p l i k ;
i f ( ( p l i k = f o p e n ( argv [ 1 ] , " r " ) ) == NULL)
{
p r i n t f ( " Niepoprawna ␣nazwa␣ p l i k u \n" ) ;
e x i t (EX_NOINPUT) ; // kod b l e d u : 66
}
char znak = ’ \0 ’ ;
while ( ( znak = g e t c ( p l i k ) ) != EOF)
putc ( znak , s t d o u t ) ;
fclose ( plik );
return EX_OK;
}
lstinputlisting z parametrami firstline i lastline
W poleceniu lstinputlisting można również użyć parametrów firstline
i lastline.
#include <s t d i o . h>
#include < s t d l i b . h>
#include < s y s e x i t s . h>
/∗ Kod z r o d l o w y programu " w y p i s z " ∗/
Powyżej wynik \lstinputlisting[firstline=1,lastline=6]{kod.c}
Zmiana wyglądu kodu
#include
#include
#include
<s t d i o . h>
< s t d l i b . h>
< s y s e x i t s . h>
/∗ Kod z r o d l o w y programu " w y p i s z " ∗/
7
int
main ( int argc ,
char
∗ argv [ ] )
{
if
( a r g c == 1 )
{
p r i n t f ( " Uzycie :␣ wypisz ␣ plik \n" ) ;
e x i t (EX_USAGE) ; // kod b l e d u : 64
}
FILE ∗ p l i k ;
if ( ( p l i k = f o p e n ( argv [ 1 ] , "r" ) ) == NULL)
{
p r i n t f ( " Niepoprawna ␣ nazwa ␣ pliku \n" ) ;
e x i t (EX_NOINPUT) ; // kod b l e d u : 66
}
char znak = ’\0 ’ ;
while ( ( znak = g e t c ( p l i k ) ) != EOF)
putc ( znak , s t d o u t ) ;
fclose ( plik );
return EX_OK;
}
\lstset{
basicstyle=\small,
keywordstyle=\bfseries\large,
identifierstyle=\underbar,
commentstyle=\itshape,
stringstyle=\texttt}
\lstinputlisting{kod.c}
Znaki specjalne
#include␣<s t d i o . h>
#include␣< s t d l i b . h>
#include␣< s y s e x i t s . h>
/∗ ␣Kod␣ z r o d l o w y ␣ programu ␣" w y p i s z "␣ ∗/
int ␣main␣ ( int ␣ argc , ␣char␣ ∗ argv ␣ [ ] )
{
−−−→ if ␣ ( a r g c ␣==␣ 1 )
−−−→{
−−−→−−−→ p r i n t f ␣ ( " Uzycie :␣ wypisz ␣ plik \n" ) ;
−−−→−−−→ e x i t ␣ (EX_USAGE) ; ␣ // ␣ kod ␣ b l e d u : ␣ 64
−−−→}
−−−→FILE␣ ∗ p l i k ;
−−−→ if ␣ ( ( p l i k ␣=␣ f o p e n ␣ ( argv ␣ [ 1 ] , ␣"r" ) ) ␣==␣NULL)
8
−−−→{
−−−→−−−→ p r i n t f ␣ ( " Niepoprawna ␣ nazwa ␣ pliku \n" ) ;
−−−→−−−→ e x i t ␣ (EX_NOINPUT) ; ␣ // ␣ kod ␣ b l e d u : ␣ 66
−−−→}
−−−→char␣ znak ␣=␣ ’\0 ’ ;
−−−→while␣ ( ( znak ␣=␣ g e t c ␣ ( p l i k ) ) ␣!= ␣EOF)
−−−→−−−→putc ␣ ( znak , ␣ s t d o u t ) ;
−−−→ f c l o s e ␣ ( p l i k ) ;
−−−→return␣EX_OK;
}
\lstset{tabsize=4}
\lstset{showspaces=true}
\lstset{showtabs=true}
\lstset{tab=\rightarrowfill}
\lstinputlisting{kod.c}
Numerowanie linii
1
2
3
#include␣<s t d i o . h>
#include␣< s t d l i b . h>
#include␣< s y s e x i t s . h>
4
5
/∗ ␣Kod␣ z r o d l o w y ␣ programu ␣" w y p i s z "␣ ∗/
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
int ␣main␣ ( int ␣ argc , ␣char␣ ∗ argv ␣ [ ] )
{
−−−→ if ␣ ( a r g c ␣==␣ 1 )
−−−→{
−−−→−−−→ p r i n t f ␣ ( " Uzycie :␣ wypisz ␣ plik \n" ) ;
−−−→−−−→ e x i t ␣ (EX_USAGE) ; ␣ // ␣ kod ␣ b l e d u : ␣ 64
−−−→}
−−−→FILE␣ ∗ p l i k ;
−−−→ if ␣ ( ( p l i k ␣=␣ f o p e n ␣ ( argv ␣ [ 1 ] , ␣"r" ) ) ␣==␣NULL)
−−−→{
−−−→−−−→ p r i n t f ␣ ( " Niepoprawna ␣ nazwa ␣ pliku \n" ) ;
−−−→−−−→ e x i t ␣ (EX_NOINPUT) ; ␣ // ␣ kod ␣ b l e d u : ␣ 66
−−−→}
−−−→char␣ znak ␣=␣ ’\0 ’ ;
−−−→while␣ ( ( znak ␣=␣ g e t c ␣ ( p l i k ) ) ␣!= ␣EOF)
−−−→−−−→putc ␣ ( znak , ␣ s t d o u t ) ;
−−−→ f c l o s e ␣ ( p l i k ) ;
−−−→return␣EX_OK;
}
9
\lstset{
numbers=left,
numberstyle=\tiny,
stepnumber=1,
numbersep=2cm}
\lstinputlisting{kod.c}
Polecenie \lstset{numbers=none} powoduje zaprzestanie numerowania linii kodu.
10

Podobne dokumenty