SlideShare a Scribd company logo
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 Topics in TeX and LaTeX: Selected packages, programming, and Overleaf updates

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 kapacitor
InfluxData
 
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
University of Antwerp
 
Testing of javacript
Testing of javacriptTesting of javacript
Testing of javacript
Lei 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 slides
Dmitry 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 210
Mahmoud Samir Fayed
 
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
Maharaja Institute of Technology Mysore
 
Industrial IoT bootcamp
Industrial IoT bootcampIndustrial IoT bootcamp
Industrial IoT bootcamp
Lothar Schubert
 
Modules and Scripts- Python Assignment Help
Modules and Scripts- Python Assignment HelpModules and Scripts- Python Assignment Help
Modules and Scripts- Python Assignment Help
Anderson 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 keptn
Andreas Grabner
 
PLUG : Presentation Layer Universal Generator
 PLUG : Presentation Layer Universal Generator PLUG : Presentation Layer Universal Generator
PLUG : Presentation Layer Universal Generator
Emmanuel Fuchs
 
QConSF 2022 - Backends in Dart
QConSF 2022 - Backends in DartQConSF 2022 - Backends in Dart
QConSF 2022 - Backends in Dart
Chris Swan
 
Overlay Technique | Pebble Developer Retreat 2014
Overlay Technique | Pebble Developer Retreat 2014Overlay Technique | Pebble Developer Retreat 2014
Overlay Technique | Pebble Developer Retreat 2014
Pebble Technology
 
VLSI lab report using Cadence tool
VLSI lab report using Cadence toolVLSI lab report using Cadence tool
VLSI lab report using Cadence tool
Maharaja Institute of Technology Mysore
 
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
Gary 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 & GitOps
Weaveworks
 
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
lmelaine
 
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
MarynaHoldaieva
 
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 Topics in TeX and LaTeX: Selected packages, programming, and Overleaf updates (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 talk
Hoffman Lab
 
TCRpower
TCRpowerTCRpower
TCRpower
Hoffman 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 gget
Hoffman Lab
 
WashU Epigenome Browser
WashU Epigenome BrowserWashU Epigenome Browser
WashU Epigenome Browser
Hoffman Lab
 
Wireguard: A Virtual Private Network Tunnel
Wireguard: A Virtual Private Network TunnelWireguard: A Virtual Private Network Tunnel
Wireguard: A Virtual Private Network Tunnel
Hoffman Lab
 
Plotting heatmap with matplotlib/seaborn
Plotting heatmap with matplotlib/seabornPlotting heatmap with matplotlib/seaborn
Plotting heatmap with matplotlib/seaborn
Hoffman 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-processor
Hoffman Lab
 
R markdown and Rmdformats
R markdown and RmdformatsR markdown and Rmdformats
R markdown and Rmdformats
Hoffman Lab
 
File searching tools
File searching toolsFile searching tools
File searching tools
Hoffman Lab
 
Better BibTeX (BBT) for Zotero
Better BibTeX (BBT) for ZoteroBetter BibTeX (BBT) for Zotero
Better BibTeX (BBT) for Zotero
Hoffman Lab
 
Awk primer and Bioawk
Awk primer and BioawkAwk primer and Bioawk
Awk primer and Bioawk
Hoffman Lab
 
Terminals and Shells
Terminals and ShellsTerminals and Shells
Terminals and Shells
Hoffman Lab
 
BioRender & Glossary/Acronym
BioRender & Glossary/AcronymBioRender & Glossary/Acronym
BioRender & Glossary/Acronym
Hoffman Lab
 
Linters in R
Linters in RLinters in R
Linters in R
Hoffman Lab
 
BioSyntax: syntax highlighting for computational biology
BioSyntax: syntax highlighting for computational biologyBioSyntax: syntax highlighting for computational biology
BioSyntax: syntax highlighting for computational biology
Hoffman Lab
 
Get Good With Git
Get Good With GitGet Good With Git
Get Good With Git
Hoffman Lab
 
Tech Talk: UCSC Genome Browser
Tech Talk: UCSC Genome BrowserTech Talk: UCSC Genome Browser
Tech Talk: UCSC Genome Browser
Hoffman 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 ggplot2
Hoffman 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

LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
DanBrown980551
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
UiPathCommunity
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
DianaGray10
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
Javier Junquera
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
FilipTomaszewski5
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
ScyllaDB
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
Mydbops
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
Sunil Jagani
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
Ortus Solutions, Corp
 

Recently uploaded (20)

LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
LF Energy Webinar: Carbon Data Specifications: Mechanisms to Improve Data Acc...
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
Day 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio FundamentalsDay 2 - Intro to UiPath Studio Fundamentals
Day 2 - Intro to UiPath Studio Fundamentals
 
What is an RPA CoE? Session 2 – CoE Roles
What is an RPA CoE?  Session 2 – CoE RolesWhat is an RPA CoE?  Session 2 – CoE Roles
What is an RPA CoE? Session 2 – CoE Roles
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)GNSS spoofing via SDR (Criptored Talks 2024)
GNSS spoofing via SDR (Criptored Talks 2024)
 
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeckPoznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
Poznań ACE event - 19.06.2024 Team 24 Wrapup slidedeck
 
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's TipsGetting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
Getting the Most Out of ScyllaDB Monitoring: ShareChat's Tips
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Must Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during MigrationMust Know Postgres Extension for DBA and Developer during Migration
Must Know Postgres Extension for DBA and Developer during Migration
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptxAI in the Workplace Reskilling, Upskilling, and Future Work.pptx
AI in the Workplace Reskilling, Upskilling, and Future Work.pptx
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!Introducing BoxLang : A new JVM language for productivity and modularity!
Introducing BoxLang : A new JVM language for productivity and modularity!
 

Topics in TeX and LaTeX: Selected packages, programming, and Overleaf updates