Compare commits
36 commits
Author | SHA1 | Date | |
---|---|---|---|
e3959adc80 | |||
85c9bf3443 | |||
52bc1d6e36 | |||
b76cba89ec | |||
8b80c13436 | |||
40fc6bb998 | |||
c59e07de17 | |||
095deb0a3b | |||
449a5a3f93 | |||
4cc8f21738 | |||
465f2d7685 | |||
29e35b91a4 | |||
2c89c943c4 | |||
c2e343d54e | |||
d7802681e1 | |||
628397e87e | |||
79dac60a83 | |||
fec0a00b98 | |||
d011381222 | |||
91256c5c16 | |||
84fe2cc463 | |||
184beafd09 | |||
0806530e92 | |||
aaba9ae07c | |||
758fa4c90e | |||
83d632886c | |||
f1f4c2aa85 | |||
a6a87e467f | |||
de87f85c45 | |||
e213dad6b3 | |||
f84cbb80dd | |||
4d65d8efd4 | |||
5c59396e5d | |||
8acc6e91d1 | |||
1e1166404b | |||
f2aabbf7c5 |
20 changed files with 470 additions and 77 deletions
7
Makefile
Normal file
7
Makefile
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
VC = git
|
||||||
|
|
||||||
|
all:
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@$(VC) clean -Xdf
|
67
README.md
67
README.md
|
@ -3,10 +3,12 @@
|
||||||
- [C](#c)
|
- [C](#c)
|
||||||
- [C++](#c-1)
|
- [C++](#c-1)
|
||||||
- [LaTeX](#latex)
|
- [LaTeX](#latex)
|
||||||
|
- [Book](#book)
|
||||||
- [Document](#document)
|
- [Document](#document)
|
||||||
|
- [Examen](#examen)
|
||||||
- [Presentation](#presentation)
|
- [Presentation](#presentation)
|
||||||
- [Python](#python)
|
|
||||||
- [OCaml](#ocaml)
|
- [OCaml](#ocaml)
|
||||||
|
- [Python](#python)
|
||||||
- [Rust](#rust)
|
- [Rust](#rust)
|
||||||
- [Typescript](#typescript)
|
- [Typescript](#typescript)
|
||||||
|
|
||||||
|
@ -16,8 +18,8 @@ Copy and paste [`c/`](./c/) directory, and you should be good to go!
|
||||||
|
|
||||||
- Remember to change executable's name and change std's target in
|
- Remember to change executable's name and change std's target in
|
||||||
the [`Makefile`](./c/Makefile).
|
the [`Makefile`](./c/Makefile).
|
||||||
- **Run `make` to compile the program.**
|
- **Run `make` to compile the program in release mode.**
|
||||||
- **Run `make dev` to compile the program in debug mode.**
|
- **Run `make debug` to compile the program in debug mode.**
|
||||||
- **Run `make clean` to clean artifacts.**
|
- **Run `make clean` to clean artifacts.**
|
||||||
|
|
||||||
## C++
|
## C++
|
||||||
|
@ -26,14 +28,28 @@ Copy and paste [`cpp/`](./cpp/) directory, and you should be good to go!
|
||||||
|
|
||||||
- Remember to change executable's name and change std's target in
|
- Remember to change executable's name and change std's target in
|
||||||
the [`Makefile`](./cpp/Makefile).
|
the [`Makefile`](./cpp/Makefile).
|
||||||
- **Run `make` to compile the program.**
|
- **Run `make` to compile the program in release mode.**
|
||||||
- **Run `make dev` to compile the program in debug mode.**
|
- **Run `make debug` to compile the program in debug mode.**
|
||||||
- **Run `make clean` to clean artifacts.**
|
- **Run `make clean` to clean artifacts.**
|
||||||
|
|
||||||
## LaTeX
|
## LaTeX
|
||||||
|
|
||||||
|
### Book
|
||||||
|
|
||||||
|
This is for complex document.
|
||||||
|
|
||||||
|
Copy and paste [`latex/book`](./latex/book/) directory,
|
||||||
|
and you should be good to go!
|
||||||
|
|
||||||
|
- **Run `make` to compile the document.**
|
||||||
|
- **Run `make clean` to clean artifacts.**
|
||||||
|
|
||||||
|
> It is by default configured to output `book.pdf`.
|
||||||
|
|
||||||
### Document
|
### Document
|
||||||
|
|
||||||
|
This is for simple document.
|
||||||
|
|
||||||
Copy and paste [`latex/document`](./latex/document/) directory,
|
Copy and paste [`latex/document`](./latex/document/) directory,
|
||||||
and you should be good to go!
|
and you should be good to go!
|
||||||
|
|
||||||
|
@ -42,30 +58,33 @@ and you should be good to go!
|
||||||
|
|
||||||
> It is by default configured to output `document.pdf`.
|
> It is by default configured to output `document.pdf`.
|
||||||
|
|
||||||
|
### Examen
|
||||||
|
|
||||||
|
This is for simple test.
|
||||||
|
|
||||||
|
Copy and paste [`latex/exam`](./latex/exam/) directory,
|
||||||
|
and you should be good to go!
|
||||||
|
|
||||||
|
- **Run `make` to compile the document.**
|
||||||
|
- **Run `make clean` to clean artifacts.**
|
||||||
|
|
||||||
|
> It is by default configured to output `test.pdf`.
|
||||||
|
|
||||||
### Presentation
|
### Presentation
|
||||||
|
|
||||||
|
This is for presentations.
|
||||||
|
|
||||||
Copy and paste [`latex/presentation`](./latex/presentation/) directory,
|
Copy and paste [`latex/presentation`](./latex/presentation/) directory,
|
||||||
and you should be good to go!
|
and you should be good to go!
|
||||||
|
|
||||||
- **Run `make updatepackage` to download/update dependencie (projektor).**
|
- **Run `make updatepackage` to download/update dependencie**
|
||||||
|
**([projektor](https://git.mylloon.fr/Anri/projektor)).**
|
||||||
- **Run `make` to compile the document.**
|
- **Run `make` to compile the document.**
|
||||||
- **Run `make clean` to clean artifacts.**
|
- **Run `make clean` to clean artifacts.**
|
||||||
|
|
||||||
> It is by default configured to build `slides.tex` and output `slides.pdf`.
|
> It is by default configured to build `slides.tex` and output `slides.pdf`.
|
||||||
> There is a more advanced file with more examples named `slides_advanced.tex`.
|
> There is a more advanced file with more examples named `slides_advanced.tex`.
|
||||||
|
|
||||||
## Python
|
|
||||||
|
|
||||||
Copy and paste [`python/`](./python/) directory, and you should be good to go!
|
|
||||||
|
|
||||||
- **Run `python main.py` to start the program.**
|
|
||||||
|
|
||||||
> It's recommended to use virtual environnement:
|
|
||||||
>
|
|
||||||
> - `virtualenv .` → create the virtual env in the current folder
|
|
||||||
> - `activate` → activate the virtual env
|
|
||||||
> - Now, it won't affect your other projects
|
|
||||||
|
|
||||||
## OCaml
|
## OCaml
|
||||||
|
|
||||||
Copy and paste [`ocaml/`](./ocaml/) directory, and you should be good to go!
|
Copy and paste [`ocaml/`](./ocaml/) directory, and you should be good to go!
|
||||||
|
@ -84,6 +103,18 @@ Copy and paste [`ocaml/`](./ocaml/) directory, and you should be good to go!
|
||||||
> It's recommended to have this one as a "working example", and still create
|
> It's recommended to have this one as a "working example", and still create
|
||||||
> new projects via `dune init proj`.
|
> new projects via `dune init proj`.
|
||||||
|
|
||||||
|
## Python
|
||||||
|
|
||||||
|
Copy and paste [`python/`](./python/) directory, and you should be good to go!
|
||||||
|
|
||||||
|
- **Run `python main.py` to start the program.**
|
||||||
|
|
||||||
|
> It's recommended to use virtual environnement:
|
||||||
|
>
|
||||||
|
> - `virtualenv .` → create the virtual env in the current folder
|
||||||
|
> - `activate` → activate the virtual env
|
||||||
|
> - Now, it won't affect your other projects
|
||||||
|
|
||||||
## Rust
|
## Rust
|
||||||
|
|
||||||
Copy and paste [`rust/`](./rust/) directory, and you should be good to go!
|
Copy and paste [`rust/`](./rust/) directory, and you should be good to go!
|
||||||
|
|
27
c/Makefile
27
c/Makefile
|
@ -2,9 +2,9 @@ CC = gcc
|
||||||
RM = rm
|
RM = rm
|
||||||
|
|
||||||
SOURCES = $(wildcard src/*.c)
|
SOURCES = $(wildcard src/*.c)
|
||||||
OBJETS = $(patsubst %.c,%.o,$(notdir $(SOURCES)))
|
OBJECTS = $(patsubst %.c,%.o,$(notdir $(SOURCES)))
|
||||||
|
|
||||||
CFLAGS = -std=c11 -pedantic
|
CFLAGS = -std=c17 -pedantic
|
||||||
LDFLAGS =
|
LDFLAGS =
|
||||||
|
|
||||||
EXE = example
|
EXE = example
|
||||||
|
@ -13,19 +13,22 @@ EXE_EXT = out
|
||||||
%.o: src/%.c
|
%.o: src/%.c
|
||||||
$(CC) -c $< -o $@ $(CFLAGS)
|
$(CC) -c $< -o $@ $(CFLAGS)
|
||||||
|
|
||||||
compilation: $(OBJETS)
|
release: CFLAGS += -O3
|
||||||
$(CC) -o $(EXE).$(EXE_EXT) $(OBJETS) $(LDFLAGS)
|
release: compilation
|
||||||
|
|
||||||
main: CFLAGS += -O3
|
debug: CFLAGS += -Wall -Wextra -Wshadow -Wcast-align -Wstrict-prototypes
|
||||||
main: compilation
|
debug: CFLAGS += -fanalyzer -fsanitize=undefined -g -Og
|
||||||
|
debug: LDFLAGS += -fsanitize=undefined -fsanitize=leak
|
||||||
|
debug: compilation
|
||||||
|
|
||||||
dev: CFLAGS += -Wall -Wextra -Wshadow -Wcast-align -Wstrict-prototypes
|
compilation: $(OBJECTS)
|
||||||
dev: CFLAGS += -fanalyzer -fsanitize=undefined -g -Og
|
$(CC) -o $(EXE).$(EXE_EXT) $(OBJECTS) $(LDFLAGS)
|
||||||
dev: LDFLAGS += -fsanitize=undefined
|
|
||||||
dev: compilation
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
main
|
release
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(OBJETS) $(EXE).$(EXE_EXT)
|
$(RM) $(OBJECTS)
|
||||||
|
|
||||||
|
full-clean: clean
|
||||||
|
$(RM) $(EXE).$(EXE_EXT)
|
||||||
|
|
25
cpp/Makefile
25
cpp/Makefile
|
@ -2,9 +2,9 @@ CXX = g++
|
||||||
RM = rm
|
RM = rm
|
||||||
|
|
||||||
SOURCES = $(wildcard src/*.cpp)
|
SOURCES = $(wildcard src/*.cpp)
|
||||||
OBJETS = $(patsubst %.cpp,%.o,$(notdir $(SOURCES)))
|
OBJECTS = $(patsubst %.cpp,%.o,$(notdir $(SOURCES)))
|
||||||
|
|
||||||
CXXFLAGS = --std=c++11
|
CXXFLAGS = -std=c++17 -pedantic
|
||||||
|
|
||||||
EXE = example
|
EXE = example
|
||||||
EXE_EXT = out
|
EXE_EXT = out
|
||||||
|
@ -12,18 +12,21 @@ EXE_EXT = out
|
||||||
%.o: src/%.cpp
|
%.o: src/%.cpp
|
||||||
$(CXX) -c -o $@ $< $(CXXFLAGS)
|
$(CXX) -c -o $@ $< $(CXXFLAGS)
|
||||||
|
|
||||||
compilation: $(OBJETS)
|
release: CXXFLAGS += -O3
|
||||||
$(CXX) -o $(EXE).$(EXE_EXT) $(OBJETS)
|
release: compilation
|
||||||
|
|
||||||
main: CXXFLAGS += -O3
|
debug: CXXFLAGS += -Wall -Wextra -Wshadow -Wnon-virtual-dtor -g
|
||||||
main: compilation
|
debug: CXXFLAGS += -Wold-style-cast -Wsign-conversion
|
||||||
|
debug: compilation
|
||||||
|
|
||||||
dev: CXXFLAGS += -Wall -Wextra -Wshadow -Wnon-virtual-dtor -pedantic -g
|
compilation: $(OBJECTS)
|
||||||
dev: CXXFLAGS += -Wold-style-cast -Wsign-conversion
|
$(CXX) -o $(EXE).$(EXE_EXT) $(OBJECTS)
|
||||||
dev: compilation
|
|
||||||
|
|
||||||
all:
|
all:
|
||||||
main
|
release
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(RM) $(OBJETS) $(EXE).$(EXE_EXT)
|
$(RM) $(OBJECTS)
|
||||||
|
|
||||||
|
full-clean: clean
|
||||||
|
$(RM) $(EXE).$(EXE_EXT)
|
||||||
|
|
8
latex/book/.gitignore
vendored
Normal file
8
latex/book/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
*
|
||||||
|
|
||||||
|
!.gitignore
|
||||||
|
!Makefile
|
||||||
|
!*.tex
|
||||||
|
!*.bib
|
||||||
|
|
||||||
|
!sections/
|
22
latex/book/Makefile
Normal file
22
latex/book/Makefile
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
NAME = book
|
||||||
|
|
||||||
|
PDF = $(NAME).pdf
|
||||||
|
|
||||||
|
TEXMK = latexmk -lualatex -shell-escape -interaction=nonstopmode
|
||||||
|
QPDF = qpdf --linearize --replace-input
|
||||||
|
RM = rm -rf
|
||||||
|
|
||||||
|
.PHONY: $(PDF)
|
||||||
|
|
||||||
|
all: $(PDF)
|
||||||
|
|
||||||
|
$(PDF): %.pdf: %.tex
|
||||||
|
$(TEXMK) $<
|
||||||
|
@$(QPDF) $@ 2>/dev/null |:
|
||||||
|
|
||||||
|
EXTS = aux fdb_latexmk fls log nav out snm synctex.gz toc bbl blg sta
|
||||||
|
clean:
|
||||||
|
$(RM) _minted-$(NAME)/ $(foreach ext,$(EXTS),$(NAME).$(ext))
|
||||||
|
|
||||||
|
full-clean: clean
|
||||||
|
$(RM) $(PDF)
|
80
latex/book/book.tex
Normal file
80
latex/book/book.tex
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
\DocumentMetadata{testphase = {phase-II,sec,toc,graphic,minipage,float,text}}
|
||||||
|
\documentclass[a4paper]{article}
|
||||||
|
|
||||||
|
% Files
|
||||||
|
\usepackage[subpreambles=true]{standalone}
|
||||||
|
\usepackage{import}
|
||||||
|
|
||||||
|
% Font
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\renewcommand{\familydefault}{\sfdefault}
|
||||||
|
\usepackage[nopatch=footnote]{microtype}
|
||||||
|
|
||||||
|
% Languages
|
||||||
|
\usepackage[french]{babel}
|
||||||
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\MakeOuterQuote{"}
|
||||||
|
|
||||||
|
% Add \extra info to title
|
||||||
|
\makeatletter
|
||||||
|
\providecommand{\extra}[1]{
|
||||||
|
\apptocmd{\@author}{
|
||||||
|
\end{tabular}
|
||||||
|
\par\vspace*{0.7em}
|
||||||
|
\begin{tabular}[t]{c}
|
||||||
|
#1}{}{}
|
||||||
|
}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
% Change page dimensions
|
||||||
|
%\usepackage[
|
||||||
|
% a4paper,
|
||||||
|
% left=20mm,
|
||||||
|
% top=20mm,
|
||||||
|
%]{geometry}
|
||||||
|
|
||||||
|
% Bibliography
|
||||||
|
\bibliographystyle{unsrt}
|
||||||
|
\nocite{*}
|
||||||
|
|
||||||
|
% Metadatas
|
||||||
|
\def\docTitle{TITLE}
|
||||||
|
\def\docAuthor{YOU}
|
||||||
|
\def\authorMail{mailto:place@holder.com}
|
||||||
|
\def\docSubject{SUBJECT}
|
||||||
|
\def\docLocation{LOCATION}
|
||||||
|
|
||||||
|
% Dependencies
|
||||||
|
\usepackage[
|
||||||
|
pdfauthor={\docAuthor}, % author metadata
|
||||||
|
pdftitle={\docTitle}, % title metadata
|
||||||
|
pdfsubject={\docSubject}, % subject metadata
|
||||||
|
hidelinks, % clickable links in table of contents
|
||||||
|
]{hyperref}
|
||||||
|
|
||||||
|
\title{\docTitle}
|
||||||
|
\author{\docAuthor}
|
||||||
|
\extra{\docSubject~$\cdot$ \docLocation}
|
||||||
|
\date{}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
\maketitle
|
||||||
|
\flushbottom
|
||||||
|
\tableofcontents
|
||||||
|
\clearpage
|
||||||
|
|
||||||
|
\section{First section}
|
||||||
|
\import{sections/}{section1}
|
||||||
|
|
||||||
|
\section{Second section}
|
||||||
|
\import{sections/}{section2}
|
||||||
|
|
||||||
|
\section{Third section}
|
||||||
|
\import{sections/}{section3}
|
||||||
|
|
||||||
|
\clearpage
|
||||||
|
\appendix
|
||||||
|
\bibliography{sources}
|
||||||
|
|
||||||
|
\end{document}
|
11
latex/book/sections/section1.tex
Normal file
11
latex/book/sections/section1.tex
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
\documentclass[class=article]{standalone}
|
||||||
|
|
||||||
|
% Code integration
|
||||||
|
%\usepackage{minted}
|
||||||
|
%\usemintedstyle{emacs}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
Here is the first section.
|
||||||
|
|
||||||
|
\end{document}
|
11
latex/book/sections/section2.tex
Normal file
11
latex/book/sections/section2.tex
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
\documentclass[class=article]{standalone}
|
||||||
|
|
||||||
|
% Code integration
|
||||||
|
%\usepackage{minted}
|
||||||
|
%\usemintedstyle{emacs}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
Here is the second section.
|
||||||
|
|
||||||
|
\end{document}
|
11
latex/book/sections/section3.tex
Normal file
11
latex/book/sections/section3.tex
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
\documentclass[class=article]{standalone}
|
||||||
|
|
||||||
|
% Code integration
|
||||||
|
%\usepackage{minted}
|
||||||
|
%\usemintedstyle{emacs}
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
|
||||||
|
Here is the third section.
|
||||||
|
|
||||||
|
\end{document}
|
4
latex/book/sources.bib
Normal file
4
latex/book/sources.bib
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
@misc{example,
|
||||||
|
author = {John Doe},
|
||||||
|
howpublished = {\url{https://example.com}}
|
||||||
|
}
|
|
@ -1,16 +1,20 @@
|
||||||
NAME = document
|
NAME = document
|
||||||
|
|
||||||
TEX = $(NAME).tex
|
PDF = $(NAME).pdf
|
||||||
SRC = $(TEX)
|
|
||||||
PDF = $(TEX:.tex=.pdf)
|
|
||||||
|
|
||||||
TEXMK = latexmk -lualatex -shell-escape -interaction=nonstopmode
|
TEXMK = latexmk -lualatex -shell-escape -interaction=nonstopmode
|
||||||
|
QPDF = qpdf --linearize --replace-input
|
||||||
|
RM = rm -rf
|
||||||
|
|
||||||
all: $(PDF)
|
all: $(PDF)
|
||||||
|
|
||||||
$(PDF): %.pdf: %.tex
|
$(PDF): %.pdf: %.tex
|
||||||
$(TEXMK) $<
|
$(TEXMK) $<
|
||||||
|
@$(QPDF) $@ 2>/dev/null |:
|
||||||
|
|
||||||
EXTS = aux fdb_latexmk fls log nav out snm synctex.gz toc
|
EXTS = aux fdb_latexmk fls log nav out snm synctex.gz toc
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(PDF) _minted-$(NAME)/ $(foreach ext,$(EXTS),$(NAME).$(ext))
|
$(RM) _minted-$(NAME)/ $(foreach ext,$(EXTS),$(NAME).$(ext))
|
||||||
|
|
||||||
|
full-clean: clean
|
||||||
|
$(RM) $(PDF)
|
||||||
|
|
|
@ -1,36 +1,57 @@
|
||||||
\DocumentMetadata{testphase = {phase-III,math}}
|
\DocumentMetadata{testphase = {phase-III,math,firstaid}}
|
||||||
\documentclass{article}
|
\documentclass[a4paper]{article}
|
||||||
|
|
||||||
\usepackage[T1]{fontenc} % encoding
|
% Font
|
||||||
\renewcommand{\familydefault}{\sfdefault} % sans-serif font
|
\usepackage[T1]{fontenc}
|
||||||
|
\renewcommand{\familydefault}{\sfdefault}
|
||||||
|
\usepackage[nopatch=footnote]{microtype}
|
||||||
|
|
||||||
\usepackage[french]{babel} % langages
|
% Code integration
|
||||||
|
%\usepackage{minted}
|
||||||
|
%\setminted{autogobble,breaklines}
|
||||||
|
%\usemintedstyle{emacs}
|
||||||
|
|
||||||
|
% Languages
|
||||||
|
\usepackage[french]{babel}
|
||||||
\frenchsetup{SmallCapsFigTabCaptions=false}
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\MakeOuterQuote{"}
|
||||||
|
|
||||||
% \usepackage[ % change page dimensions
|
% Add \extra info to title
|
||||||
|
\makeatletter
|
||||||
|
\providecommand{\extra}[1]{
|
||||||
|
\apptocmd{\@author}{
|
||||||
|
\end{tabular}
|
||||||
|
\par\vspace*{0.7em}
|
||||||
|
\begin{tabular}[t]{c}
|
||||||
|
#1}{}{}
|
||||||
|
}
|
||||||
|
\makeatother
|
||||||
|
|
||||||
|
% Change page dimensions
|
||||||
|
%\usepackage[
|
||||||
% a4paper,
|
% a4paper,
|
||||||
% left=20mm,
|
% left=20mm,
|
||||||
% top=20mm,
|
% top=20mm,
|
||||||
%]{geometry}
|
%]{geometry}
|
||||||
|
|
||||||
% \usepackage{minted} % code integration
|
% Metadatas
|
||||||
% \usemintedstyle{emacs}
|
\def\docTitle{TITLE}
|
||||||
|
\def\docAuthor{YOU}
|
||||||
\newcommand{\settitle}{TITLE}
|
\def\authorMail{mailto:place@holder.com}
|
||||||
\newcommand{\setauthor}{YOU}
|
\def\docSubject{SUBJECT}
|
||||||
\newcommand{\setsubject}{SUBJECT}
|
\def\docLocation{LOCATION}
|
||||||
\newcommand{\setlocation}{LOCATION}
|
|
||||||
\newcommand{\setmail}{mailto:place@holder.com}
|
|
||||||
|
|
||||||
\usepackage[
|
\usepackage[
|
||||||
pdfauthor={\setauthor}, % author metadata
|
pdfauthor={\docAuthor}, % author metadata
|
||||||
pdftitle={\settitle}, % title metadata
|
pdftitle={\docTitle}, % title metadata
|
||||||
pdfsubject={\setsubject}, % subject metadata
|
pdfsubject={\docSubject}, % subject metadata
|
||||||
hidelinks, % clickable links in table of contents
|
hidelinks, % clickable links in table of contents
|
||||||
]{hyperref}
|
]{hyperref}
|
||||||
|
|
||||||
\title{\settitle}
|
\title{\docTitle}
|
||||||
\author{\href{\setmail}{\setauthor}\\\setsubject~$\cdot$ \setlocation}
|
\author{\href{\authorMail}{\docAuthor}}
|
||||||
|
\extra{\docSubject~$\cdot$ \docLocation}
|
||||||
\date{}
|
\date{}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
5
latex/exam/.gitignore
vendored
Normal file
5
latex/exam/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
*
|
||||||
|
|
||||||
|
!.gitignore
|
||||||
|
!Makefile
|
||||||
|
!*.tex
|
20
latex/exam/Makefile
Normal file
20
latex/exam/Makefile
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
NAME = test
|
||||||
|
|
||||||
|
PDF = $(NAME).pdf
|
||||||
|
|
||||||
|
TEXMK = latexmk -lualatex -shell-escape -interaction=nonstopmode
|
||||||
|
QPDF = qpdf --linearize --replace-input
|
||||||
|
RM = rm -rf
|
||||||
|
|
||||||
|
all: $(PDF)
|
||||||
|
|
||||||
|
$(PDF): %.pdf: %.tex
|
||||||
|
$(TEXMK) $<
|
||||||
|
@$(QPDF) $@ 2>/dev/null |:
|
||||||
|
|
||||||
|
EXTS = aux fdb_latexmk fls log nav out snm synctex.gz toc
|
||||||
|
clean:
|
||||||
|
$(RM) _minted-$(NAME)/ $(foreach ext,$(EXTS),$(NAME).$(ext))
|
||||||
|
|
||||||
|
full-clean: clean
|
||||||
|
$(RM) $(PDF)
|
144
latex/exam/test.tex
Normal file
144
latex/exam/test.tex
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
\documentclass[a4paper,12pt,addpoints]{exam}
|
||||||
|
|
||||||
|
% Font
|
||||||
|
\usepackage[T1]{fontenc}
|
||||||
|
\renewcommand{\familydefault}{\sfdefault}
|
||||||
|
\usepackage{microtype}
|
||||||
|
|
||||||
|
% Code integration
|
||||||
|
%\usepackage{minted}
|
||||||
|
%\setminted{autogobble,breaklines}
|
||||||
|
%\usemintedstyle{emacs}
|
||||||
|
|
||||||
|
% Languages
|
||||||
|
\usepackage[french]{babel}
|
||||||
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
||||||
|
\usepackage{csquotes}
|
||||||
|
\MakeOuterQuote{"}
|
||||||
|
|
||||||
|
% Change page dimensions
|
||||||
|
%\usepackage[
|
||||||
|
% a4paper,
|
||||||
|
% left=20mm,
|
||||||
|
% top=20mm,
|
||||||
|
%]{geometry}
|
||||||
|
|
||||||
|
% Metadatas
|
||||||
|
\def\docTitle{TITLE}
|
||||||
|
\def\docSubject{SUBJECT}
|
||||||
|
\def\docLocation{LOCATION}
|
||||||
|
\def\docTimeAllocated{1 heure 30 minutes}
|
||||||
|
|
||||||
|
\usepackage[
|
||||||
|
pdfauthor={\docLocation}, % author metadata
|
||||||
|
pdftitle={\docTitle}, % title metadata
|
||||||
|
pdfsubject={\docSubject}, % subject metadata
|
||||||
|
pdfkeywords={examen, test, \docSubject},
|
||||||
|
]{hyperref}
|
||||||
|
|
||||||
|
% Style marks
|
||||||
|
\pointsinrightmargin
|
||||||
|
%\usepackage{color}
|
||||||
|
%\colorsolutionboxes
|
||||||
|
|
||||||
|
% Style head an foot
|
||||||
|
\pagestyle{headandfoot}
|
||||||
|
\runningheadrule
|
||||||
|
\firstpageheader{\docSubject}{}{\docLocation}
|
||||||
|
\runningheader{\docSubject}{\docTitle}{\docLocation}
|
||||||
|
\cfoot{\thepage}
|
||||||
|
|
||||||
|
% Style question
|
||||||
|
\renewcommand\questionlabel{\textbf{Exercice \Roman{question}.}}
|
||||||
|
%\renewcommand\questionshook{\setlength{\labelwidth}{1in}} % realign points
|
||||||
|
\renewcommand\partlabel{\arabic{partno}.}
|
||||||
|
\renewcommand\subpartlabel{\alph{subpart}.}
|
||||||
|
\renewcommand\subsubpartlabel{\greeknum{subsubpart}.}
|
||||||
|
|
||||||
|
% Show answers
|
||||||
|
%\printanswers
|
||||||
|
|
||||||
|
\begin{document}
|
||||||
|
% \definecolor{SolutionBoxColor}{gray}{1} % invisible answer area outline
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
{\LARGE\bfseries\docTitle} \\
|
||||||
|
\docTimeAllocated~-- /\numpoints~\points
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
\parbox{14cm}{\centering
|
||||||
|
\textbf{Tout document autorisé.
|
||||||
|
Tout dispositif de communication est interdit. } \\
|
||||||
|
Sauf indication contraire, toute assertion doit être démontrée. \\
|
||||||
|
Le sujet est composé de \totalnumpages~pages.}
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\begin{tabular}{r@{}p{0.8\textwidth}}
|
||||||
|
Nom & ~: \hrulefill \\[0.5em]
|
||||||
|
Prénom & ~: \hrulefill
|
||||||
|
\end{tabular}
|
||||||
|
|
||||||
|
% Additional information
|
||||||
|
%\vspace{1cm}
|
||||||
|
%\parbox{14cm}{Nota :
|
||||||
|
% \begin{itemize}
|
||||||
|
% \item Les exercices sont indépendants.
|
||||||
|
% \item Toute réponse hors du cadre sera ignorée.
|
||||||
|
% \end{itemize}}
|
||||||
|
|
||||||
|
\vspace{1cm}
|
||||||
|
\begin{questions}
|
||||||
|
\question
|
||||||
|
ÉNONCÉ DE L'EXERCICE 1
|
||||||
|
\begin{parts}
|
||||||
|
\part[6]
|
||||||
|
ÉNONCÉ DE LA QUESTION 1
|
||||||
|
\begin{solutionorbox}[3cm]
|
||||||
|
RÉPONSE DE LA QUESTION 1
|
||||||
|
\end{solutionorbox}
|
||||||
|
|
||||||
|
\part[2]
|
||||||
|
ÉNONCÉ DE LA QUESTION 2
|
||||||
|
\begin{solutionorbox}[3cm]
|
||||||
|
RÉPONSE DE LA QUESTION 2
|
||||||
|
\end{solutionorbox}
|
||||||
|
\end{parts}
|
||||||
|
|
||||||
|
\question
|
||||||
|
ÉNONCÉ DE L'EXERCICE 2
|
||||||
|
\begin{parts}
|
||||||
|
\part[3]
|
||||||
|
ÉNONCÉ DE LA QUESTION 1
|
||||||
|
\begin{solutionorbox}[4cm]
|
||||||
|
RÉPONSE DE LA QUESTION 1
|
||||||
|
\end{solutionorbox}
|
||||||
|
|
||||||
|
\part[2]
|
||||||
|
ÉNONCÉ DE LA QUESTION 2
|
||||||
|
\begin{solutionorbox}[4cm]
|
||||||
|
RÉPONSE DE LA QUESTION 2
|
||||||
|
\end{solutionorbox}
|
||||||
|
\end{parts}
|
||||||
|
|
||||||
|
\question
|
||||||
|
ÉNONCÉ DE L'EXERCICE 3
|
||||||
|
\begin{parts}
|
||||||
|
\part[3]
|
||||||
|
ÉNONCÉ DE LA QUESTION 1
|
||||||
|
\begin{solutionorbox}[3cm]
|
||||||
|
RÉPONSE DE LA QUESTION 1
|
||||||
|
\end{solutionorbox}
|
||||||
|
|
||||||
|
\part[4]
|
||||||
|
ÉNONCÉ DE LA QUESTION 2
|
||||||
|
\begin{solutionorbox}[3cm]
|
||||||
|
RÉPONSE DE LA QUESTION 2
|
||||||
|
\end{solutionorbox}
|
||||||
|
\end{parts}
|
||||||
|
\end{questions}
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
Fin de l'examen.
|
||||||
|
\end{center}
|
||||||
|
\end{document}
|
|
@ -1,12 +1,12 @@
|
||||||
NAME = slides
|
NAME = slides
|
||||||
|
|
||||||
TEX = $(NAME).tex
|
|
||||||
SRC = $(TEX)
|
|
||||||
PDF = $(TEX:.tex=.pdf)
|
|
||||||
PKG = projektor.sty
|
PKG = projektor.sty
|
||||||
|
PDF = $(NAME).pdf
|
||||||
|
|
||||||
TEXMK = latexmk -lualatex -shell-escape -interaction=nonstopmode
|
TEXMK = latexmk -lualatex -shell-escape -interaction=nonstopmode
|
||||||
|
QPDF = qpdf --linearize --replace-input
|
||||||
WGET = wget -q --show-progress
|
WGET = wget -q --show-progress
|
||||||
|
RM = rm -rf
|
||||||
|
|
||||||
|
|
||||||
all: $(PDF)
|
all: $(PDF)
|
||||||
|
@ -14,13 +14,18 @@ all: $(PDF)
|
||||||
$(PDF): %.pdf: %.tex
|
$(PDF): %.pdf: %.tex
|
||||||
ifneq (,$(wildcard $(PKG)))
|
ifneq (,$(wildcard $(PKG)))
|
||||||
@$(TEXMK) $<
|
@$(TEXMK) $<
|
||||||
|
@$(QPDF) $@ 2>/dev/null |:
|
||||||
else
|
else
|
||||||
@echo "Can't proceed, $(PKG) missing."
|
@$(MAKE) updatepackage
|
||||||
|
@$(MAKE) $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTS = aux fdb_latexmk fls log nav out snm synctex.gz toc vrb
|
EXTS = aux fdb_latexmk fls log nav out snm synctex.gz toc vrb
|
||||||
clean:
|
clean:
|
||||||
rm -rf $(PDF) _minted-$(NAME)/ $(foreach ext,$(EXTS),$(NAME).$(ext))
|
$(RM) _minted-$(NAME)/ $(foreach ext,$(EXTS),$(NAME).$(ext))
|
||||||
|
|
||||||
|
full-clean: clean
|
||||||
|
$(RM) $(PDF) $(PKG)
|
||||||
|
|
||||||
updatepackage:
|
updatepackage:
|
||||||
@$(WGET) https://git.mylloon.fr/Anri/projektor/raw/branch/main/projektor.sty \
|
@$(WGET) https://git.mylloon.fr/Anri/projektor/raw/branch/main/projektor.sty \
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
\date{}
|
\date{}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\begin{frame}[t,plain]{\contentsname}
|
\begin{frame}[t,plain]{\contentsname}
|
||||||
|
@ -25,5 +24,4 @@
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
\date{}
|
\date{}
|
||||||
|
|
||||||
\begin{document}
|
\begin{document}
|
||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\section[FIRST SECTION]{SECTION} % title and subtitle reversed
|
\section[FIRST SECTION]{SECTION} % title and subtitle reversed
|
||||||
|
@ -39,9 +38,11 @@
|
||||||
|
|
||||||
\appendix
|
\appendix
|
||||||
\begin{frame}{Sources}
|
\begin{frame}{Sources}
|
||||||
\begin{itemize}\begin{multicols}{2}
|
\begin{itemize}
|
||||||
|
\begin{multicols}{2}
|
||||||
\item \href{https://fr.wikipedia.org/}{\nolinkurl{wikipedia.org}}
|
\item \href{https://fr.wikipedia.org/}{\nolinkurl{wikipedia.org}}
|
||||||
\end{multicols}\end{itemize}
|
\end{multicols}
|
||||||
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
|
@ -8,3 +8,7 @@ license = "AGPL-3.0-or-later"
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|
||||||
|
|
||||||
|
[lints.clippy]
|
||||||
|
pedantic = "warn"
|
||||||
|
|
Loading…
Reference in a new issue