Skip to content

emersonmello/slides-aulas-latex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Como organizar slides de aulas com LaTeX e git

Neste repositório apresento uma forma de organizar slides de aulas com LaTeX e git. A ideia é que cada aula tenha seu próprio diretório, facilitando a organização e o versionamento do código fonte dos slides.

Estrutura de diretórios

Abaixo é apresentada a estrutura proposta. No exemplo, tem-se duas aulas, cada qual em seu próprio diretório.

.
├── 0-ifscyan
│   ├── beamerthemeifscyan.sty
│   └── figs
│       └── ifsclogo.pdf
├── aula-01
│   ├── .latexmkrc
│   ├── aula-01.tex
│   └── figs
│       └── git-branch.png
└── aula-02
    ├── .latexmkrc
    └── aula-02.tex

O diretório 0-ifscyan contém o tema Beamer personalizado beamerthemeifscyan.sty e a imagem do logo do IFSC. Os diretórios aula-01 e aula-02 contêm os arquivos .tex de cada aula, além de um subdiretório figs para armazenar as imagens utilizadas em cada aula.

O arquivo .latexmkrc é utilizado para configurar o latexmk, uma ferramenta que automatiza a compilação de documentos LaTeX, permitindo compilar os arquivos .tex e gerar os PDFs correspondentes.

Neste exemplo, o arquivo .latexmkrc dentro de cada diretório de aula contém apenas a definição da variável TEXINPUTS, que indica onde estão os arquivos de entrada do LaTeX, ou seja, para onde procurar os arquivos .sty e outros arquivos de estilo do Beamer usados nos slides.

Você pode compilar cada aula separadamente com o comando latexmk:

cd aula-01
latexmk -outdir=outlatexdir -pdf aula-01.tex

O Overleaf também possui suporte ao latexmk, então você pode carregar essa estrutura de diretórios no Overleaf e compilar os slides diretamente lá.

Outra opção é usar o Visual Studio Code com a extensão LaTeX Workshop para compilar os slides localmente em seu computador. É necessário ter o LaTeX instalado, como o TeX Live ou o MiKTeX.

Captura de telas

Abaixo um exemplo de slides gerado com o modelo presente nesse repositório.

padrao azul

Configurações do Visual Studio Code

O Visual Studio Code possui a extensão LaTeX Workshop que o torna uma IDE LaTeX. Abaixo deixo algumas configurações pessoais que criei para facilitar a edição de slides LaTeX/Beamer com o Visual Studio Code.

Da forma que fiz, ao salvar um documento, o VSCode irá automaticamente compilar e gerar o PDF. A visualização do PDF ficará no painel lateral (precisará clicar no ícone na parte superior da direita).

Ajustes de configuração

Abra o Visual Studio Code, vá em Preferences -> Settings. Mude para o modo que visualiza o conteúdo do arquivo settings.json (basta clicar em ícone que fica na parte superior do lado direito). Por fim, adicione o seguinte trecho dentro do bloco já existente.

{
  "latex-workshop.bibtex-fields.sort.enabled": true,
  "latex-workshop.bibtex-format.sort.enabled": true,
  "latex-workshop.latex.clean.subfolder.enabled": true,
  "latex-workshop.latex.outDir": "%DIR%/outlatexdir",
  "latex-workshop.view.pdf.viewer": "tab",
  "latex-workshop.view.pdf.zoom": "page-width",
  "latex-workshop.synctex.afterBuild.enabled": true,
  "files.exclude": {
    "**/.classpath": true,
    "**/.project": true,
    "**/.settings": true,
    "**/.factorypath": true,
    "**/*.class": true,
    "**/*.bbl": true,
    "**/*.bcf": true,
    "**/*.nav": true,
    "**/*.snm": true,
    "**/*.aux": true,
    "**/*.fls": true,
    "**/*.blg": true,
    "**/*.idx": true,
    "**/*.ind": true,
    "**/*.lof": true,
    "**/*.lot": true,
    "**/*.lol": true,
    "**/*.out": true,
    "**/*.acn": true,
    "**/*.acr": true,
    "**/*.alg": true,
    "**/*.glg": true,
    "**/*.glo": true,
    "**/*.gls*": true,
    "**/*.ist": true,
    "**/*.log": true,
    "**/*.fdb_latexmk": true,
    "**/*.synctex*": true,
    "**/*.run.xml": true,
    "**/*.toc": true,
    "**/*.vrb": true
  },
  "latex-workshop.intellisense.citation.backend": "biblatex",
  "latex-workshop.latex.autoClean.run": "onFailed",
  "latex-workshop.latex.clean.fileTypes": [
    "%DOCFILE%.aux",
    "%DOCFILE%.bbl",
    "%DOCFILE%.blg",
    "%DOCFILE%.idx",
    "%DOCFILE%.ind",
    "%DOCFILE%.lof",
    "%DOCFILE%.lot",
    "%DOCFILE%.out",
    "%DOCFILE%.toc",
    "%DOCFILE%.acn",
    "%DOCFILE%.acr",
    "%DOCFILE%.alg",
    "%DOCFILE%.glg",
    "%DOCFILE%.glo",
    "%DOCFILE%.gls",
    "%DOCFILE%.fls",
    "%DOCFILE%.log",
    "%DOCFILE%.fdb_latexmk",
    "%DOCFILE%.snm",
    "%DOCFILE%.synctex(busy)",
    "%DOCFILE%.synctex.gz(busy)",
    "%DOCFILE%.nav",
    "%DOCFILE%.vrb",
    "%DOCFILE%.glstex",
    "%DOCFILE%.bcf",
    "%DOCFILE%.run.xml"
  ],
  }

As configurações acima fazem com que o Visual Studio Code:

  • Use o latexmk para compilar os arquivos .tex e gerar os PDFs.
  • Exclua automaticamente os arquivos temporários gerados pelo LaTeX, como .aux, .log, .toc, etc.
  • Exiba o PDF gerado no painel lateral do Visual Studio Code.
  • Use o zoom de largura de página para a visualização do PDF.
  • Habilite a sincronização entre o código fonte e o PDF gerado, permitindo que você clique no PDF e seja levado ao local correspondente no código fonte.
  • Use o biblatex como backend para a formatação de citações e referências bibliográficas.
  • Use o diretório outlatexdir para armazenar os arquivos de saída gerados pelo LaTeX, mantendo a organização dos arquivos.

Teclas de atalho

As teclas de atalho são uma forma prática de acelerar o processo de escrita e formatação do texto. No Visual Studio Code, você pode criar suas próprias teclas de atalho para comandos específicos. Abaixo estão algumas teclas de atalho que criei para facilitar a formatação de texto em LaTeX: negrito, itálico e typewriter.

[
{
    "key": "crtl+b",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus && editorLangId == latex",
    "args": {
        "snippet": "\\textbf{${TM_SELECTED_TEXT}}$0"
    }
},
{
    "key": "crtl+i",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus && editorLangId == latex",  // chained clause
    "args": {
        "snippet": "\\textit{${TM_SELECTED_TEXT}}$0"
    }
},
{
    "key": "crtl+t",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus && editorLangId == latex",  // chained clause
    "args": {
        "snippet": "\\texttt{${TM_SELECTED_TEXT}}$0"
    }
}
]

User Snippets

No Visual Studio Code, você pode criar snippets (atalhos) para facilitar a escrita de código. Esses snippets são atalhos que geram blocos de código pré-definidos quando você digita um prefixo e pressiona ENTER.

Abra o Visual Studio Code, vá em Preferences -> User snippets e edite o arquivo latex.json. Coloque o seguinte conteúdo dentro:

{
"Beamer frame":{
		"prefix": "frame",
		"body": ["\\begin{frame}{$1}\n\\begin{itemize}\n\t\\item $0\n\\end{itemize}\n\\end{frame}"],
		"description": "LaTeX Beamer frame env"
	},
	"LaTeX itemize env":{
		"prefix": "itemize",
		"body": ["\\begin{itemize}\n\t\\item $0\n\\end{itemize}"],
		"description": "itemize env"
	},
	"Beamer block":{
		"prefix": "block",
		"body": ["\\begin{block}{$1}\n\t $0\n\\end{block}"],
		"description": "LaTeX Beamer block"
	},
	"LaTeX column env":{
		"prefix": "columns",
		"body": ["\\begin{columns}\n\t\\column{.5\\linewidth}\n\t $0\n\t\\column{.5\\linewidth}\n\t \n\\end{columns} "],
		"description": "columns env"
    },
    "LaTeX figure env":{
		"prefix": "figure",
		"body": ["\\begin{figure}[ht]\n\t\\centering\n\t\\caption{$2}\n\t\\label{fig:$0}\n\t\\includegraphics[width=\\linewidth]{$1}\n\\end{figure}"],
		"description": "LaTeX figure env"
    },
    "LaTeX includegraphics beamer":{
		"prefix": "includegraphics",
		"body": ["\\begin{center}\n\t\\includegraphics[width=\\linewidth]{figs/$0}\n\\end{center}"],
		"description": "LaTeX includegraphics"
    },
    "LaTeX beamer only":{
		"prefix": "only",
		"body": ["\\only<${1|1,2,3,4,5,6|}>{\n\t$0\n}"],
		"description": "LaTeX beamer only"
    },
    "Beamer only env":{
		"prefix": "onlyenv",
		"body": ["\\begin{onlyenv}<${1|1,2,3,4,5,6|}>\n\t $0\n\\end{onlyenv}"],
		"description": "LaTeX Beamer Only env"
    },
    "Lstlisting":{
		"prefix": "lstlisting",
		"body": ["\\begin{lstlisting}[style=$1]\n$0\n\\end{lstlisting}"],
		"description": "Lstlisting env"
    },
	"lstinput":{
		"prefix" : "lstinput",
		"body": "\\lstinputlisting[style=$1,caption=$2,label={$3}]{$0}",
		"description": "Listing input"
	}
}

About

Um exemplo de organização de aulas com slides em LaTeX Beamer em diretórios

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published