SlideShare a Scribd company logo
1 of 80
Download to read offline
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Lab meeting—technical talk
Topics in TEX and LATEX
Selected packages, programming, and Overleaf updates
Coby Viner
Hoffman Lab
Wednesday January 31, 2018
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overview
TEX Engines
Selected LATEX Packages
Microtypography: the microtype package
siunitx: SI units & number formatting
todonotes: Todo notes within your document
The xifthen and ifdraft packages
Selected programming tools and methods
Patching other packages or classes
Δ-TEX programming: expandafter
Δ-TEX programming: expandafter
Δ-TEX programming: csname
endcsname
Overleaf
Overleaf compilation
Overleaf version 2
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
TEX Engines
TEX engines
TEX (dvi)
pdfTEX
XETEX
LuaTEX
ConTEXt
S. Kottwitz. (2015), Example: a diagram of tex engines,
http://www.texample.net/tikz/examples/smart-bubbles/.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Microtypography: the microtype package
H. T. Thành, “Micro-typographic extensions of pdfTEX in practice”, TUGboat, vol.
25, no. 1, pp. 35–38, 2004.
S. Khirevich. (2018), Tips on writing a thesis in latex,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Microtypography: the microtype package
H. T. Thành, “Micro-typographic extensions of pdfTEX in practice”, TUGboat, vol.
25, no. 1, pp. 35–38, 2004.
S. Khirevich. (2018), Tips on writing a thesis in latex,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Microtypography: the microtype package
H. T. Thành, “Micro-typographic extensions of pdfTEX in practice”, TUGboat, vol.
25, no. 1, pp. 35–38, 2004.
S. Khirevich. (2018), Tips on writing a thesis in latex,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all, binary-units
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
siunitx: SI units & number formatting
Use for all quantities that have units: $SI{10}{gpermicrolitre}$
10g/”l
Typeset units: $si{dalton} = si{grampermole}$ and
$si{angstrom} = SI{0.1}{nanometer}$ Da = gmol−1 and
Å = 0.1000nm
Typeset numbers, $num{2.718281828459045}$, $num{200000}$:
2.7183, 200000
Define new units: DeclareSIUnit[number-unit-product = ;]
basepair{bp}
Options: detect-all, binary-units, round-mode=places,round-precision=4
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete

This note was created with todo[inline].
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete

This note was created with todo[inline].
Mark missing figures: missingfigure[fig-
width=6cm,
figheight=4cm]
Missing
figure
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete

This note was created with todo[inline].
Mark missing figures: missingfigure[fig-
width=6cm,
figheight=4cm]
Missing
figure
Lots of options
colour combos: blue!20!white
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
todonotes: Todo notes within your document
The todonotes package lets you mark items that you need to complete

This note was created with todo[inline].
Mark missing figures: missingfigure[fig-
width=6cm,
figheight=4cm]
Missing
figure
Lots of options
colour combos: blue!20!white
Load with obeyFinal to remove all notes when passing final to your class.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
The xifthen and ifdraft packages
Use xifthen to provide simple conditional syntax
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
The xifthen and ifdraft packages
Use xifthen to provide simple conditional syntax
newboolean{〈booleanâŒȘ}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
The xifthen and ifdraft packages
Use xifthen to provide simple conditional syntax
newboolean{〈booleanâŒȘ}
setboolean{〈booleanâŒȘ}{〈true|false}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
The xifthen and ifdraft packages
Use xifthen to provide simple conditional syntax
newboolean{〈booleanâŒȘ}
setboolean{〈booleanâŒȘ}{〈true|false}
ifthenelse{〈test expressionâŒȘ}{〈true codeâŒȘ}{〈false codeâŒȘ}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
The xifthen and ifdraft packages
Use xifthen to provide simple conditional syntax
newboolean{〈booleanâŒȘ}
setboolean{〈booleanâŒȘ}{〈true|false}
ifthenelse{〈test expressionâŒȘ}{〈true codeâŒȘ}{〈false codeâŒȘ}
boolean{〈booleanâŒȘ}, 〈value1âŒȘ = 〈value2âŒȘ,
equal{〈string1âŒȘ}{〈string2âŒȘ} AND
endswith{〈string2âŒȘ}{〈suffixâŒȘ}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
The xifthen and ifdraft packages
Use xifthen to provide simple conditional syntax
newboolean{〈booleanâŒȘ}
setboolean{〈booleanâŒȘ}{〈true|false}
ifthenelse{〈test expressionâŒȘ}{〈true codeâŒȘ}{〈false codeâŒȘ}
boolean{〈booleanâŒȘ}, 〈value1âŒȘ = 〈value2âŒȘ,
equal{〈string1âŒȘ}{〈string2âŒȘ} AND
endswith{〈string2âŒȘ}{〈suffixâŒȘ}
With the setspace and ifdraft packages:
ifoptionfinal{}{doublespacing}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
regexpatch provides advanced functionality to do so
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
regexpatch provides advanced functionality to do so
Some useful patches for the BioMed Central’s bmcart.cls:
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
regexpatch provides advanced functionality to do so
Some useful patches for the BioMed Central’s bmcart.cls:
Contains: defdoi@base{http://dx.doi.org/}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
Often want to edit a macro in an external package or class
regexpatch provides advanced functionality to do so
Some useful patches for the BioMed Central’s bmcart.cls:
Contains: defdoi@base{http://dx.doi.org/}
patchcmd{doi@base}{http://dx.doi.org}
{https://doi.org}{}{}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
appto{ figure@ setting s}{%
 i f @ f i g u r e s t a r
 captionsetup { . . . ,
s i n g l e l i n e c h e c k=f a l s e , j u s t i f i c a t i o n=RaggedRight}
 f i%
}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
appto{ figure@ setting s}{%
 i f @ f i g u r e s t a r
 captionsetup { . . . ,
s i n g l e l i n e c h e c k=f a l s e , j u s t i f i c a t i o n=RaggedRight}
 f i%
}
 def  bmcart@hyperref@settings{%
. . .
 @ifundefined { hy@title }{}{ p d f s t r i n g d e f
 @pdftitle { hy@title }}
}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Patching other packages or classes
appto{ figure@ setting s}{%
 i f @ f i g u r e s t a r
 captionsetup { . . . ,
s i n g l e l i n e c h e c k=f a l s e , j u s t i f i c a t i o n=RaggedRight}
 f i%
}
 def  bmcart@hyperref@settings{%
. . .
 @ifundefined { hy@title }{}{ p d f s t r i n g d e f
 @pdftitle { hy@title }}
}
regexpatchcmd { bmcart@hyperref@settings }
{.* @title .*}{}{}{}
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
def is like a simpler version of newcommand*, in TEX and not LATEX
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
def is like a simpler version of newcommand*, in TEX and not LATEX
expandafter is a macro that influences the expansion of macros
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
There are typesetting instructions and instructions with other effects
def is like a simpler version of newcommand*, in TEX and not LATEX
expandafter is a macro that influences the expansion of macros
defxx{ABC}; replacement text and expansion of xx is ABC
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
〈token1âŒȘ is a macro: it gets expanded.
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
〈token1âŒȘ is a macro: it gets expanded.
〈token1âŒȘ is another expandafter: TEX continues performing expandafters
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
〈token1âŒȘ is a macro: it gets expanded.
〈token1âŒȘ is another expandafter: TEX continues performing expandafters
〈token1âŒȘ is csname: TEX looks for the matching endcsname and expands
the resulting token
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
〈token1âŒȘ is a macro: it gets expanded.
〈token1âŒȘ is another expandafter: TEX continues performing expandafters
〈token1âŒȘ is csname: TEX looks for the matching endcsname and expands
the resulting token
〈token1âŒȘ is an opening curly brace: the opening brace is temporarily
suspended
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
〈token1âŒȘ is a macro: it gets expanded.
〈token1âŒȘ is another expandafter: TEX continues performing expandafters
〈token1âŒȘ is csname: TEX looks for the matching endcsname and expands
the resulting token
〈token1âŒȘ is an opening curly brace: the opening brace is temporarily
suspended
〈token1âŒȘ is the: operation is performed, reading the token after it
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
expandafter〈tokeneâŒȘ〈token1âŒȘ〈token2âŒȘ 〈tokennâŒȘ
tokene is saved without expansion
Process 〈token1âŒȘ
〈token1âŒȘ is a macro: it gets expanded.
〈token1âŒȘ is another expandafter: TEX continues performing expandafters
〈token1âŒȘ is csname: TEX looks for the matching endcsname and expands
the resulting token
〈token1âŒȘ is an opening curly brace: the opening brace is temporarily
suspended
〈token1âŒȘ is the: operation is performed, reading the token after it
〈token1âŒȘ is any other primitive: nothing
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
xxyy fails; expandafterxxyy works
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
xxyy fails; expandafterxxyy works
defzz{yy}. expandafterxxzz fails, since expansion only occurs
once
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
tokene is placed back in front of the generated tokens and processing
continues
expandafter reverses expansion, not execution
Common use case: calling a macro with the result of another
defxx[#1]{...} defyy{[ABC]}
xxyy fails; expandafterxxyy works
defzz{yy}. expandafterxxzz fails, since expansion only occurs
once
Solved using edeftemp{noexpandxxzz}
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
Now ex2 s executed, saving a and expanding b
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
Now ex2 s executed, saving a and expanding b
a is reinserted and then expanded
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Multiple expandafters: ex1ex1ex1aex4bc
ex1 is executed, saving ex2.
ex3 is executed, saving a
Saved token list: ex2· a
ex4 is executed, saving b and expanding c
All saved tokens ex2· a · b are reinserted in front of the replacement of
c
Now ex2 s executed, saving a and expanding b
a is reinserted and then expanded
Execution continues with the replacement text of a
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Reverse expansion of 4 tokens: 7 expandafters, token a, 3
expandafters, token b, expandafter, token c, token d
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: expandafter
Reverse expansion of 4 tokens: 7 expandafters, token a, 3
expandafters, token b, expandafter, token c, token d
For n tokens, the ith token must be preceded by 2n−i −1 expandafters
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1, pp. 57–61,
1988.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: csname
endcsname
csname–endcsname are TEX primatives used to define and call macros
A. Hendrickson, “The joy of csname
endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: csname
endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
A. Hendrickson, “The joy of csname
endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: csname
endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
Can do: expandafterdefcsname $&3endcsname{Hi!}
A. Hendrickson, “The joy of csname
endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: csname
endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
Can do: expandafterdefcsname $&3endcsname{Hi!}
Then csname $&3endcsname produces “Hi!”
A. Hendrickson, “The joy of csname
endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Δ-TEX programming: csname
endcsname
csname–endcsname are TEX primatives used to define and call macros
def can only used letters
Can do: expandafterdefcsname $&3endcsname{Hi!}
Then csname $&3endcsname produces “Hi!”
Can expand commands within this and use for building dynamic macros
A. Hendrickson, “The joy of csname
endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf compilation
Uses latexmk
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf compilation
Uses latexmk
Configure with a .latexmkrc file
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf compilation
Uses latexmk
Configure with a .latexmkrc file
https:
//www.overleaf.com/help/216-how-does-overleaf-compile-my-project
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf compilation
Uses latexmk
Configure with a .latexmkrc file
https:
//www.overleaf.com/help/216-how-does-overleaf-compile-my-project
To use our local timezone: $ENV{'TZ'}='Canada/Eastern';
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf compilation
Uses latexmk
Configure with a .latexmkrc file
https:
//www.overleaf.com/help/216-how-does-overleaf-compile-my-project
To use our local timezone: $ENV{'TZ'}='Canada/Eastern';
Sandboxed via Docker
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf compilation
Uses latexmk
Configure with a .latexmkrc file
https:
//www.overleaf.com/help/216-how-does-overleaf-compile-my-project
To use our local timezone: $ENV{'TZ'}='Canada/Eastern';
Sandboxed via Docker
Permit shell-escape: $pdflatex = 'pdflatex --shell-escape';
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf version 2
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf version 2
Try it out yourself: v2.overleaf.com
Import of V1 projects available. Not yet for production uses.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf version 2
Try it out yourself: v2.overleaf.com
Import of V1 projects available. Not yet for production uses.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf version 2
Try it out yourself: v2.overleaf.com
Import of V1 projects available. Not yet for production uses.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
Overleaf version 2
Try it out yourself: v2.overleaf.com
Import of V1 projects available. Not yet for production uses.
Lab meeting—
technical
talk
Coby Viner
Engines
Packages
Microtypography
Siunitx
Todonotes
Conditionals
Patching &
Programming
Patching
Programming
Programming
Programming
Overleaf
Compilation
Upcoming
References
S. Kottwitz. (2015), Example: a diagram of tex engines,
http://www.texample.net/tikz/examples/smart-bubbles/.
H. T. Thành, “Micro-typographic extensions of pdfTEX in practice”,
TUGboat, vol. 25, no. 1, pp. 35–38, 2004.
S. Khirevich. (2018), Tips on writing a thesis in latex,
http://www.khirevich.com/latex/microtype/.
S. v. Bechtolsheim, “A tutorial on expandafter”, TUGboat, vol. 9, no. 1,
pp. 57–61, 1988.
A. Hendrickson, “The joy of csname
endcsname”, TUGboat, vol. 33, no. 2,
pp. 219–224, 2012.
J. Wright, “siunitx: a comprehensive (SI) units package”, TUGboat, vol. 32,
no. 1, pp. 95–98, 2011.

More Related Content

Similar to TEX and LaTeX technical talk

Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Bram Adams
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)Alexandre Gouaillard
 
Advanced kapacitor
Advanced kapacitorAdvanced kapacitor
Advanced kapacitorInfluxData
 
AI For Software Engineering: Two Industrial Experience Reports
AI For Software Engineering: Two Industrial Experience ReportsAI For Software Engineering: Two Industrial Experience Reports
AI For Software Engineering: Two Industrial Experience ReportsUniversity of Antwerp
 
Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacriptLei Kang
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesDmitry Vostokov
 
The Ring programming language version 1.9 book - Part 16 of 210
The Ring programming language version 1.9 book - Part 16 of 210The Ring programming language version 1.9 book - Part 16 of 210
The Ring programming language version 1.9 book - Part 16 of 210Mahmoud Samir Fayed
 
Industrial IoT bootcamp
Industrial IoT bootcampIndustrial IoT bootcamp
Industrial IoT bootcampLothar Schubert
 
Modules and Scripts- Python Assignment Help
Modules and Scripts- Python Assignment HelpModules and Scripts- Python Assignment Help
Modules and Scripts- Python Assignment HelpAnderson Silva
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptnContinuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptnAndreas Grabner
 
PLUG : Presentation Layer Universal Generator
 PLUG : Presentation Layer Universal Generator PLUG : Presentation Layer Universal Generator
PLUG : Presentation Layer Universal GeneratorEmmanuel Fuchs
 
QConSF 2022 - Backends in Dart
QConSF 2022 - Backends in DartQConSF 2022 - Backends in Dart
QConSF 2022 - Backends in DartChris Swan
 
Overlay Technique | Pebble Developer Retreat 2014
Overlay Technique | Pebble Developer Retreat 2014Overlay Technique | Pebble Developer Retreat 2014
Overlay Technique | Pebble Developer Retreat 2014Pebble Technology
 
IUA 2001 Creative Techniques for Application Tuning
IUA 2001   Creative Techniques for Application TuningIUA 2001   Creative Techniques for Application Tuning
IUA 2001 Creative Techniques for Application TuningGary Cherlet
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsWeaveworks
 
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docx
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docxFall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docx
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docxlmelaine
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowMarynaHoldaieva
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Lviv Startup Club
 

Similar to TEX and LaTeX technical talk (20)

Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!Modern Release Engineering in a Nutshell - Why Researchers should Care!
Modern Release Engineering in a Nutshell - Why Researchers should Care!
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
 
Advanced kapacitor
Advanced kapacitorAdvanced kapacitor
Advanced kapacitor
 
AI For Software Engineering: Two Industrial Experience Reports
AI For Software Engineering: Two Industrial Experience ReportsAI For Software Engineering: Two Industrial Experience Reports
AI For Software Engineering: Two Industrial Experience Reports
 
Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacript
 
Accelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slidesAccelerated .NET Memory Dump Analysis training public slides
Accelerated .NET Memory Dump Analysis training public slides
 
The Ring programming language version 1.9 book - Part 16 of 210
The Ring programming language version 1.9 book - Part 16 of 210The Ring programming language version 1.9 book - Part 16 of 210
The Ring programming language version 1.9 book - Part 16 of 210
 
VTU ECE 7th sem VLSI lab manual
VTU ECE 7th sem VLSI lab manualVTU ECE 7th sem VLSI lab manual
VTU ECE 7th sem VLSI lab manual
 
Industrial IoT bootcamp
Industrial IoT bootcampIndustrial IoT bootcamp
Industrial IoT bootcamp
 
Modules and Scripts- Python Assignment Help
Modules and Scripts- Python Assignment HelpModules and Scripts- Python Assignment Help
Modules and Scripts- Python Assignment Help
 
Continuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptnContinuous Delivery and Automated Operations on k8s with keptn
Continuous Delivery and Automated Operations on k8s with keptn
 
PLUG : Presentation Layer Universal Generator
 PLUG : Presentation Layer Universal Generator PLUG : Presentation Layer Universal Generator
PLUG : Presentation Layer Universal Generator
 
QConSF 2022 - Backends in Dart
QConSF 2022 - Backends in DartQConSF 2022 - Backends in Dart
QConSF 2022 - Backends in Dart
 
Overlay Technique | Pebble Developer Retreat 2014
Overlay Technique | Pebble Developer Retreat 2014Overlay Technique | Pebble Developer Retreat 2014
Overlay Technique | Pebble Developer Retreat 2014
 
VLSI lab report using Cadence tool
VLSI lab report using Cadence toolVLSI lab report using Cadence tool
VLSI lab report using Cadence tool
 
IUA 2001 Creative Techniques for Application Tuning
IUA 2001   Creative Techniques for Application TuningIUA 2001   Creative Techniques for Application Tuning
IUA 2001 Creative Techniques for Application Tuning
 
Free GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOpsFree GitOps Workshop + Intro to Kubernetes & GitOps
Free GitOps Workshop + Intro to Kubernetes & GitOps
 
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docx
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docxFall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docx
Fall 2016 Insurance Case Study – Finance 360Loss ControlLoss.docx
 
Yannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflowYannis Zarkadas. Enterprise data science workflows on kubeflow
Yannis Zarkadas. Enterprise data science workflows on kubeflow
 
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
Yannis Zarkadas. Stefano Fioravanzo. Enterprise data science workflows on kub...
 

More from Hoffman Lab

GNU Parallel: Lab meeting—technical talk
GNU Parallel: Lab meeting—technical talkGNU Parallel: Lab meeting—technical talk
GNU Parallel: Lab meeting—technical talkHoffman Lab
 
Efficient querying of genomic reference databases with gget
Efficient querying of genomic reference databases with ggetEfficient querying of genomic reference databases with gget
Efficient querying of genomic reference databases with ggetHoffman Lab
 
WashU Epigenome Browser
WashU Epigenome BrowserWashU Epigenome Browser
WashU Epigenome BrowserHoffman Lab
 
Wireguard: A Virtual Private Network Tunnel
Wireguard: A Virtual Private Network TunnelWireguard: A Virtual Private Network Tunnel
Wireguard: A Virtual Private Network TunnelHoffman Lab
 
Plotting heatmap with matplotlib/seaborn
Plotting heatmap with matplotlib/seabornPlotting heatmap with matplotlib/seaborn
Plotting heatmap with matplotlib/seabornHoffman Lab
 
Go Get Data (GGD)
Go Get Data (GGD)Go Get Data (GGD)
Go Get Data (GGD)Hoffman Lab
 
fastp: the FASTQ pre-processor
fastp: the FASTQ pre-processorfastp: the FASTQ pre-processor
fastp: the FASTQ pre-processorHoffman Lab
 
R markdown and Rmdformats
R markdown and RmdformatsR markdown and Rmdformats
R markdown and RmdformatsHoffman Lab
 
File searching tools
File searching toolsFile searching tools
File searching toolsHoffman Lab
 
Better BibTeX (BBT) for Zotero
Better BibTeX (BBT) for ZoteroBetter BibTeX (BBT) for Zotero
Better BibTeX (BBT) for ZoteroHoffman Lab
 
Awk primer and Bioawk
Awk primer and BioawkAwk primer and Bioawk
Awk primer and BioawkHoffman Lab
 
Terminals and Shells
Terminals and ShellsTerminals and Shells
Terminals and ShellsHoffman Lab
 
BioRender & Glossary/Acronym
BioRender & Glossary/AcronymBioRender & Glossary/Acronym
BioRender & Glossary/AcronymHoffman Lab
 
Linters in R
Linters in RLinters in R
Linters in RHoffman Lab
 
BioSyntax: syntax highlighting for computational biology
BioSyntax: syntax highlighting for computational biologyBioSyntax: syntax highlighting for computational biology
BioSyntax: syntax highlighting for computational biologyHoffman Lab
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With GitHoffman Lab
 
Tech Talk: UCSC Genome Browser
Tech Talk: UCSC Genome BrowserTech Talk: UCSC Genome Browser
Tech Talk: UCSC Genome BrowserHoffman Lab
 
MultiQC: summarize analysis results for multiple tools and samples in a singl...
MultiQC: summarize analysis results for multiple tools and samples in a singl...MultiQC: summarize analysis results for multiple tools and samples in a singl...
MultiQC: summarize analysis results for multiple tools and samples in a singl...Hoffman Lab
 
dreamRs: interactive ggplot2
dreamRs: interactive ggplot2dreamRs: interactive ggplot2
dreamRs: interactive ggplot2Hoffman Lab
 

More from Hoffman Lab (20)

GNU Parallel: Lab meeting—technical talk
GNU Parallel: Lab meeting—technical talkGNU Parallel: Lab meeting—technical talk
GNU Parallel: Lab meeting—technical talk
 
TCRpower
TCRpowerTCRpower
TCRpower
 
Efficient querying of genomic reference databases with gget
Efficient querying of genomic reference databases with ggetEfficient querying of genomic reference databases with gget
Efficient querying of genomic reference databases with gget
 
WashU Epigenome Browser
WashU Epigenome BrowserWashU Epigenome Browser
WashU Epigenome Browser
 
Wireguard: A Virtual Private Network Tunnel
Wireguard: A Virtual Private Network TunnelWireguard: A Virtual Private Network Tunnel
Wireguard: A Virtual Private Network Tunnel
 
Plotting heatmap with matplotlib/seaborn
Plotting heatmap with matplotlib/seabornPlotting heatmap with matplotlib/seaborn
Plotting heatmap with matplotlib/seaborn
 
Go Get Data (GGD)
Go Get Data (GGD)Go Get Data (GGD)
Go Get Data (GGD)
 
fastp: the FASTQ pre-processor
fastp: the FASTQ pre-processorfastp: the FASTQ pre-processor
fastp: the FASTQ pre-processor
 
R markdown and Rmdformats
R markdown and RmdformatsR markdown and Rmdformats
R markdown and Rmdformats
 
File searching tools
File searching toolsFile searching tools
File searching tools
 
Better BibTeX (BBT) for Zotero
Better BibTeX (BBT) for ZoteroBetter BibTeX (BBT) for Zotero
Better BibTeX (BBT) for Zotero
 
Awk primer and Bioawk
Awk primer and BioawkAwk primer and Bioawk
Awk primer and Bioawk
 
Terminals and Shells
Terminals and ShellsTerminals and Shells
Terminals and Shells
 
BioRender & Glossary/Acronym
BioRender & Glossary/AcronymBioRender & Glossary/Acronym
BioRender & Glossary/Acronym
 
Linters in R
Linters in RLinters in R
Linters in R
 
BioSyntax: syntax highlighting for computational biology
BioSyntax: syntax highlighting for computational biologyBioSyntax: syntax highlighting for computational biology
BioSyntax: syntax highlighting for computational biology
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With Git
 
Tech Talk: UCSC Genome Browser
Tech Talk: UCSC Genome BrowserTech Talk: UCSC Genome Browser
Tech Talk: UCSC Genome Browser
 
MultiQC: summarize analysis results for multiple tools and samples in a singl...
MultiQC: summarize analysis results for multiple tools and samples in a singl...MultiQC: summarize analysis results for multiple tools and samples in a singl...
MultiQC: summarize analysis results for multiple tools and samples in a singl...
 
dreamRs: interactive ggplot2
dreamRs: interactive ggplot2dreamRs: interactive ggplot2
dreamRs: interactive ggplot2
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

TEX and LaTeX technical talk