all: add monografia base
Parents:
c6d61c39 file(s) changed
- monografia/Makefile +30 -0
- monografia/abnt.bst +1374 -0
- monografia/images/if.pdf +0 -0
- monografia/images/tsi.png +0 -0
- monografia/images/xitsu.png +0 -0
- monografia/monografia.bib +30 -0
- monografia/monografia.pdf +0 -0
- monografia/monografia.tex +168 -0
- monografia/textsi.cls +829 -0
monografia/Makefile
@@ -0,0 +1,30 @@
1 + JOBNAME = monografia
2 + LATEX = pdflatex
3 + BIBTEX = bibtex
4 + FLAGS = -interaction=nonstopmode -halt-on-error
5 +
6 + .PHONY: all clean distclean
7 +
8 + all: $(JOBNAME).pdf
9 +
10 + # Full build: tex → bibtex → tex → tex
11 + $(JOBNAME).pdf: $(JOBNAME).tex $(JOBNAME).bib
12 + $(LATEX) $(FLAGS) $(JOBNAME)
13 + $(BIBTEX) $(JOBNAME)
14 + $(LATEX) $(FLAGS) $(JOBNAME)
15 + $(LATEX) $(FLAGS) $(JOBNAME)
16 +
17 + clean:
18 + rm -f $(JOBNAME).aux \
19 + $(JOBNAME).bbl \
20 + $(JOBNAME).blg \
21 + $(JOBNAME).log \
22 + $(JOBNAME).out \
23 + $(JOBNAME).toc \
24 + $(JOBNAME).lof \
25 + $(JOBNAME).lot \
26 + $(JOBNAME).lol
27 +
28 + distclean: clean
29 + rm -f $(JOBNAME).pdf
30 +
monografia/abnt.bst
@@ -0,0 +1,1374 @@
1 + %==============================================================================
2 + % abnt.bst
3 + % Estilo BibTeX de formatação de referências bibliográficas no padrão ABNT
4 + %
5 + % UFRGS TeX Users Group
6 + % Informatics Institute --- UFRGS
7 + % Porto Alegre, Brazil
8 + % http://www.inf.ufrgs.br/utug
9 + % Discussion list: utug-l@inf.ufrgs.br
10 + %
11 + % $Id: abnt.bst,v 5.6 2003/03/03 00:17:46 avila Exp $
12 + %
13 + % Copyright (C) 2001-2002 UFRGS TeX Users Group
14 + %
15 + % This program is free software; you can redistribute it and/or modify
16 + % it under the terms of the GNU General Public License as published by
17 + % the Free Software Foundation; either version 2 of the License, or
18 + % (at your option) any later version.
19 + %
20 + % This program is distributed in the hope that it will be useful,
21 + % but WITHOUT ANY WARRANTY; without even the implied warranty of
22 + % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 + % GNU General Public License for more details.
24 + %
25 + % You should have received a copy of the GNU General Public License
26 + % along with this program; if not, write to the Free Software
27 + % Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 + %==============================================================================
29 +
30 + %==============================================================================
31 + % Definição dos campos das entradas
32 + %==============================================================================
33 + ENTRY
34 + {
35 + author
36 + editor
37 + title
38 + booktitle
39 + chapter
40 + pages
41 + address
42 + publisher
43 + year
44 + journal
45 + month
46 + number
47 + edition
48 + howpublished
49 + institution
50 + key
51 + note
52 + organization
53 + school
54 + series
55 + type
56 + volume
57 + url
58 + urldate
59 + }
60 + {}
61 + {
62 + label
63 + year.char
64 + }
65 +
66 + INTEGERS {i j n}
67 + STRINGS {s t last.label last.year.char current.letter names new.pages}
68 +
69 + %==============================================================================
70 + % Definicao dos nomes dos meses
71 + %==============================================================================
72 + MACRO {jan} {"Jan."}
73 + MACRO {feb} {"Feb."}
74 + MACRO {mar} {"Mar."}
75 + MACRO {apr} {"Apr."}
76 + MACRO {may} {"May"}
77 + MACRO {jun} {"June"}
78 + MACRO {jul} {"July"}
79 + MACRO {aug} {"Aug."}
80 + MACRO {sep} {"Sept."}
81 + MACRO {oct} {"Oct."}
82 + MACRO {nov} {"Nov."}
83 + MACRO {dec} {"Dec."}
84 +
85 + %==============================================================================
86 + % Definicao de strings usados na elaboracao das referencias
87 + %==============================================================================
88 + FUNCTION {str:mastersthesis} {"Disserta{\c{c}}{\~a}o (Mestrado em Ci{\^e}ncia da Computa{\c{c}}{\~a}o)"}
89 + FUNCTION {str:phdthesis} {"Tese (Doutorado em Ci{\^e}ncia da Computa{\c{c}}{\~a}o)"}
90 + FUNCTION {str:chapter} {"Cap."}
91 +
92 + %==============================================================================
93 + % Definicao das abreviaturas padrao
94 + %==============================================================================
95 + MACRO {acmcs} {"ACM Computing Surveys"}
96 + MACRO {acta} {"Acta Informatica"}
97 + MACRO {cacm} {"Communications of the ACM"}
98 + MACRO {ibmjrd} {"IBM Journal of Research and Development"}
99 + MACRO {ibmsj} {"IBM Systems Journal"}
100 + MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
101 + MACRO {ieeetc} {"IEEE Transactions on Computers"}
102 + MACRO {ieeetcad}
103 + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
104 + MACRO {ipl} {"Information Processing Letters"}
105 + MACRO {jacm} {"Journal of the ACM"}
106 + MACRO {jcss} {"Journal of Computer and System Sciences"}
107 + MACRO {scp} {"Science of Computer Programming"}
108 + MACRO {sicomp} {"SIAM Journal on Computing"}
109 + MACRO {tocs} {"ACM Transactions on Computer Systems"}
110 + MACRO {tods} {"ACM Transactions on Database Systems"}
111 + MACRO {tog} {"ACM Transactions on Graphics"}
112 + MACRO {toms} {"ACM Transactions on Mathematical Software"}
113 + MACRO {toois} {"ACM Transactions on Office Information Systems"}
114 + MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
115 + MACRO {tcs} {"Theoretical Computer Science"}
116 +
117 + %==============================================================================
118 + % Exibe warning quando um campo ``required'' esta' faltando. Recebe na pilha o
119 + % tipo do campo.
120 + %==============================================================================
121 + FUNCTION {show.missing.field.warning}
122 + {
123 + "Falta o campo " swap$ " em " cite$ * * * warning$
124 + }
125 +
126 + %==============================================================================
127 + % Funcoes logicas
128 + %==============================================================================
129 + FUNCTION {not}
130 + {
131 + { #0 }
132 + { #1 }
133 + if$
134 + }
135 +
136 + FUNCTION {and}
137 + {
138 + 'skip$
139 + { pop$ #0 }
140 + if$
141 + }
142 +
143 + FUNCTION {or}
144 + {
145 + { pop$ #1 }
146 + 'skip$
147 + if$
148 + }
149 +
150 + FUNCTION {is.numeric.char}
151 + {
152 + #1 #1 substring$
153 + duplicate$ "" =
154 + {pop$ #0}
155 + {
156 + duplicate$ chr.to.int$ #47 >
157 + swap$ chr.to.int$ #58 <
158 + and
159 + }
160 + if$
161 + }
162 +
163 + FUNCTION {is.uppercase.char}
164 + {
165 + #1 #1 substring$
166 + duplicate$ "" =
167 + {pop$ #0}
168 + {
169 + duplicate$ chr.to.int$ #64 >
170 + swap$ chr.to.int$ #91 <
171 + and
172 + }
173 + if$
174 + }
175 +
176 + %==============================================================================
177 + % Escreve no arquivo o comando que gera o item
178 + %
179 + % Parm:
180 + % um string com a formatacao do item
181 + %==============================================================================
182 + FUNCTION {write.item}
183 + {
184 + "\bibitem[" label * "]{" * cite$ * "} " *
185 + swap$ *
186 + write$ newline$ newline$
187 + }
188 +
189 + %==============================================================================
190 + % Separa o titulo em titulo e sub-titulo, empilhando o sub-titulo e o titulo,
191 + % nessa ordem
192 + %
193 + % Parm:
194 + % o titulo
195 + %==============================================================================
196 + FUNCTION {extract.subtitle}
197 + {
198 + #1 'i :=
199 +
200 + duplicate$
201 + i #1 substring$
202 + {
203 + duplicate$ ":" = not
204 + swap$ "" = not
205 + and
206 + }
207 + {
208 + #1 i + 'i :=
209 + duplicate$
210 + i #1 substring$
211 + } while$
212 +
213 + duplicate$ i #999 substring$
214 + swap$
215 + #1 i #1 - substring$
216 + }
217 +
218 + %==============================================================================
219 + % Separa a primeira palavra do texto, empilhando o resto e a palavra, nessa
220 + % ordem
221 + %
222 + % Parm:
223 + % o texto
224 + %==============================================================================
225 + FUNCTION {extract.first.word}
226 + {
227 + #1 'i :=
228 +
229 + duplicate$
230 + i #1 substring$
231 + {
232 + duplicate$ " " = not
233 + swap$ "" = not
234 + and
235 + }
236 + {
237 + #1 i + 'i :=
238 + duplicate$
239 + i #1 substring$
240 + } while$
241 +
242 + duplicate$ i #999 substring$
243 + swap$
244 + #1 i #1 - substring$
245 + }
246 +
247 + %==============================================================================
248 + % Enfatiza um string
249 + %
250 + % Parm:
251 + % o string
252 + %==============================================================================
253 + FUNCTION {emphasize}
254 + {
255 + "\textbf{" swap$ * "}" *
256 + }
257 +
258 + %==============================================================================
259 + % Adiciona um texto (se nao-empty$) ja' formatado ao item, separando-o por
260 + % ponto.
261 + % Ex.: NOME. Titulo. data. ano.
262 + %
263 + % Parm:
264 + % um string representando o item (pode ser vazio, para iniciar o item)
265 + % o texto a ser adicionado
266 + %==============================================================================
267 + FUNCTION {add.to.item}
268 + {
269 + duplicate$ empty$
270 + 'pop$
271 + {
272 + swap$
273 + duplicate$ empty$
274 + 'skip$
275 + {" " *}
276 + if$
277 + swap$ add.period$ *
278 + }
279 + if$
280 + }
281 +
282 + %==============================================================================
283 + % Adiciona um item (se nao-empty$) a uma lista do tipo "a, b, c, ..."
284 + %
285 + % Parm:
286 + % um string representando a lista (pode ser vazio, para criar uma lista)
287 + % o item a ser adicionado
288 + %==============================================================================
289 + FUNCTION {add.to.list}
290 + {
291 + duplicate$ empty$
292 + 'pop$
293 + {
294 + swap$
295 + duplicate$ empty$
296 + 'skip$
297 + {", " *}
298 + if$
299 + swap$ *
300 + }
301 + if$
302 + }
303 +
304 + %==============================================================================
305 + % Adiciona um nome a uma lista de nomes (separados por ponto-e-virgula)
306 + %
307 + % Parm:
308 + % um string representando a lista (pode ser vazio, para criar uma lista)
309 + % o nome a ser adicionado
310 + %==============================================================================
311 + FUNCTION {add.to.namelist}
312 + {
313 + swap$
314 + duplicate$ empty$
315 + 'skip$
316 + {"; " *}
317 + if$
318 + swap$ *
319 + }
320 +
321 + %==============================================================================
322 + % Formata uma lista de nomes.
323 + %
324 + % Parm:
325 + % os nomes a serem formatados
326 + %==============================================================================
327 + FUNCTION {format.names}
328 + {
329 + duplicate$ num.names$ 'n :=
330 + #1 'i :=
331 + "" 'names :=
332 +
333 + {i n #1 + <}
334 + {
335 + duplicate$ duplicate$ i "{ll}{~jj}" format.name$
336 + duplicate$ "others" =
337 + n #4 >
338 + i #2 =
339 + and
340 + or
341 + {
342 + pop$ pop$ names " et~al." *
343 + n 'i :=
344 + }{
345 + "u" change.case$ swap$
346 + i "{, ff}{~vv}" format.name$ *
347 + names swap$ add.to.namelist
348 + } if$ 'names :=
349 + #1 i + 'i :=
350 + } while$
351 + pop$
352 + names
353 + duplicate$ #-1 #1 substring$ "." = {
354 + #-2 global.max$ substring$
355 + "\@." *
356 + }
357 + 'skip$
358 + if$
359 + }
360 +
361 + %==============================================================================
362 + % Formata uma lista de sobrenomes.
363 + %
364 + % Parm:
365 + % os nomes a serem formatados
366 + %==============================================================================
367 + FUNCTION {format.family.names}
368 + {
369 + duplicate$ num.names$ 'n :=
370 + #1 'i :=
371 + "" 'names :=
372 +
373 + {i n #1 + <}
374 + {
375 + duplicate$ i "{ll}{~jj}" format.name$
376 + duplicate$ "others" =
377 + n #3 >
378 + i #2 =
379 + and
380 + or
381 + {
382 + pop$ names " et~al." *
383 + n 'i :=
384 + }{
385 + "u" change.case$
386 + names swap$ add.to.namelist
387 + } if$ 'names :=
388 + #1 i + 'i :=
389 + } while$
390 + pop$
391 + names
392 + }
393 +
394 + %==============================================================================
395 + % Formata uma lista de sobrenomes com todos os autores.
396 + %
397 + % Parm:
398 + % os nomes a serem formatados
399 + %==============================================================================
400 + FUNCTION {format.family.names.all}
401 + {
402 + duplicate$ num.names$ 'n :=
403 + #1 'i :=
404 + "" 'names :=
405 +
406 + {i n #1 + <}
407 + {
408 + duplicate$ i "{ll}{~jj}" format.name$
409 + duplicate$ "others" =
410 + {
411 + pop$ names " et~al." *
412 + n 'i :=
413 + }{
414 + "u" change.case$
415 + names swap$ add.to.namelist
416 + } if$ 'names :=
417 + #1 i + 'i :=
418 + } while$
419 + pop$
420 + names
421 + }
422 +
423 + %==============================================================================
424 + % Formata um titulo (pode ser `title' ou `booktitle')
425 + %
426 + % Parm:
427 + % um valor (0 ou 1) que indica se a formatacao deve ser enfatizada ou nao
428 + % um string com o titulo a ser formatado
429 + %==============================================================================
430 + FUNCTION {format.title}
431 + {
432 + swap$ {
433 + extract.subtitle emphasize swap$ *
434 + }{
435 + skip$
436 + } if$
437 + }
438 +
439 + %==============================================================================
440 + % Retorna a indicacao de paginas ajustada para ter dois tracos (`--') se a
441 + % entrada so' tiver um.
442 + %==============================================================================
443 + FUNCTION {get.adjusted.pages}
444 + {
445 + #1 'i :=
446 + "" 'new.pages :=
447 + pages #1 #1 substring$
448 + {duplicate$ "" = not}
449 + {
450 + duplicate$ "-" =
451 + pages i #1 - #1 substring$ "-" = not
452 + and
453 + pages i #1 + #1 substring$ "-" = not
454 + and
455 + {"-" *}
456 + 'skip$
457 + if$
458 + new.pages swap$ * 'new.pages :=
459 + #1 i + 'i :=
460 + pages i #1 substring$
461 + } while$
462 + pop$
463 + new.pages
464 + }
465 +
466 + %==============================================================================
467 + % Coloca a primeira palavra do titulo em letras maiusculas e o resto em
468 + % minusculas. Esta funcao e' usada para gerar referencias cuja entrada e' pelo
469 + % titulo.
470 + %==============================================================================
471 + FUNCTION {format.entrytitle}
472 + {
473 + #0 title format.title
474 + extract.first.word "u" change.case$
475 + swap$ *
476 + }
477 +
478 + %==============================================================================
479 + % Converte a edicao literal ("First", "Second", etc., que é o padrão indicado
480 + % no manual do BibTeX) para o algarismo correspondente. Recebe na pilha o
481 + % string e devolve o numero.
482 + %==============================================================================
483 + FUNCTION {convert.to.number}
484 + {
485 + duplicate$ "First" =
486 + {pop$ "1"}
487 + {duplicate$ "Second" =
488 + {pop$ "2"}
489 + {duplicate$ "Third" =
490 + {pop$ "3"}
491 + {duplicate$ "Fourth" =
492 + {pop$ "4"}
493 + {duplicate$ "Fifth" =
494 + {pop$ "5"}
495 + {duplicate$ "Sixth" =
496 + {pop$ "6"}
497 + {duplicate$ "Seventh" =
498 + {pop$ "7"}
499 + {duplicate$ "Eighth" =
500 + {pop$ "8"}
501 + {duplicate$ "Ninth" =
502 + {pop$ "9"}
503 + {duplicate$ "Tenth" =
504 + {pop$ "10"}
505 + {skip$
506 + } if$
507 + } if$
508 + } if$
509 + } if$
510 + } if$
511 + } if$
512 + } if$
513 + } if$
514 + } if$
515 + } if$
516 + }
517 +
518 + %=========================================================================
519 + % Formatacao dos campos. Se o campo nao existir a funcao devolve um string
520 + % vazio.
521 + %==============================================================================
522 + FUNCTION {format.author}
523 + {
524 + author empty$
525 + {""}
526 + {author format.names}
527 + if$
528 + }
529 +
530 + FUNCTION {format.editor}
531 + {
532 + editor empty$
533 + {""}
534 + {editor format.names "~(Ed.)" *}
535 + if$
536 + }
537 +
538 + FUNCTION {format.edition}
539 + {
540 + edition empty$
541 + {""}
542 + {edition convert.to.number ".ed." *}
543 + if$
544 + }
545 +
546 + FUNCTION {format.volume}
547 + {
548 + volume empty$
549 + {""}
550 + {"v." volume *}
551 + if$
552 + }
553 +
554 + FUNCTION {format.number}
555 + {
556 + number empty$
557 + {""}
558 + {"n." number *}
559 + if$
560 + }
561 +
562 + FUNCTION {format.month}
563 + {
564 + month empty$
565 + {""}
566 + {month}
567 + if$
568 + }
569 +
570 + FUNCTION {format.address}
571 + {
572 + address empty$
573 + {""}
574 + {address}
575 + if$
576 + }
577 +
578 + FUNCTION {format.publisher}
579 + {
580 + type$ "mastersthesis" =
581 + type$ "phdthesis" =
582 + or
583 + {
584 + school empty$
585 + {""}
586 + {school}
587 + if$
588 + }{
589 + type$ "techreport" =
590 + {
591 + institution empty$
592 + {""}
593 + {institution}
594 + if$
595 + }{
596 + publisher empty$
597 + {""}
598 + {publisher}
599 + if$
600 + } if$
601 + } if$
602 + }
603 +
604 + FUNCTION {format.year}
605 + {
606 + year empty$
607 + {""}
608 + {year}
609 + if$
610 + }
611 +
612 + FUNCTION {format.chapter}
613 + {
614 + chapter empty$
615 + {""}
616 + {
617 + type empty$
618 + {str:chapter}
619 + {type "~" *}
620 + if$
621 + chapter *
622 + }
623 + if$
624 + }
625 +
626 + FUNCTION {format.pages}
627 + {
628 + pages empty$
629 + {""}
630 + {"p." get.adjusted.pages *}
631 + if$
632 + }
633 +
634 + FUNCTION {format.totalpages}
635 + {
636 + pages empty$
637 + {""}
638 + {pages "p." *}
639 + if$
640 + }
641 +
642 + FUNCTION {format.note}
643 + {
644 + note empty$
645 + {""}
646 + {note}
647 + if$
648 + }
649 +
650 + FUNCTION {format.month.year}
651 + {
652 + month empty$
653 + {year}
654 + {month "~" * year *}
655 + if$
656 + }
657 +
658 + FUNCTION {format.type}
659 + {
660 + type empty$
661 + 'skip$
662 + {pop$ type}
663 + if$
664 + }
665 +
666 + FUNCTION {format.howpublished}
667 + {
668 + howpublished empty$
669 + {""}
670 + {howpublished}
671 + if$
672 + }
673 +
674 + FUNCTION {format.series}
675 + {
676 + series empty$
677 + {""}
678 + {series}
679 + if$
680 + }
681 +
682 + FUNCTION {format.parenthised.number}
683 + {
684 + number empty$ {
685 + ""
686 + }{
687 + "(" number * ")" *
688 + } if$
689 + }
690 +
691 + %==============================================================================
692 + % As seguintes funcoes adicionam um item a uma lista passada na pilha.
693 + %==============================================================================
694 + FUNCTION {add.address} {format.address add.to.list}
695 + FUNCTION {add.publisher} {format.publisher add.to.list}
696 + FUNCTION {add.year} {format.year add.to.list}
697 + FUNCTION {add.chapter} {format.chapter add.to.list}
698 + FUNCTION {add.edition} {format.edition add.to.list}
699 + FUNCTION {add.volume} {format.volume add.to.list}
700 + FUNCTION {add.number} {format.number add.to.list}
701 + FUNCTION {add.month} {format.month add.to.list}
702 + FUNCTION {add.totalpages} {format.totalpages add.to.list}
703 + FUNCTION {add.pages} {format.pages add.to.list}
704 + FUNCTION {add.note} {format.note add.to.list}
705 + FUNCTION {add.month.year} {format.month.year add.to.list}
706 + FUNCTION {add.howpublished} {format.howpublished add.to.list}
707 +
708 + FUNCTION {format.urldate} {
709 + urldate empty$
710 + {""}
711 + {"Acesso em: " urldate *}
712 + if$
713 + }
714 +
715 + FUNCTION {format.url} {
716 + url empty$
717 + {""}
718 + {"Dispon{\'\i}vel em: <" url * ">" *}
719 + if$
720 + }
721 +
722 +
723 + %==============================================================================
724 + % Converte virgula para dois-pontos; usado na formatacao do publisher de
725 + % proceedings e inproceedings, que normalmente levam tambem o local de publi-
726 + % cao; no padrao ABNT essa separacao deve ser por dois-pontos.
727 + % Recebe o string original e devolve o novo.
728 + %==============================================================================
729 + FUNCTION {comma.to.colon}
730 + {
731 + 's :=
732 + "" 't :=
733 + #1 'i :=
734 + {s i #1 substring$ "" = not}
735 + {
736 + s i #1 substring$ duplicate$ "," =
737 + {pop$ t ":" * 't :=}
738 + {t swap$ * 't :=}
739 + if$
740 + i #1 + 'i :=
741 + } while$
742 + t
743 + }
744 +
745 + %
746 + % localiza a posicao do primeiro caractere maiusculo
747 + % recebe o string, devolve a posicao
748 + %
749 + FUNCTION {find.first.uppercase.char}
750 + {
751 + 's :=
752 + #1 'j :=
753 + #1 'i :=
754 + {
755 + s i #1 substring$ 't :=
756 + t "" = not
757 + t is.uppercase.char not
758 + and
759 + }
760 + {
761 + i #1 + 'i :=
762 + t "\" = not
763 + t "{" = not
764 + and
765 + t "}" = not
766 + and
767 + {i 'j :=}
768 + 'skip$
769 + if$
770 + } while$
771 + t "" =
772 + {#1}
773 + {j}
774 + if$
775 + }
776 +
777 + %
778 + % extrai o primeiro numero que aparece no string passado na pilha,
779 + % retornando-o; se nao ha' numero, retorna ""
780 + %
781 + FUNCTION {extract.first.number}
782 + {
783 + 's :=
784 + "" 't :=
785 + #1 'i :=
786 + {
787 + s i #1 substring$
788 + duplicate$ is.numeric.char not
789 + swap$ "" = not
790 + and
791 + }
792 + {
793 + i #1 + 'i :=
794 + } while$
795 + {s i #1 substring$ is.numeric.char}
796 + {
797 + t s i #1 substring$ * 't :=
798 + i #1 + 'i :=
799 + } while$
800 + t
801 + }
802 +
803 + %
804 + % divide um string em dois
805 + % recebe o string e a posicao
806 + % devolve a primeira e a segunda parte
807 + FUNCTION {split.string}
808 + {
809 + swap$ 's :=
810 + duplicate$
811 + s swap$ #1 swap$ #1 - substring$
812 + swap$ s swap$ global.max$ substring$
813 + }
814 +
815 + %
816 + % recebe o titulo original e devolve, na ordem, o tipo de proceedings e o
817 + % restante do titulo
818 + %
819 + FUNCTION {extract.proceedings.type}
820 + {
821 + 's :=
822 + type empty$ not
823 + {type s}
824 + {"dummy"
825 + pop$ s #1 #11 substring$ duplicate$ "Proceedings" =
826 + {s #12 global.max$ substring$}{
827 + pop$ s #1 #5 substring$ duplicate$ "Proc." =
828 + {pop$ "Proceedings" s #6 global.max$ substring$}{
829 + pop$ s #1 #22 substring$ duplicate$ "Conference Proceedings" =
830 + {pop$ "Proceedings" s #23 global.max$ substring$}{
831 + pop$ s #1 #6 substring$ duplicate$ "Annals" =
832 + {s #7 global.max$ substring$}{
833 + pop$ s #1 #5 substring$ duplicate$ "Actas" =
834 + {s #6 global.max$ substring$}{
835 + pop$ s #1 #5 substring$ duplicate$ "Anais" =
836 + {s #6 global.max$ substring$}{
837 + pop$ s #1 #6 substring$ duplicate$ "Anales" =
838 + {s #7 global.max$ substring$}{
839 + pop$ s #1 #8 substring$ duplicate$ "Memorias" =
840 + {s #9 global.max$ substring$}{
841 + pop$ s #1 #22 substring$ duplicate$ "Trabajos Seleccionados" =
842 + {s #23 global.max$ substring$}{
843 + pop$ s #1 #11 substring$ duplicate$ "Tagungsband" =
844 + {s #12 global.max$ substring$}
845 + {pop$ "Proceedings" s} if$
846 + } if$
847 + } if$
848 + } if$
849 + } if$
850 + } if$
851 + } if$
852 + } if$
853 + } if$
854 + } if$
855 + } if$
856 + }
857 +
858 + %==============================================================================
859 + % Converte um booktitle do tipo "Proc. of XXX" no padrao ABNT
860 + % Recebe na pilha o titulo original
861 + % Devolve na pilha, na ordem:
862 + % - o tipo de publicacao
863 + % - o titulo ja' formatado (em maiusculas e com a edicao)
864 + %==============================================================================
865 + FUNCTION {process.proceedings.booktitle}
866 + {
867 + extract.proceedings.type
868 + duplicate$ find.first.uppercase.char split.string "u" change.case$
869 + swap$ extract.first.number
870 + duplicate$ empty$
871 + 'pop$
872 + {", " swap$ * * "." *}
873 + if$
874 + }
875 +
876 + %==============================================================================
877 + % Estas funcoes formatam partes comuns a varios tipos de referencia.
878 + %==============================================================================
879 + FUNCTION {format.publication}
880 + {
881 + ""
882 + address empty$
883 + {
884 + "[S.l."
885 + format.publisher empty$
886 + {":~s.n.]" *}
887 + {"]: " format.publisher * *}
888 + if$ add.year add.to.item
889 + }
890 + {
891 + format.address
892 + format.publisher empty$
893 + {": [s.n.]" *}
894 + {": " format.publisher * *}
895 + if$ add.year add.to.item
896 + }
897 + if$
898 + }
899 +
900 + FUNCTION {format.proceedings.publication}
901 + {
902 + publisher empty$
903 + {"[S.l.:~s.n.]"}
904 + {publisher comma.to.colon}
905 + if$ add.year
906 + }
907 +
908 + FUNCTION {format.misc.publication}
909 + {
910 + address empty$
911 + publisher empty$
912 + and
913 + {""}
914 + {format.publication}
915 + if$
916 + }
917 +
918 + FUNCTION {format.series.info}
919 + {
920 + "(" format.series *
921 + add.volume ")" *
922 + }
923 +
924 + FUNCTION {format.complementary.data.with.totalpages}
925 + {
926 + "" format.totalpages add.to.item
927 + ""
928 + series empty$
929 + {add.volume add.number add.to.item}
930 + {add.number add.to.item format.series.info add.to.item}
931 + if$
932 + }
933 +
934 + FUNCTION {format.complementary.data.with.page.range}
935 + {
936 + ""
937 + series empty$
938 + {add.volume add.number add.pages}
939 + {"" add.number add.pages add.to.item format.series.info add.to.item}
940 + if$
941 + }
942 +
943 + %
944 + % esta funcao recebe o titulo a ser formatado
945 + %
946 + FUNCTION {format.proceedings.booktitle}
947 + {
948 + process.proceedings.booktitle "" swap$ add.year add.address add.to.item
949 + swap$ "{\ldots}" * emphasize " " swap$ * *
950 + }
951 +
952 + %==============================================================================
953 + % Formatacao das entradas
954 + %==============================================================================
955 + FUNCTION {article}
956 + {
957 + ""
958 + format.author add.to.item
959 + #0 title format.title add.to.item
960 + journal emphasize
961 + address empty$ {
962 + "[S.l.]" add.to.list
963 + }{
964 + add.address
965 + } if$
966 + add.volume add.number add.pages add.month.year add.to.item
967 + format.note add.to.item
968 +
969 + write.item
970 + }
971 +
972 + FUNCTION {book}
973 + {
974 + ""
975 + editor empty$
976 + {format.author}
977 + {format.editor}
978 + if$ add.to.item
979 + #1 title format.title add.to.item
980 + format.edition add.to.item
981 + format.publication add.to.item
982 + format.complementary.data.with.totalpages add.to.item
983 + format.note add.to.item
984 +
985 + write.item
986 + }
987 +
988 + FUNCTION {inbook}
989 + {
990 + ""
991 + editor empty$
992 + {format.author}
993 + {format.editor}
994 + if$ add.to.item
995 + #1 title format.title add.to.item
996 + format.edition add.to.item
997 + format.publication add.to.item
998 + format.complementary.data.with.page.range add.to.item
999 + format.note add.to.item
1000 +
1001 + write.item
1002 + }
1003 +
1004 + FUNCTION {incollection}
1005 + {
1006 + ""
1007 + format.author add.to.item
1008 + #0 title format.title add.to.item
1009 + "In:"
1010 + editor empty$
1011 + 'skip$
1012 + {format.editor add.to.item}
1013 + if$
1014 + #1 booktitle format.title add.to.item add.to.item
1015 + format.edition add.to.item
1016 + format.publication add.to.item
1017 + format.complementary.data.with.page.range add.to.item
1018 + format.note add.to.item
1019 +
1020 + write.item
1021 + }
1022 +
1023 + FUNCTION {inproceedings}
1024 + {
1025 + ""
1026 + format.author add.to.item
1027 + #0 title format.title add.to.item
1028 + " In: " booktitle format.proceedings.booktitle * *
1029 + format.proceedings.publication add.to.item
1030 + format.complementary.data.with.page.range add.to.item
1031 + format.note add.to.item
1032 +
1033 + write.item
1034 + }
1035 +
1036 + FUNCTION {manual}
1037 + {
1038 + ""
1039 + author empty$
1040 + {format.entrytitle add.to.item}
1041 + {
1042 + format.author add.to.item
1043 + #1 title format.title add.to.item
1044 + }
1045 + if$
1046 +
1047 + format.edition add.to.item
1048 + format.publication add.to.item
1049 + format.complementary.data.with.totalpages add.to.item
1050 + format.note add.to.item
1051 +
1052 + write.item
1053 + }
1054 +
1055 + FUNCTION {mastersthesis}
1056 + {
1057 + ""
1058 + format.author add.to.item
1059 + #1 title format.title add.to.item
1060 + format.year add.to.item
1061 + format.totalpages add.to.item
1062 + str:mastersthesis format.type " --- " * format.publisher *
1063 + add.address add.to.item
1064 + format.note add.to.item
1065 + format.parenthised.number add.to.item
1066 +
1067 + write.item
1068 + }
1069 +
1070 + FUNCTION {misc}
1071 + {
1072 + ""
1073 + author empty$
1074 + {
1075 + title empty$
1076 + 'skip$
1077 + {format.entrytitle add.to.item}
1078 + if$
1079 + }
1080 + {
1081 + format.author add.to.item
1082 + title empty$
1083 + 'skip$
1084 + {#1 title format.title add.to.item}
1085 + if$
1086 + }
1087 + if$
1088 +
1089 + format.misc.publication add.to.item
1090 + format.complementary.data.with.totalpages add.to.item
1091 + format.note add.howpublished add.to.item
1092 +
1093 + format.url add.to.item
1094 + format.urldate add.to.item
1095 +
1096 + write.item
1097 + }
1098 +
1099 + FUNCTION {phdthesis}
1100 + {
1101 + ""
1102 + format.author add.to.item
1103 + #1 title format.title add.to.item
1104 + format.year add.to.item
1105 + format.totalpages add.to.item
1106 + str:phdthesis format.type " --- " * format.publisher *
1107 + add.address add.to.item
1108 + format.note add.to.item
1109 + format.parenthised.number add.to.item
1110 +
1111 + write.item
1112 + }
1113 +
1114 + FUNCTION {proceedings}
1115 + {
1116 + ""
1117 + title format.proceedings.booktitle *
1118 + format.proceedings.publication add.to.item
1119 + format.complementary.data.with.page.range add.to.item
1120 + format.note add.to.item
1121 +
1122 + write.item
1123 + }
1124 +
1125 + FUNCTION {techreport}
1126 + {
1127 + ""
1128 + format.author add.to.item
1129 + #1 title format.title add.to.item
1130 + format.publication add.to.item
1131 + type empty$
1132 + {""}
1133 + {type}
1134 + if$ add.note add.to.item
1135 + format.parenthised.number add.to.item
1136 +
1137 + write.item
1138 + }
1139 +
1140 + FUNCTION {booklet} {misc}
1141 + FUNCTION {unpublished} {misc}
1142 + FUNCTION {default.type} {misc}
1143 +
1144 + %==============================================================================
1145 + % Inicializa algumas variaveis globais
1146 + %==============================================================================
1147 + FUNCTION {init}
1148 + {
1149 + "" 'last.label :=
1150 + "b" 'current.letter :=
1151 + }
1152 +
1153 + %==============================================================================
1154 + % Retorna na pilha o string a ser usado para a ordenacao das entradas.
1155 + %==============================================================================
1156 + FUNCTION {get.sortstring}
1157 + {
1158 + author empty$ not {format.author " AAA" *}{
1159 + editor empty$ not {format.editor " AAA" *}{
1160 + title empty$ not {title}{
1161 + note empty$ not {note}{
1162 + key empty$ not {key}{
1163 + "???"
1164 + } if$
1165 + } if$
1166 + } if$
1167 + } if$
1168 + } if$
1169 +
1170 + type$ "inbook" =
1171 + booktitle empty$ not
1172 + and
1173 + {
1174 + booktitle title = not
1175 + {pop$ title}
1176 + 'skip$
1177 + if$
1178 + }
1179 + 'skip$
1180 + if$
1181 +
1182 + type$ "proceedings" = {
1183 + pop$
1184 + title process.proceedings.booktitle
1185 + swap$ pop$
1186 + }
1187 + 'skip$
1188 + if$
1189 + purify$ "l" change.case$
1190 + }
1191 +
1192 + %==============================================================================
1193 + % Define as ``keys'' para ordenacao
1194 + %==============================================================================
1195 + FUNCTION {set.sortkeys}
1196 + {
1197 + get.sortstring
1198 + format.year *
1199 + #1 entry.max$ substring$
1200 + #1 global.max$ substring$
1201 + 'sort.key$ :=
1202 + }
1203 +
1204 + %==============================================================================
1205 + % Ajusta os labels, adicionando letras minusculas aos labels de mesmo autor e
1206 + % ano
1207 + %==============================================================================
1208 + FUNCTION {adjust.label}
1209 + {
1210 + last.label
1211 + label 'last.label :=
1212 + label = {
1213 + current.letter 'year.char :=
1214 + current.letter chr.to.int$
1215 + #1 + int.to.chr$
1216 + 'current.letter :=
1217 + }{
1218 + "" 'year.char :=
1219 + "b" 'current.letter :=
1220 + } if$
1221 + }
1222 + FUNCTION {reverse.adjust.label}
1223 + {
1224 + last.year.char "b" = {
1225 + "a" 'year.char :=
1226 + }
1227 + 'skip$
1228 + if$
1229 + year.char 'last.year.char :=
1230 + }
1231 +
1232 + %==============================================================================
1233 + % Retorna na pilha o string a ser usado para a construcao do label. Quase sempre
1234 + % sera' o sobrenome do primeiro autor, mas para alguns tipos de referencia pode
1235 + % ser o editor, a entidade ou o titulo
1236 + %==============================================================================
1237 + FUNCTION {get.labelstring}
1238 + {
1239 + author empty$ not
1240 + {author format.family.names}
1241 + {
1242 + editor empty$ not
1243 + {editor format.family.names}
1244 + {
1245 + title empty$ not
1246 + {title "u" change.case$}
1247 + {
1248 + key empty$ not
1249 + {key}
1250 + {"???"}
1251 + if$
1252 + }
1253 + if$
1254 + }
1255 + if$
1256 + }
1257 + if$
1258 +
1259 + type$ "inbook" =
1260 + booktitle empty$ not
1261 + and
1262 + {
1263 + booktitle title = not
1264 + {pop$ title "u" change.case$}
1265 + 'skip$
1266 + if$
1267 + }
1268 + 'skip$
1269 + if$
1270 + }
1271 +
1272 + %==============================================================================
1273 + % Retorna na pilha o string a ser usado para a construcao do label. Quase sempre
1274 + % sera' o sobrenome do primeiro autor, mas para alguns tipos de referencia pode
1275 + % ser o editor, a entidade ou o titulo
1276 + %
1277 + % esta versao retorna os nomes completos
1278 + %==============================================================================
1279 + FUNCTION {get.labelstring.all}
1280 + {
1281 + author empty$ not
1282 + {author format.family.names.all}
1283 + {
1284 + editor empty$ not
1285 + {editor format.family.names.all}
1286 + {
1287 + title empty$ not
1288 + {title "u" change.case$}
1289 + {
1290 + key empty$ not
1291 + {key}
1292 + {"???"}
1293 + if$
1294 + }
1295 + if$
1296 + }
1297 + if$
1298 + }
1299 + if$
1300 +
1301 + type$ "inbook" =
1302 + booktitle empty$ not
1303 + and
1304 + {
1305 + booktitle title = not
1306 + {pop$ title "u" change.case$}
1307 + 'skip$
1308 + if$
1309 + }
1310 + 'skip$
1311 + if$
1312 + }
1313 +
1314 + %==============================================================================
1315 + % Construção dos labels
1316 + %==============================================================================
1317 + FUNCTION {prepare.label.sorting}
1318 + {
1319 + get.labelstring.all format.year *
1320 + duplicate$ 'label := 'sort.key$ :=
1321 + }
1322 + FUNCTION {make.label}
1323 + {
1324 + get.labelstring
1325 + "(" *
1326 + year empty$ {
1327 + "????"
1328 + }{
1329 + year year.char *
1330 + } if$ *
1331 + ")" *
1332 + get.labelstring.all *
1333 + #1 entry.max$ substring$
1334 + #1 global.max$ substring$
1335 + 'label :=
1336 + }
1337 +
1338 + %==============================================================================
1339 + % Inicia a definicao das referencias
1340 + %==============================================================================
1341 + FUNCTION {begin.bib}
1342 + {
1343 + preamble$ empty$
1344 + 'skip$
1345 + {preamble$ write$ newline$ newline$}
1346 + if$
1347 + "\begin{thebibliography}{\hspace{\parindent}}" write$ newline$
1348 + newline$
1349 + }
1350 +
1351 + %==============================================================================
1352 + % Termina a definicao das referencias
1353 + %==============================================================================
1354 + FUNCTION {end.bib}
1355 + {
1356 + "\end{thebibliography}" write$ newline$
1357 + }
1358 +
1359 + %==============================================================================
1360 + % main()
1361 + %==============================================================================
1362 + READ
1363 + EXECUTE {init}
1364 + ITERATE {prepare.label.sorting}
1365 + SORT
1366 + ITERATE {adjust.label}
1367 + REVERSE {reverse.adjust.label}
1368 + ITERATE {make.label}
1369 + ITERATE {set.sortkeys}
1370 + SORT
1371 + EXECUTE {begin.bib}
1372 + ITERATE {call.type$}
1373 + EXECUTE {end.bib}
1374 +
monografia/images/if.pdf
Binary file brotha
monografia/images/tsi.png
Binary file brotha
monografia/images/xitsu.png
Binary file brotha
monografia/monografia.bib
@@ -0,0 +1,30 @@
1 + @article{barber:92,
2 + title={Too much of a good thing: light can be bad for photosynthesis},
3 + author={Barber, James and Andersson, Bertil},
4 + journal={Trends in biochemical sciences},
5 + volume={17},
6 + number={2},
7 + pages={61--66},
8 + year={1992},
9 + publisher={Elsevier},
10 + address={Cambridge, MA, USA},
11 + },
12 +
13 + @article{silva:18,
14 + title={Ambientações messiânicas: Um estudo acerca das idiocrassias},
15 + author={Silva, Luís Eduardo Talavera Pereira and Martins, Luisa Helena Madureira and Yang, Qu and Wang, Kim},
16 + journal={Pesquisas Estrambólicas},
17 + volume={20},
18 + number={1},
19 + pages={101--106},
20 + year={2018},
21 + publisher={Yegsidra},
22 + address={São Paulo, SP, Brasil},
23 + },
24 +
25 + @misc{site:15,
26 + title={Meu website},
27 + author={Giovane Torres},
28 + url={https://gdotorres.github.io},
29 + urldate={26 de outubro de 2018},
30 + }
monografia/monografia.pdf
Binary file brotha
monografia/monografia.tex
@@ -0,0 +1,168 @@
1 + \documentclass[tcc,capa,table]{textsi}
2 +
3 + \usepackage[brazilian]{babel} % Linguagem do documento: Português-brasileiro
4 + \usepackage[utf8]{inputenc} % Codificação do arquivo .tex. IMPORTANTE: O arquivo deve ser salvo utilizando a codificação UTF-8 para mostrar corretamente os caracteres!
5 + \usepackage[T1]{fontenc} % Permite que se faça cópia do texto do PDF de maneira correta, usando a codificação de fonte T1
6 +
7 + % Alguns pacotes disponíveis no latex para adição e manipulação de elementos do documento
8 + \usepackage{array,booktabs}
9 + \usepackage{enumitem}
10 + \usepackage{listings}
11 + \usepackage{makecell}
12 + \usepackage{graphicx,subfigure}
13 + \usepackage{multirow}
14 + \usepackage{xcolor}
15 + \usepackage{pdfpages}
16 + \usepackage{lipsum}
17 + \graphicspath{{images/}}
18 +
19 + % Título do trabalho
20 + \title{orbit - Um aplicativo para rastrear flutuações de humor para pessoas com TAB}
21 +
22 + % Autor do trabalho. Primeiro argumento: Último sobrenome; Segundo argumento: Restante do nome
23 + \author{Porcellis}{Pedro Lucas Porcellis}
24 +
25 + % Orientador do trabalho. Primeiro argumento (opcional): titulação do orientador. Segundo argumento (obrigatório): Último sobrenome; Terceiro argumento (obrigatório): Restante do nome
26 + \advisor[Prof.~Me.]{Torres}{Giovane de Oliveira}
27 +
28 + % Instituição do orientador do trabalho.
29 + \instituicaoadvisor{IFSul}
30 +
31 + % Descomente a linha abaixo se tens co-orientador. Segue o mesmo formato do orientador do trabalho.
32 + %\coadvisor[Prof.~Dr.]{Aguiar}{Marilton Sanchotene de}
33 +
34 + % Descomente a linha abaixo se tens colaborador. Segue o mesmo formato do orientador do trabalho.
35 + %\collaborator[Prof.~Dr.]{Aguiar}{Marilton Sanchotene de}
36 +
37 + % Membro 1 da banca. Um argumento único, contendo titulação e nome completo.
38 + \membroi{Prof.~Dr. Fulano de Souza e Silva}
39 + % Instituição do membro 1 da banca.
40 + \instituicaomembroi{UFI}
41 +
42 + % Membro 2 da banca. Segue o mesmo formato que o membro 1.
43 + \membroii{Prof. Dr. Sicrano Silveira Rosa}
44 + % Instituição do membro 2 da banca.
45 + \instituicaomembroii{UFPG}
46 +
47 + % Descomente se tens um terceiro membro na banca. Membro 3 da banca. Segue o mesmo formato que o membro 1.
48 + \membroiii{Prof. Dr. Beltrano Pereira Tavares}
49 + % Descomente se tens um terceiro membro na banca. Instituição do membro 3 da banca.
50 + \instituicaomembroiii{UFCR}
51 +
52 + % Palavras-chave do trabalho desenvolvido.
53 + \keyword{Reuso de traços}
54 + \keyword{Arquiteturas ARM}
55 + \keyword{Desempenho}
56 +
57 + \begin{document}
58 +
59 + % Descomente se você tem orientadora, e não orientador.
60 + %\renewcommand{\advisorname}{\orientadora}
61 +
62 + % Descomente se você tem coorientadora, e não orientador.
63 + %\renewcommand{\coadvisorname}{\coorientadora}
64 +
65 + % Faz com que o título apareça
66 + \maketitle
67 +
68 + \sloppy
69 +
70 + % Ficha catalográfica e folha de aprovação
71 + \fichacatalografica
72 + \folhadeaprovacao
73 +
74 + %Opcional - dedicatória
75 + \begin{dedicatoria}
76 + Texto da Dedicatória
77 + \end{dedicatoria}
78 +
79 + %Opcional - agradecimentos
80 + \begin{agradecimentos}
81 + Texto dos Agradecimentos
82 + \end{agradecimentos}
83 +
84 + %Opcional - epígrafe
85 + \begin{epigrafe}
86 + "Texto da Epígrafe" \\
87 + Autor da Epígrafe
88 + \end{epigrafe}
89 +
90 + % Resumo em língua vernácula (a que você está escrevendo o documento)
91 + \begin{abstract}
92 + Texto do resumo. Deve conter de 150 a 500 palavras.
93 + \end{abstract}
94 +
95 + % Resumo em língua estrangeira
96 + \begin{englishabstract}%
97 + {Palavras-chave em inglês}
98 + Texto do resumo, em inglês.
99 + \end{englishabstract}
100 +
101 + %Lista de Figuras
102 + \listoffigures
103 +
104 + %Lista de Tabelas
105 + \listoftables
106 +
107 + %lista de abreviaturas e siglas
108 + \begin{listofabbrv}{SN1} % <- Insira aqui a maior sigla da sua lista de siglas.
109 + % O conteúdo dentro dos colchetes é a sigla, e o texto ao lado é o seu significado
110 + \item[SN1] Sigla Número 1
111 + \end{listofabbrv}
112 +
113 + %Sumario
114 + \tableofcontents
115 +
116 + % Chapter é a seção primária do documento. Toda vez que é chamado este comando, uma quebra de página é adicionada;
117 + \chapter{Seção Primária (\textit{chapter})}
118 +
119 + \lipsum[1]
120 +
121 + % Section é a seção secundária do documento. O restante é auto explicativo..
122 + \section{Seção Secundária (\textit{section})}
123 +
124 + \lipsum[1-2]
125 +
126 + \subsection{Seção Terciária (\textit{subsection})}
127 +
128 + \lipsum[1]
129 +
130 + \subsubsection{Seção Quaternária (\textit{subsubsection})}
131 +
132 + \lipsum[1]
133 +
134 + \paragraph{Seção Quinária (\textit{paragraph})}
135 +
136 + Exemplo de citação padrão~\cite{barber:92}. Uma outra citação~\cite{silva:18}. \lipsum[1-3]
137 +
138 + Isso pode ser visto na Figura~\ref{fig:xitsu}.
139 +
140 + \begin{figure}[!h]
141 + \centering
142 + \caption{Xitsu}
143 + \label{fig:xitsu}
144 + \includegraphics[scale=2]{xitsu.png}
145 + \source{Xitsu}
146 + \end{figure}
147 +
148 + Outra coisa~\cite{site:15}
149 +
150 + \bibliography{monografia}
151 + \bibliographystyle{abnt}
152 +
153 + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
154 +
155 + % NÃO MEXER - RELACIONADO À FORMATAÇÃO DE ANEXOS/APÊNDICES
156 + \makeatletter%
157 + \renewcommand*{\@seccntformat}[1]{\csname the#1\endcsname\hspace{0.2cm}}%
158 + \makeatother%
159 +
160 + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
161 +
162 + % Adiciona um apêndice
163 + \append{Inverno}
164 +
165 + % Adiciona um anexo
166 + \annex{Verão}
167 +
168 + \end{document}
monografia/textsi.cls
@@ -0,0 +1,829 @@
1 + %==============================================================================
2 + % Identificação
3 + %==============================================================================
4 + \def\currversion{3/5/2014}
5 +
6 + \typeout{^^J^^J
7 + --------------------------------------------------^^J
8 + CLASSE textsi^^J
9 + Formatação de Documentos LaTeX do TSI^^J
10 + --------------------------------------------------^^J
11 + Agradecimentos^^J
12 + Marilton Aguiar, pela Classe de Formatação de Documentos LaTeX da UFPEL^^J
13 + Rafael Krolow, pelo esqueleto de Template para o Documento LaTeX par o TSI^^J
14 + --------------------------------------------------^^J
15 + Desenvolvimento por Giovane de Oliveira Torres (ggiovaneotorres@gmail.com)^^J
16 + --------------------------------------------------^^J
17 + Versão: \currversion^^J
18 + --------------------------------------------------^^J^^J}
19 +
20 + \NeedsTeXFormat{LaTeX2e}
21 + \ProvidesClass{textsi}[\currversion]
22 +
23 + %==============================================================================
24 + % Declaração de opções
25 + %==============================================================================
26 +
27 + % Órgãos para o cabeçalho do título.
28 +
29 + \newcommand{\ministerio}[1]{\gdef\@ministerio{#1}}
30 + \ministerio{Minist{\'e}rio da Educa\c c{\~a}o}
31 +
32 + \newcommand{\secretaria}[1]{\gdef\@secretaria{#1}}
33 + \secretaria{Secretaria de Educa\c c{\~a}o Profissional e Tecnol{\'o}gica}
34 +
35 + \newcommand{\instituto}[1]{\gdef\@instituto{#1}}
36 + \instituto{Instituto Federal Sul-Rio-Grandense}
37 +
38 + \newcommand{\campus}[1]{\gdef\@campus{#1}}
39 + \campus{C{\^a}mpus Pelotas}
40 +
41 + \newcommand{\thecurso}[1]{\gdef\@thecurso{#1}}
42 + \thecurso{Curso Superior de Tecnologia em Sistemas para Internet}
43 +
44 + \newcommand{\documento}[1]{\gdef\@documento{#1}}
45 + \newcommand{\tipodocumento}[1]{\gdef\@tipodocumento{#1}}
46 + \newcommand{\descricaodocumento}[1]{\gdef\@descricaodocumento{#1}}
47 +
48 + % Para a folha de aprovação
49 +
50 + \newcommand{\instituicaoadvisor}[1]{\gdef\@instituicaoadvisor{#1}}
51 +
52 + \newcommand{\membroi}[1]{\gdef\@membroi{#1}}
53 + \newcommand{\membroii}[1]{\gdef\@membroii{#1}}
54 + \newcommand{\membroiii}[1]{\gdef\@membroiii{#1}}
55 +
56 + \newcommand{\instituicaomembroi}[1]{\gdef\@instituicaomembroi{#1}}
57 + \newcommand{\instituicaomembroii}[1]{\gdef\@instituicaomembroii{#1}}
58 + \newcommand{\instituicaomembroiii}[1]{\gdef\@instituicaomembroiii{#1}}
59 +
60 + % Para o texto
61 +
62 + \newcommand{\source}[1]{\\ Fonte: #1}
63 +
64 + % Opções
65 +
66 + \DeclareOption{tcc}{
67 + \documento{Trabalho de Conclus{\~a}o de Curso}
68 + \tipodocumento{Trabalho de Conclus{\~a}o de Curso (\@nomecurso) -- \@unidade}
69 + \descricaodocumento{Trabalho de Conclus{\~a}o de Curso apresentado como requisito parcial {\`a} obten\c c{\~a}o ao t{\'i}tulo de tecn{\'o}logo em Sistemas para Internet do Instituto Federal Sul-Rio-Grandense}
70 + }
71 +
72 + \newcommand{\capa}[1]{\gdef\@capa{#1}}
73 + \DeclareOption{capa}{\capa{1}}
74 +
75 + \newcommand{\nocipinfo}[1]{\gdef\@nocipinfo{#1}}
76 + \DeclareOption{nocipinfo}{\nocipinfo{1}}
77 +
78 + \DeclareOption{english}{\@englishtrue\OptionNotUsed}\newif\if@english
79 + \DeclareOption{oneside}{\AtEndOfClass{\@twosidefalse}\OptionNotUsed}
80 + \DeclareOption*{\PassOptionsToClass{\CurrentOption}{report}}
81 + \ProcessOptions
82 + \relax
83 +
84 + %==============================================================================
85 + % Herança da classe `report' e inclusão de pacotes e arquivos necessários
86 + %==============================================================================
87 + \LoadClass[12pt,a4paper,oneside]{report}
88 +
89 + \RequirePackage[english,brazilian]{babel}
90 + \RequirePackage{ulem}
91 + \RequirePackage{lastpage}
92 + \RequirePackage{indentfirst}
93 + \RequirePackage{natbib}
94 + \RequirePackage{chngcntr}
95 + \RequirePackage{eso-pic}
96 + \RequirePackage{color}
97 + \RequirePackage{setspace}
98 + \RequirePackage{geometry}
99 +
100 + \geometry{top=3cm,right=2cm,left=3cm,bottom=2cm}
101 +
102 + \definecolor{laranjaufpel}{rgb}{1,0.6,0}
103 + \definecolor{verdeufpel}{rgb}{0.09,0.7,0.44}
104 + \definecolor{azulufpel}{rgb}{0.07,0.49,0.72}
105 + \definecolor{cinzaufpel}{rgb}{0.85,0.85,0.85}
106 +
107 + %
108 + % definições para textos em português
109 + %
110 + \@namedef{captionsbrazilian}{%
111 + \def\bibname{Refer{\^e}ncias}%
112 + \def\abstractname{Resumo}%
113 + \def\appendixname{Ap{\^e}ndice}%
114 + \def\contentsname{Sum{\'a}rio}%
115 + \def\listfigurename{Lista de Ilustra\c{c}{\~o}es}%
116 + \def\listtablename{Lista de Tabelas}%
117 + \def\figurename{Figura}%
118 + \def\tablename{Tabela}%
119 + \def\advisorname{Orientador}%
120 + \def\coadvisorname{Coorientador}%
121 + \def\collaboratorname{Colaborador}%
122 + \def\listabbrvname{Lista de Abreviaturas e Siglas}%
123 + \def\listsymbolname{Lista de S{\'\i}mbolos}%
124 + \def\annexname{Anexo}%
125 + \def\keywordsname{Palavras-chave}%
126 + }
127 +
128 + \@namedef{datebrazilian}{%
129 + \def\monthname{%
130 + \ifcase\month\or%
131 + janeiro\or fevereiro\or mar{\c{c}}o\or abril\or maio\or junho\or
132 + julho\or agosto\or setembro\or outubro\or novembro\or dezembro%
133 + \fi%
134 + }%
135 + \def\ei@date{\@publyear}%
136 + % \def\ei@date{\@publmonth\ de~\@publyear}%
137 + }
138 +
139 + %
140 + % definições para textos em inglês
141 + %
142 + \@namedef{captionsenglish}{%
143 + \def\bibname{References}%
144 + \def\abstractname{Abstract}%
145 + \def\appendixname{Appendix}%
146 + \def\contentsname{Contents}%
147 + \def\listfigurename{List of Figures}%
148 + \def\listtablename{List of Tables}%
149 + \def\figurename{Figure}%
150 + \def\tablename{Table}%
151 + \def\advisorname{Advisor}%
152 + \def\coadvisorname{Coadvisor}%
153 + \def\collaboratorname{Collaborator}%
154 + \def\listabbrvname{List of Abbreviations and Acronyms}%
155 + \def\listsymbolname{List of Symbols}%
156 + \def\annexname{Annex}%
157 + \def\keywordsname{Keywords}%
158 + }
159 +
160 + \@namedef{dateenglish}{%
161 + \def\monthname{%
162 + \ifcase\month\or%
163 + January\or February\or March\or April\or May\or June\or July\or
164 + August\or September\or October\or November\or December%
165 + \fi%
166 + }%
167 + \def\ei@date{\@publyear}%
168 + % \def\ei@date{\@publmonth~\@publyear}%
169 + }
170 +
171 + \if@english%
172 + \selectlanguage{english}%
173 + \AtBeginDocument{\selectlanguage{english}}%
174 + \fi
175 +
176 + %==============================================================================
177 + % O uso de fonte Arial, 12 pt, é mandatório
178 + %==============================================================================
179 + \renewcommand*\familydefault{\sfdefault}%
180 + \renewcommand{\rmdefault}{phv}%
181 + \renewcommand{\sfdefault}{phv}
182 +
183 + % Definição do espaçamento de texto
184 + \setlength{\baselineskip}{1.5cm}
185 +
186 + %==============================================================================
187 + % Numeração das páginas
188 + %==============================================================================
189 + \def\ps@texufpel{%
190 + \let\@oddfoot\@empty%
191 + \let\@evenfoot\@empty%
192 + \def\@oddhead{\hspace*{\fill}{\small\thepage}}%
193 + \def\@evenhead{\hspace*{\fill}{\small\thepage}}%
194 + }
195 +
196 + \pagestyle{empty}%
197 + \let\ps@plain\ps@empty
198 +
199 + %==============================================================================
200 + % Definição de autor(es), orientador e co-orientador
201 + %==============================================================================
202 + \newcounter{ei@authorcount}
203 + \renewcommand{\author}[2]{
204 + \addtocounter{ei@authorcount}{1}
205 + \expandafter\gdef\csname @author\alph{ei@authorcount}last\endcsname{#1}
206 + \expandafter\gdef\csname @author\alph{ei@authorcount}first\endcsname{#2}
207 + \expandafter\gdef\csname @author\alph{ei@authorcount}\endcsname{#2 #1}
208 + }
209 +
210 + \newcounter{ei@advisorcount}
211 + \DeclareRobustCommand{\advisor}[3][]{
212 + \addtocounter{ei@advisorcount}{1}
213 + \expandafter\gdef\csname @advisor\alph{ei@advisorcount}last\endcsname{#2}
214 + \expandafter\gdef\csname @advisor\alph{ei@advisorcount}first\endcsname{#3}
215 + \expandafter\gdef\csname @advisor\alph{ei@advisorcount}\endcsname{#1~#3 #2}
216 + }
217 +
218 + \newcounter{ei@coadvisorcount}
219 + \DeclareRobustCommand{\coadvisor}[3][]{
220 + \addtocounter{ei@coadvisorcount}{1}
221 + \expandafter\gdef\csname @coadvisor\alph{ei@coadvisorcount}last\endcsname{#2}
222 + \expandafter\gdef\csname @coadvisor\alph{ei@coadvisorcount}first\endcsname{#3}
223 + \expandafter\gdef\csname @coadvisor\alph{ei@coadvisorcount}\endcsname{#1~#3 #2}
224 + }
225 +
226 + \newcounter{ei@collaboratorcount}
227 + \DeclareRobustCommand{\collaborator}[3][]{
228 + \addtocounter{ei@collaboratorcount}{1}
229 + \expandafter\gdef\csname @collaborator\alph{ei@collaboratorcount}last\endcsname{#2}
230 + \expandafter\gdef\csname @collaborator\alph{ei@collaboratorcount}first\endcsname{#3}
231 + \expandafter\gdef\csname @collaborator\alph{ei@collaboratorcount}\endcsname{#1~#3 #2}
232 + }
233 +
234 +
235 + %==============================================================================
236 + % Definição das palavras-chave (máx. 10)
237 + %==============================================================================
238 + \newcounter{kwcounter}
239 + \newcommand{\keyword}[1]{
240 + \addtocounter{kwcounter}{1}
241 + \expandafter\gdef\csname keyw\alph{kwcounter}\endcsname{#1}
242 + }
243 +
244 + \newcommand{\@cipkw}{%
245 + \@ifundefined{keywa}{}{1.~\expandafter\MakeUppercase\keywa\@. }%
246 + \@ifundefined{keywb}{}{2.~\expandafter\MakeUppercase\keywb\@. }%
247 + \@ifundefined{keywc}{}{3.~\expandafter\MakeUppercase\keywc\@. }%
248 + \@ifundefined{keywd}{}{4.~\expandafter\MakeUppercase\keywd\@. }%
249 + \@ifundefined{keywe}{}{5.~\expandafter\MakeUppercase\keywe\@. }%
250 + \@ifundefined{keywf}{}{6.~\expandafter\MakeUppercase\keywf\@. }%
251 + \@ifundefined{keywg}{}{7.~\expandafter\MakeUppercase\keywg\@. }%
252 + \@ifundefined{keywh}{}{8.~\expandafter\MakeUppercase\keywh\@. }%
253 + \@ifundefined{keywi}{}{9.~\expandafter\MakeUppercase\keywi\@. }%
254 + \@ifundefined{keywj}{}{10.~\expandafter\MakeUppercase\keywj\@. }%
255 + }
256 +
257 + \newcommand{\@abstractkw}{%
258 + \@ifundefined{keywa}{}{\expandafter\MakeUppercase\keywa}%
259 + \@ifundefined{keywb}{}{, \keywb}%
260 + \@ifundefined{keywc}{}{, \keywc}%
261 + \@ifundefined{keywd}{}{, \keywd}%
262 + \@ifundefined{keywe}{}{, \keywe}%
263 + \@ifundefined{keywf}{}{, \keywf}%
264 + \@ifundefined{keywg}{}{, \keywg}%
265 + \@ifundefined{keywh}{}{, \keywh}%
266 + \@ifundefined{keywi}{}{, \keywi}%
267 + \@ifundefined{keywj}{}{, \keywj}%
268 + }
269 +
270 + %==============================================================================
271 + % Redefinição da data (para ter mês e ano separados)
272 + %==============================================================================
273 + \renewcommand{\date}[2]{
274 + \gdef\@publmonth{#1}
275 + \gdef\@publyear{#2}
276 + }
277 + \date{\monthname}{\number\year}
278 +
279 + %==============================================================================
280 + % Definição padrão da folha de rosto.
281 + % Os dados específicos do tipo de trabalho (dissertação, tese, etc.) são
282 + % informados definindo-se o comando \titlepagespecificinfo. Veja os
283 + % arquivos .def incluídos com a classe.
284 + %==============================================================================
285 +
286 + \newlength{\titlepagewinwidth}\setlength{\titlepagewinwidth}{95mm}
287 + \newlength{\titlepagewinheight}\setlength{\titlepagewinheight}{64mm}
288 + \newlength{\titlepagewinvoffset}\setlength{\titlepagewinvoffset}{112mm}
289 +
290 + \newcommand{\location}[2]{
291 + \gdef\@city{#1}
292 + \gdef\@state{#2}
293 + }
294 +
295 + \location{Pelotas}{RS}
296 +
297 + \renewcommand{\maketitle}{
298 + \@ifundefined{@capa}{%
299 + \begin{titlepage}
300 + \thetitlepage
301 + \end{titlepage}
302 + \clearpage
303 + \setcounter{page}{1}
304 + }{%
305 + \begin{titlepage}
306 + \thecoverpage
307 + \newpage
308 + \thetitlepage
309 + \end{titlepage}
310 + \clearpage
311 + \setcounter{page}{2}
312 + }
313 + }
314 +
315 + \newcommand{\thecoverpage}{%
316 + \noindent%
317 + \parbox[b]{0.1\textwidth}{%
318 + \hspace{-2cm}%
319 + \includegraphics[width=3cm]{if}%
320 + }%
321 + \noindent%
322 + \parbox[b]{0.8\textwidth}{%
323 + \centering%
324 + \vskip 1cm%
325 + \MakeUppercase{\textbf{\@ministerio}}\\%
326 + \MakeUppercase{\textbf{\@secretaria}}\\%
327 + \MakeUppercase{\textbf{\@instituto}}\\%
328 + \MakeUppercase{\textbf{\@campus}}\\%
329 + \MakeUppercase{\textbf{\@thecurso}}\\%
330 + %\@unidade\\%
331 + %\@ifundefined{@nomecurso}{\@programa}{Curso de \@nomecurso}\\%
332 + \vskip 1cm%
333 + %\@documento\\%
334 + %\vskip 1cm%
335 + }%
336 + \parbox[b][][t]{0.1\textwidth}{%
337 + \includegraphics[scale=0.175]{tsi.png}%
338 + }%
339 + \noindent%
340 + \vskip 1cm%
341 + \noindent%
342 + \parbox[b]{\textwidth}{%
343 + \centering%
344 + \vskip .5cm%
345 + \textbf{{\@authora}\\
346 + \@ifundefined{@authorb}{}{\@authorb\\}%
347 + \@ifundefined{@authorc}{}{\@authorc\\}%
348 + \@ifundefined{@authord}{}{\@authord\\}}%
349 + \vskip .5cm%
350 + }%
351 + \vskip 3cm%
352 + \noindent%
353 + \parbox[b]{\textwidth}{%
354 + \centering%
355 + \vskip .5cm%
356 + \textbf{\@title}
357 + \vskip .5cm%
358 + }%
359 + \vskip 3cm%
360 + \noindent%
361 + \parbox[b]{\textwidth}{%
362 + \centering%
363 + \vskip .5cm%
364 + \textbf{\@documento}
365 + \vskip .5cm%
366 + }%
367 + \vfill%
368 + \noindent%
369 + \parbox[b]{\textwidth}{%
370 + \centering%
371 + \vskip .1cm%
372 + \textbf{\@city}\\
373 + \textbf{\ei@date}%
374 + \vskip .1cm%
375 + }%
376 + }
377 +
378 + \newcommand{\thetitlepage}{%
379 + \noindent%
380 + \parbox[b]{\textwidth}{%
381 + \centering%
382 + \@authora\\
383 + \@ifundefined{@authorb}{}{\@authorb\\}%
384 + \@ifundefined{@authorc}{}{\@authorc\\}%
385 + \@ifundefined{@authord}{}{\@authord\\}%
386 + \vskip 5cm%
387 + {\textbf{\@title}}%
388 + }
389 + \vskip 8cm%
390 + %\@ifundefined{titlepagespecificinfo}{}{%
391 + \hspace*{\fill}\makebox[.5\textwidth][l]{%
392 + \parbox[b]{8.5cm}{%
393 + \@descricaodocumento%
394 + \@ifundefined{@advisora}{}{%
395 + \vskip 1cm%
396 + \hspace{-0.25cm}
397 + \begin{tabular}{lp{.3675\textwidth}}
398 + \@ifundefined{@advisora}{}{
399 + \@ifundefined{@advisorb}{\advisorname:}{\advisorname es:} &
400 + \@ifundefined{@advisora}{}{\@advisora\\}
401 + \@ifundefined{@advisorb}{}{\ &}
402 + \@ifundefined{@advisorb}{}{\@advisorb\\}
403 + \@ifundefined{@advisorc}{}{\ &}
404 + \@ifundefined{@advisorc}{}{\@advisorc\\}
405 + \@ifundefined{@advisord}{}{\ &}
406 + \@ifundefined{@advisord}{}{\@advisord\\}}
407 + \@ifundefined{@coadvisora}{}{
408 + \@ifundefined{@coadvisorb}{\coadvisorname:}{\coadvisorname es:} &
409 + \@ifundefined{@coadvisora}{}{\@coadvisora\\}
410 + \@ifundefined{@coadvisorb}{}{\ &}
411 + \@ifundefined{@coadvisorb}{}{\@coadvisorb\\}
412 + \@ifundefined{@coadvisorc}{}{\ &}
413 + \@ifundefined{@coadvisorc}{}{\@coadvisorc\\}
414 + \@ifundefined{@coadvisord}{}{\ &}
415 + \@ifundefined{@coadvisord}{}{\@coadvisord\\}}
416 + \@ifundefined{@collaboratora}{}{
417 + \@ifundefined{@collaboratorb}{\collaboratorname:}{\collaboratorname es:} &
418 + \@ifundefined{@collaboratora}{}{\@collaboratora\\}
419 + \@ifundefined{@collaboratorb}{}{\ &}
420 + \@ifundefined{@collaboratorb}{}{\@collaboratorb\\}
421 + \@ifundefined{@collaboratorc}{}{\ &}
422 + \@ifundefined{@collaboratorc}{}{\@collaboratorc\\}
423 + \@ifundefined{@collaboratord}{}{\ &}
424 + \@ifundefined{@collaboratord}{}{\@collaboratord\\}}
425 + \end{tabular}
426 + }
427 + }
428 + }%
429 + \vfill%
430 + %}%
431 + \vfill%
432 + \centerline{\@city}%
433 + \centerline{\ei@date}%
434 + }
435 +
436 + \newcommand{\folhadeaprovacao}{%
437 + \clearpage%
438 + \noindent%
439 + \parbox[b]{\textwidth}{%
440 + \centering%
441 + \MakeUppercase{\@authora}\\%
442 + \vskip 5cm%
443 + \textbf{\MakeUppercase{\@title}}\\%
444 + \vskip 4cm%
445 + }
446 + \hspace*{\fill}\makebox[.5\textwidth][l]{%
447 + \parbox[b]{8.5cm}{%
448 + \@descricaodocumento%
449 + \@ifundefined{@advisora}{}{%
450 + \vskip 1cm%
451 + \hspace{-0.3cm}
452 + \begin{tabular}{lp{.3675\textwidth}}
453 + \@ifundefined{@advisora}{}{
454 + \@ifundefined{@advisorb}{\advisorname:}{\advisorname es:} &
455 + \@ifundefined{@advisora}{}{\@advisora\\}
456 + \@ifundefined{@advisorb}{}{\ &}
457 + \@ifundefined{@advisorb}{}{\@advisorb\\}
458 + \@ifundefined{@advisorc}{}{\ &}
459 + \@ifundefined{@advisorc}{}{\@advisorc\\}
460 + \@ifundefined{@advisord}{}{\ &}
461 + \@ifundefined{@advisord}{}{\@advisord\\}}
462 + \@ifundefined{@coadvisora}{}{
463 + \@ifundefined{@coadvisorb}{\coadvisorname:}{\coadvisorname es:} &
464 + \@ifundefined{@coadvisora}{}{\@coadvisora\\}
465 + \@ifundefined{@coadvisorb}{}{\ &}
466 + \@ifundefined{@coadvisorb}{}{\@coadvisorb\\}
467 + \@ifundefined{@coadvisorc}{}{\ &}
468 + \@ifundefined{@coadvisorc}{}{\@coadvisorc\\}
469 + \@ifundefined{@coadvisord}{}{\ &}
470 + \@ifundefined{@coadvisord}{}{\@coadvisord\\}}
471 + \@ifundefined{@collaboratora}{}{
472 + \@ifundefined{@collaboratorb}{\collaboratorname:}{\collaboratorname es:} &
473 + \@ifundefined{@collaboratora}{}{\@collaboratora\\}
474 + \@ifundefined{@collaboratorb}{}{\ &}
475 + \@ifundefined{@collaboratorb}{}{\@collaboratorb\\}
476 + \@ifundefined{@collaboratorc}{}{\ &}
477 + \@ifundefined{@collaboratorc}{}{\@collaboratorc\\}
478 + \@ifundefined{@collaboratord}{}{\ &}
479 + \@ifundefined{@collaboratord}{}{\@collaboratord\\}}
480 + \end{tabular}
481 + }
482 + }
483 + }
484 + \vskip 1cm%
485 + \hspace{-0.75cm}
486 + \parbox[b]{\textwidth}{%
487 + \centering
488 + Aprovado pela banca examinadora em: \uline{\hspace{0.75cm}}/\uline{\hspace{0.75cm}}/\uline{\hspace{1.5cm}}
489 + }
490 + \vfill%
491 + \hspace{-0.75cm}
492 + \parbox[b]{\textwidth}{%
493 + \centering%
494 + ~\uline{\hspace{0.75\textwidth}}~\\%
495 + \@advisora~-~\@instituicaoadvisor\\%
496 + \@ifundefined{orientadora}{Prof.\textordmasculine}{Prof.\textordfeminine}~\advisorname%
497 + \@ifundefined{@membroi}{}{
498 + \vskip 0.5cm%
499 + ~\uline{\hspace{0.75\textwidth}}~\\%
500 + \@membroi~-~\@instituicaomembroi\\%
501 + Membro titular\\%
502 + }
503 + \@ifundefined{@membroii}{}{
504 + \vskip 0.5cm%
505 + ~\uline{\hspace{0.75\textwidth}}~\\%
506 + \@membroii~-~\@instituicaomembroii\\%
507 + Membro titular\\%
508 + }
509 + \@ifundefined{@membroiii}{}{
510 + \vskip 0.5cm%
511 + ~\uline{\hspace{0.75\textwidth}}~\\%
512 + \@membroiii~-~\@instituicaomembroiii\\%
513 + Membro titular\\%
514 + }
515 + }
516 + }
517 +
518 + %==============================================================================
519 + % Ajuste do sumário (nada indentado)
520 + %==============================================================================
521 +
522 + % Nível do sumário
523 + \setcounter{tocdepth}{4}
524 +
525 + \newlength{\ei@chapnumindent}\setlength{\ei@chapnumindent}{1em}
526 +
527 + \renewcommand*{\l@chapter}[2]{
528 + \addpenalty{-\@highpenalty}
529 + \vskip -1ex \@plus\p@
530 + \setlength\@tempdima{1.5em}
531 + \begingroup
532 + \parindent \z@ \rightskip \@pnumwidth
533 + \parfillskip -\@pnumwidth
534 + \leavevmode\bfseries\sffamily
535 + \advance\leftskip\@tempdima
536 + \hskip -\leftskip
537 + \@dottedtocline{0}{0em}{\ei@chapnumindent}{\MakeUppercase{#1}}{#2}
538 + \penalty\@highpenalty
539 + \endgroup
540 + }
541 + \renewcommand*{\l@section}[2]
542 + {\@dottedtocline{1}{0em}{1.8em}{\MakeUppercase{#1}}{\hss #2}}
543 +
544 + \renewcommand*{\l@subsection}[2]{\@dottedtocline{2}{0em}{2.5em}{\textbf{#1}}{#2}}
545 +
546 + \renewcommand*{\l@subsubsection}[2]{\@dottedtocline{3}{0em}{3.5em}{\textit{#1}}{#2}}
547 +
548 + \renewcommand*{\l@paragraph}[2]{\@dottedtocline{4}{0em}{4.25em}{\uline{#1}}{#2}}
549 +
550 + \newif\if@aftertoc
551 + \@aftertocfalse
552 + \renewcommand{\tableofcontents}{%
553 + \chapter*{\contentsname}
554 + \@starttoc{toc}\@aftertoctrue%
555 + }
556 +
557 + %
558 + % Anexos e apêndices
559 + %
560 +
561 + % Seção anexo
562 + \newcounter{annex}% add counter
563 + \renewcommand\theannex{\annexname~\@Alph\c@annex \space --}
564 +
565 + \newcommand*\l@annex[2]{
566 + \addpenalty{-\@highpenalty}
567 + \vskip -1ex \@plus\p@
568 + \setlength\@tempdima{1.5em}
569 + \begingroup
570 + \parindent \z@ \rightskip \@pnumwidth
571 + \parfillskip -\@pnumwidth
572 + \leavevmode\bfseries\sffamily
573 + \advance\leftskip\@tempdima
574 + \hskip -\leftskip
575 + \@dottedtocline{0}{0em}{5.75em}{\MakeUppercase{#1}}{#2}
576 + \penalty\@highpenalty
577 + \endgroup
578 + }
579 +
580 + \newcommand\annexmark[1]{} % define header/footer
581 + \newcommand\annex{
582 + \clearpage%
583 + \vspace*{90pt}%
584 + \@startsection{annex}{0}{0pt}{0pt}{42pt}{\centering\reset@font\ei@chapterfont\sffamily\bfseries\MakeUppercase}%
585 + }
586 +
587 + % Seção apêndice
588 + \newcounter{append}% add counter
589 + \renewcommand\theappend{\appendixname~\@Alph\c@append \space --}
590 +
591 + \newcommand*\l@append[2]{
592 + \addpenalty{-\@highpenalty}
593 + \vskip -1ex \@plus\p@
594 + \setlength\@tempdima{1.5em}
595 + \begingroup
596 + \parindent \z@ \rightskip \@pnumwidth
597 + \parfillskip -\@pnumwidth
598 + \leavevmode\bfseries\sffamily
599 + \advance\leftskip\@tempdima
600 + \hskip -\leftskip
601 + \@dottedtocline{0}{0em}{7.25em}{\MakeUppercase{#1}}{#2}
602 + \penalty\@highpenalty
603 + \endgroup
604 + }
605 +
606 + \newcommand\appendmark[1]{} % define header/footer
607 + \newcommand\append{
608 + \clearpage%
609 + \vspace*{90pt}%
610 + \@startsection{append}{0}{0pt}{0pt}{42pt}{\centering\reset@font\ei@chapterfont\sffamily\bfseries\MakeUppercase}%
611 + }
612 +
613 + %==============================================================================
614 + % Definição das listas de abreviaturas e siglas e de símbolos
615 + %==============================================================================
616 + \newenvironment{listofabbrv}[1]{
617 + \chapter*{\listabbrvname}
618 + \begin{list}{\textbf{??}}{%
619 + \settowidth{\labelwidth}{#1}%
620 + \setlength{\labelsep}{1em}%
621 + \setlength{\itemindent}{0mm}%
622 + \setlength{\leftmargin}{\labelwidth}%
623 + \addtolength{\leftmargin}{\labelsep}%
624 + \setlength{\rightmargin}{0mm}%
625 + \setlength{\itemsep}{.1\baselineskip}%
626 + \renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}%
627 + }
628 + }{
629 + \end{list}
630 + }
631 +
632 + \newenvironment{listofsymbols}[1]{
633 + \chapter*{\listsymbolname}
634 + \begin{list}{\textbf{??}}{%
635 + \settowidth{\labelwidth}{#1}%
636 + \setlength{\labelsep}{1em}%
637 + \setlength{\itemindent}{0mm}%
638 + \setlength{\leftmargin}{\labelwidth}%
639 + \addtolength{\leftmargin}{\labelsep}%
640 + \setlength{\rightmargin}{0mm}%
641 + \setlength{\itemsep}{.1\baselineskip}%
642 + \renewcommand{\makelabel}[1]{\makebox[\labelwidth][l]{##1}}%
643 + }
644 + }{
645 + \end{list}
646 + }
647 +
648 + %==============================================================================
649 + % Resumo (abstract) e Abstract (englishabstract)
650 + %==============================================================================
651 + \renewenvironment{abstract}{%
652 + \chapter*{\abstractname}
653 + }{%
654 + \par\vskip 0.5cm%
655 + \noindent\textbf{\keywordsname:} \@abstractkw.
656 + }
657 +
658 + \newenvironment{englishabstract}[1]{%
659 + \if@openright\cleardoublepage\else\clearpage\fi%
660 + \gdef\@englishkeywords{#1}%
661 + \iflanguage{english}{
662 + \begin{otherlanguage}{brazilian}
663 + }{
664 + \begin{otherlanguage}{english}
665 + }
666 + \chapter*{\abstractname}
667 + }{
668 + \par\vskip 0.5cm%
669 + \noindent\textbf{\keywordsname:} \@englishkeywords.
670 + \end{otherlanguage}
671 + }
672 +
673 + %==============================================================================
674 + % Formatação dos capítulos.
675 + % Os comandos \@chapter e \@schapter são redefinidos para que a
676 + % numeração de páginas seja correta (deve aparecer somente a partir do
677 + % primeiro capítulo do texto, mas não nas páginas iniciais de
678 + % capítulos).
679 + % Os comandos \@makechapterhead e \@makeschapterhead fazem a
680 + % formatação dos títulos propriamente ditos.
681 + %==============================================================================
682 + \newcommand{\ei@chapterfont}{\@setfontsize\Large{16}{20}}
683 + \def\@chapapp{}
684 +
685 + \def\@chapter[#1]#2{%
686 + \onehalfspacing
687 + \refstepcounter{chapter}%
688 + \addcontentsline{toc}{chapter}{\protect\numberline{\@chapapp\thechapter}#1}%
689 + \addtocontents{lof}{\protect\addvspace{10\p@}}%
690 + \addtocontents{lot}{\protect\addvspace{10\p@}}%
691 + \pagestyle{texufpel}\let\ps@plain\ps@texufpel%
692 + \@makechapterhead{#2}\@afterheading%
693 + }
694 +
695 + \def\@makechapterhead#1{%
696 + \vspace*{90pt}%
697 + \reset@font\noindent{\ei@chapterfont\sffamily\textbf{\@chapapp\thechapter\hspace{1em}\MakeUppercase{#1}}\par}%
698 + \addvspace{42pt}%
699 + \thispagestyle{empty}%
700 + }
701 +
702 + \def\@schapter#1{%
703 + \if@aftertoc\addcontentsline{toc}{chapter}{#1}\fi%
704 + \addtocontents{lof}{\protect\addvspace{10\p@}}%
705 + \addtocontents{lot}{\protect\addvspace{10\p@}}%
706 + \@makeschapterhead{#1}\@afterheading%
707 + }
708 +
709 + \def\@makeschapterhead#1{%
710 + \vspace*{90pt}%
711 + \reset@font\centerline{\ei@chapterfont\sffamily\textbf{\MakeUppercase{#1}}}%
712 + \addvspace{42pt}%
713 + }
714 +
715 + %==============================================================================
716 + % Formatação das seções
717 + %==============================================================================
718 + \setcounter{secnumdepth}{4}
719 +
720 + \renewcommand{\section}{%
721 + \@startsection{section}{1}{0pt}{18pt}{9pt}{\reset@font\large\MakeUppercase}
722 + }
723 +
724 + \renewcommand{\subsection}{%
725 + \@startsection{subsection}{2}{0pt}{12pt}{6pt}{\reset@font\bfseries}
726 + }
727 +
728 + \renewcommand{\subsubsection}{%
729 + \@startsection{subsubsection}{3}{0pt}{12pt}{6pt}{\reset@font\itshape}
730 + }
731 +
732 + \renewcommand{\paragraph}{%
733 + \@startsection{paragraph}{4}{0pt}{12pt}{6pt}{\reset@font\uline}
734 + }
735 +
736 + \renewcommand{\subparagraph}{%
737 + \@startsection{subparagraph}{5}{0pt}{1ex}{-1em}{\reset@font\bfseries}
738 + }
739 +
740 + %==============================================================================
741 + % Formatação das legendas
742 + %==============================================================================
743 + \renewcommand{\thefigure}{\@arabic\c@figure}
744 + \renewcommand{\thetable}{\@arabic\c@table}
745 +
746 + \counterwithout{figure}{chapter}
747 + \counterwithout{equation}{chapter}
748 + \counterwithout{table}{chapter}
749 +
750 + %==============================================================================
751 + % Redefinição do conteúdo das listas de figuras e tabelas
752 + %==============================================================================
753 + \newif\if@captionlisting\@captionlistingtrue
754 + \long\def\@caption#1[#2]#3{%
755 + \par
756 + \if@captionlisting%
757 + \addcontentsline{\csname ext@#1\endcsname}{#1}%
758 + {\protect\numberline{\csname fnum@#1\endcsname}{\ignorespaces #2}}%
759 + \fi%
760 + \begingroup
761 + \@parboxrestore
762 + \if@minipage
763 + \@setminipage
764 + \fi
765 + \normalsize
766 + \@makecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\par
767 + \endgroup%
768 + }
769 +
770 + \renewcommand*{\l@figure}{\@dottedtocline{1}{0em}{5.5em}}
771 + \let\l@table\l@figure
772 +
773 + %==============================================================================
774 + % Redefinição do formato de citações longas
775 + %==============================================================================
776 + \renewenvironment{quote}{%
777 + \small%
778 + \begin{list}{}{\setlength{\leftmargin}{40mm}\item\relax}
779 + }{%
780 + \end{list}
781 + }
782 +
783 + %==============================================================================
784 + % Ajuste do formato das citações e referências
785 + %==============================================================================
786 + \setlength{\bibhang}{0pt}
787 + \let\cite\citep
788 +
789 + %
790 + % Definições de seções restantes.
791 + %
792 +
793 + % Ficha catalográfica: Uma página temporária, somente indicando que é necessário ter a ficha catalográfica
794 +
795 + \newcommand{\fichacatalografica}{%
796 + \clearpage%
797 + \mbox{}%
798 + \vfill
799 + \begin{center}
800 + \textbf{Insira AQUI a ficha catalogr\'afica\\(solicitada na p\'agina da biblioteca)}
801 + \end{center}
802 + \vfill%
803 + }
804 +
805 + % Seção de agradecimentos
806 +
807 + \newenvironment{agradecimentos}{%
808 + \chapter*{Agradecimentos}%
809 + }{%
810 + }
811 +
812 + % Seção de dedicatória
813 +
814 + \newenvironment{dedicatoria}{%
815 + \clearpage%
816 + \mbox{}\vfill\begin{flushright}%
817 + }{%
818 + \end{flushright}%
819 + }
820 +
821 + % Seção de epígrafe
822 +
823 + \newenvironment{epigrafe}{%
824 + \clearpage%
825 + \mbox{}\vfill\begin{flushright}%
826 + }{%
827 + \end{flushright}%
828 + }
829 +