eletrotupi / tcc/ commit / ed72613

all: add monografia base

Pedro Lucas Porcellis porcellis@eletrotupi.com · 5 months ago ed726136fa378111ee66403cff68c2c912ac700e Browse files
Parents c6d61c3
Changed files
9
Additions
+2431
Deletions
0
/dev/null → monografia/Makefile
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 +

/dev/null → monografia/abnt.bst
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 +

/dev/null → monografia/images/if.pdf
Binary file
/dev/null → monografia/images/tsi.png
Binary file
/dev/null → monografia/images/xitsu.png
Binary file
/dev/null → monografia/monografia.bib
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 +
}
/dev/null → monografia/monografia.pdf
Binary file
/dev/null → monografia/monografia.tex
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}
/dev/null → monografia/textsi.cls
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 +