<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blogs on law@deb</title><link>https://alvinlaw.srht.site/en/</link><image><url>
https://alvinlaw.srht.site/favicon.ico</url></image><description>Recent content on law@deb</description><language>en</language><lastBuildDate>Fri, 22 May 2026 12:11:42 +0000</lastBuildDate><atom:link href="https://alvinlaw.srht.site/en/" rel="self" type="application/octet-stream"/><item><title>Simple vim tricks that no one talks about</title><link>https://alvinlaw.srht.site/en/blogs/vim-tricks/</link><pubDate>Fri, 22 May 2026 12:11:42 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/vim-tricks/</guid><description>&lt;h2 id="escape-to-normal-mode">Escape to normal mode&lt;/h2>
&lt;p>Many people are still using &lt;code>esc&lt;/code> key to escape to normal mode in vim. Some even remap &lt;code>capslock&lt;/code> to &lt;code>esc&lt;/code>, or remap &lt;code>jj&lt;/code> or &lt;code>jk&lt;/code> to escape to vim mode to make it easier to escape to normal mode.&lt;/p>
&lt;p>In fact, you can just use &lt;code>ctrl+c&lt;/code> or &lt;code>ctrl+[&lt;/code> to escape to normal mode. These are accessible, and are the same across different machines, so you won&amp;rsquo;t build the muscle memories that don&amp;rsquo;t work without your configuration.&lt;/p>
&lt;h2 id="exit-vim">Exit vim&lt;/h2>
&lt;p>Most of the tutorials teach you to exit vim using &lt;code>:wq&lt;/code> command, That&amp;rsquo;s too many key strokes. The real way to save and exit is &lt;code>ZZ&lt;/code>, and exit without saving is &lt;code>ZQ&lt;/code>.&lt;/p></description></item><item><title>Use pass to manage passwords</title><link>https://alvinlaw.srht.site/en/blogs/pass/</link><pubDate>Sun, 10 May 2026 12:11:31 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/pass/</guid><description>&lt;p>Stop using the same password across different services, use a password manager instead. Here is one of the most suckless password manager, pass (This exist on most distro&amp;rsquo;s software repo!).&lt;/p>
&lt;h2 id="initial-setup">Initial setup&lt;/h2>
&lt;p>Create a gpg key and setup a passphrase, which serve as the master password.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gpg --full-generate-key
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then initialise the pass directory.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pass init &lt;span class="s2">&amp;#34;key&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="add-passwords">Add passwords&lt;/h2>
&lt;p>Use the following command to add passwords, it can be in a subdirectory,&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pass insert email/example@gmail.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>then type in the password twice. Or use pass to generate password of 20 characters using the following command.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pass insert email/example@proton.me &lt;span class="m">20&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>To create multi-line passwords.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pass insert -m account/vpn
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then insert multi-line password, and hit ctrl+d to exit.&lt;/p>
&lt;h2 id="list-passwords">List passwords&lt;/h2>
&lt;p>To view a list of created passwords, just use the command &lt;code>pass&lt;/code>, it will give the following output.&lt;/p>
&lt;pre tabindex="0">&lt;code>Password Store
├── account
│   └── vpn
└── email
 ├── example@gmail.com
 └── example@proton.me
&lt;/code>&lt;/pre>&lt;h2 id="view-passwords">View passwords&lt;/h2>
&lt;p>To show the password in the terminal, use the following command and type in the master password.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pass show email/example@gmail.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Or directly copy to clipboard without displaying in terminal.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">pass show -c email/example@gmail.com
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="change-master-password">Change master password&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">gpg --edit-key &lt;span class="k">$(&lt;/span>cat .password-store/.gpg-id&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Enter the command &lt;code>passwd&lt;/code>, enter current password in the prompt, then enter new password. Lastly, save it using the &lt;code>save&lt;/code> command.&lt;/p></description></item><item><title>Simple editing using ImageMagick</title><link>https://alvinlaw.srht.site/en/blogs/imagemagick/</link><pubDate>Sun, 19 Apr 2026 16:32:35 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/imagemagick/</guid><description>&lt;h2 id="resize-an-image">Resize an image&lt;/h2>
&lt;p>Resize the image using percentage.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -resize 60% resized.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Or define the dimension explicitly.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -resize 640x360 resized.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="flip-an-image">Flip an image&lt;/h2>
&lt;p>Mirror an image left and right.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -flop image_mirrored.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Or flip an image upside down.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -flip image_upside_down.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="crop-an-image">Crop an image&lt;/h2>
&lt;p>Crop image from top or bottom, where 60 is the number of pixels.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -gravity North -chop 0x60 cropped.png
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">convert image.png -gravity South -chop 0x60 cropped.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Or crop image from left or right.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -gravity East -chop 60x0 cropped.png
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">convert image.png -gravity West -chop 60x0 cropped.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Crop from centre of the image.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -gravity center -crop 640x360+0+0 cropped.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Or crop the image with offset from the top left corner, with the first number after the dimension being the horizontal offset, and the second number being the vertical offset.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert image.png -crop 640x360+390+248 cropped.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="image-gallery">Image gallery&lt;/h2>
&lt;p>Put 2 images side by side.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert left.png right.png +append combined.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Create a 4 images gallery.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">convert &lt;span class="se">\(&lt;/span> top_left.png top_right.png +append &lt;span class="se">\)&lt;/span> &lt;span class="se">\(&lt;/span> bottom_left.png bottom_right.png +append &lt;span class="se">\)&lt;/span> -append combined.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="remove-metadata">Remove metadata&lt;/h2>
&lt;p>Remove the metadata in place.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">mogrify -strip image.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="check-metadata">Check metadata&lt;/h2>
&lt;p>Check for Properties from the output of the following command.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">identify -verbose image.png
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Download YouTube Contents</title><link>https://alvinlaw.srht.site/en/blogs/download-youtube-contents/</link><pubDate>Sun, 05 Apr 2026 11:40:21 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/download-youtube-contents/</guid><description>&lt;h2 id="create-python-virtual-environment">Create python virtual environment&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">python3 -m venv yt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">source&lt;/span> yt/bin/activate
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="install-yt-dlp">Install yt-dlp&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">pip3 install yt-dlp
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="show-available-formats">Show available formats&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">yt-dlp -F &lt;span class="o">[&lt;/span>link&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="download-the-format">Download the format&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">yt-dlp -f &lt;span class="o">[&lt;/span>id&lt;span class="o">]&lt;/span> &lt;span class="o">[&lt;/span>link&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">yt-dlp -f &lt;span class="m">242&lt;/span> https://www.youtube.com/watch?v&lt;span class="o">=&lt;/span>example-link
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="download-audio-only">Download audio only&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">yt-dlp -x --audio-quality &lt;span class="m">0&lt;/span> &lt;span class="o">[&lt;/span>link&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Use FFmpeg to Edit Videos</title><link>https://alvinlaw.srht.site/en/blogs/ffmpeg/</link><pubDate>Thu, 02 Apr 2026 08:22:18 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/ffmpeg/</guid><description>&lt;h2 id="connect-videos">Connect videos&lt;/h2>
&lt;p>Run the following command to connect multiple videos together.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;file &amp;#39;video1.mp4&amp;#39;&amp;#34;&lt;/span> &amp;gt; video_list.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;file &amp;#39;video2.mp4&amp;#39;&amp;#34;&lt;/span> &amp;gt;&amp;gt; video_list.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;file &amp;#39;video3.mp4&amp;#39;&amp;#34;&lt;/span> &amp;gt;&amp;gt; video_list.txt
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ffmpeg -f concat -safe &lt;span class="m">0&lt;/span> -i video_list.txt -c copy output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This is extremely fast and there is no quality loss, because there is no transcoding.&lt;/p>
&lt;h2 id="remove-audio">Remove audio&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 -an output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="trim-videos">Trim videos&lt;/h2>
&lt;p>Trim video from 1:30 to 2:45.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 -ss 00:01:30 -to 00:02:45 -c copy output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Trim video from 1:30, to 60s afterwards.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 -ss 00:01:30 -t &lt;span class="m">60&lt;/span> -c copy output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="compress-videos">Compress videos&lt;/h2>
&lt;p>Choose a crf value from 18 to 28, with larger number = more compression.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 -vcodec libx265 -crf &lt;span class="m">28&lt;/span> output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Change frame rate to 24 fps.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 -r &lt;span class="m">24&lt;/span> -c:a copy output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Resize video to 1280:720&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">ffmpeg -i input.mp4 -vf &lt;span class="nv">scale&lt;/span>&lt;span class="o">=&lt;/span>1280:720 -c:a copy output.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Stop Using PowerPoint</title><link>https://alvinlaw.srht.site/en/blogs/latex-beamer/</link><pubDate>Thu, 26 Mar 2026 10:10:05 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/latex-beamer/</guid><description>&lt;p>I have seen enough people going up on stage, logging in to their gmail account to open up their PowerPoint or Google slides, only to find out that opening it up on lecture hall computer completely messes things up. You need to learn latex beamer, it will save you a lot of headache, and it is not even that hard. By the end of this tutorial, you will be able to understand how to create this template slides.&lt;/p>

&lt;iframe 
src="https://alvinlaw.srht.site/assets/pdf/blogs/latex-beamer/beamer.pdf" 
style="width:100%; aspect-ratio:16/11; border:none;">
&lt;/iframe>

&lt;h2 id="installation">Installation&lt;/h2>
&lt;p>On Debian based distros, install the full version with the following command.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">sudo apt install texlive-full
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This will install 8GB of packages! Or you may install only the most useful packages.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">sudo apt install biber texlive texlive-science &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> texlive-bibtex-extra texlive-latex-extra &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> texlive-pictures texlive-publishers &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> texlive-fonts-extra
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>For other distros, you will need to look up the package name.&lt;/p>
&lt;h2 id="your-first-latex-slides">Your first latex slides&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\documentclass&lt;/span>&lt;span class="na">[aspectratio=169]&lt;/span>&lt;span class="nb">{&lt;/span>beamer&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\usetheme&lt;/span>&lt;span class="nb">{&lt;/span>Madrid&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\title&lt;/span>&lt;span class="nb">{&lt;/span>Presentation Title&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\author&lt;/span>&lt;span class="nb">{&lt;/span>Your Name&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\institute&lt;/span>&lt;span class="nb">{&lt;/span>Your Institute&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\date&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="k">\today&lt;/span>&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>document&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\titlepage&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>document&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Here, copy your first latex slides, paste it in a file named &lt;code>beamer.tex&lt;/code>. Madrid is just a theme I like, you may find different themes &lt;a href="https://deic.uab.es/~iblanes/beamer_gallery/index_by_theme.html" target="_blank">here&lt;/a>. Then run the following command.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">pdflatex beamer.tex
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>A file called &lt;code>beamer.pdf&lt;/code> will be generated. To remove the footer and the icons, add the following code to the preamble&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\setbeamertemplate&lt;/span>&lt;span class="nb">{&lt;/span>footline&lt;span class="nb">}{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\setbeamertemplate&lt;/span>&lt;span class="nb">{&lt;/span>navigation symbols&lt;span class="nb">}{}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>This is the most basic setup with latex beamer. Each pages are enclosed by the &lt;code>\begin{frame}&lt;/code> and &lt;code>\end{frame}&lt;/code> tag, like the title page. Now, add the following code to create another page.&lt;/p>
&lt;h2 id="multilingual-support">Multilingual support&lt;/h2>
&lt;p>Let&amp;rsquo;s kick this off with multilingual support, if you only understand English, I am sorry for you bro, just skip to &lt;a href="https://alvinlaw.srht.site/en/blogs/latex-beamer/#lists">next section&lt;/a>. You will need to install a Unicode supported typesetting engine, and a language pack. I am going to show how to add Chinese characters as an example.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">sudo apt install texlive-xetex texlive-lang-chinese
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Add the following code to the preamble.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\usepackage&lt;/span>&lt;span class="nb">{&lt;/span>xeCJK&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\setCJKmainfont&lt;/span>&lt;span class="nb">{&lt;/span>Droid Sans Fallback&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>To find the available fonts on your system, run the following command.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">fc-list :lang&lt;span class="o">=&lt;/span>zh
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then, you will be able to add Chinese characters anywhere!&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Multilingual support 支持多種語言&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">在 beamer 展示其他語言很容易啊。
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">It&amp;#39;s easy to show other languages in beamer.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>To compile it to pdf, you will need to use xetex. Run the following command.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">xelatex beamer.tex
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If you are using Chinese characters to proceed, replace all of &lt;code>pdflatex&lt;/code> command by &lt;code>xelatex&lt;/code> in the reset of the tutorial.&lt;/p>
&lt;h2 id="lists">Lists&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Lists&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>itemize&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>itemize&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>enumerate&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Number 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Number 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Number 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>enumerate&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You may specify the title of the page at the end of &lt;code>\begin{frame}&lt;/code>. Create bullet points with &lt;code>itemize&lt;/code>, and numbered list with &lt;code>enumerate&lt;/code>.&lt;/p>
&lt;h2 id="maths-equations">Maths equations&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Maths equations&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>block&lt;span class="nb">}{&lt;/span>Important equation&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\int&lt;/span>&lt;span class="nb">_&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">^e &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="nv">\mathrm&lt;/span>&lt;span class="nb">{d}x}{x} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>block&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>alertblock&lt;span class="nb">}{&lt;/span>Even more important equation&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb"> e &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\sum&lt;/span>&lt;span class="nb">_{n&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^&lt;/span>&lt;span class="nv">\infty&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{n&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdot&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdot&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdot&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdots&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>alertblock&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In latex beamer, writing mathematics equations is automatically supported. You can just copy your equations from latex report to here! Enclose the equation with &lt;code>block&lt;/code> or &lt;code>alertblock&lt;/code> to make it looks important.&lt;/p>
&lt;h2 id="pictures">Pictures&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Pictures&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\centering&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\includegraphics&lt;/span>&lt;span class="na">[width=0.5\textwidth]&lt;/span>&lt;span class="nb">{&lt;/span>./latex.jpeg&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\caption&lt;/span>&lt;span class="nb">{&lt;/span>LaTeX logo&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\centering&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\includegraphics&lt;/span>&lt;span class="na">[trim={1.5cm 3cm 3cm 1.2cm}, clip, width=0.5\textwidth]&lt;/span>&lt;span class="nb">{&lt;/span>./latex.jpeg&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\caption&lt;/span>&lt;span class="nb">{&lt;/span>Cropped LaTeX logo&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>To add a picture, use the above template and change the relative path of the picture. It is also useful to crop the picture in place, adding &lt;code>trim={1.5cm 3cm 3cm 1.2cm}, clip&lt;/code> can crop the image, where the arguments specify cropping from left, bottom, right, and top respectively.&lt;/p>
&lt;h2 id="reference">Reference&lt;/h2>
&lt;p>To add references, create a file called &lt;code>citation.bib&lt;/code>, and paste the bibtex citation in it, it can usually be found on google scholar under cite. Here is a sample.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bibtex" data-lang="bibtex">&lt;span class="line">&lt;span class="cl">&lt;span class="nc">@article&lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="nl">dummy&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">title&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">{A Study on Generic Topics Drives Significant Findings}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">author&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">{Doe, John and Smith, Jane and Others, Anonymous}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">journal&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">{Journal of Generic Research}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">pages&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">{1--10}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">year&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">{2024}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">publisher&lt;/span>&lt;span class="p">=&lt;/span>&lt;span class="s">{Generic Publishing Group}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then add the following code to the preamble.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\usepackage&lt;/span>&lt;span class="na">[backend=biber, style=vancouver]&lt;/span>&lt;span class="nb">{&lt;/span>biblatex&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\addbibresource&lt;/span>&lt;span class="nb">{&lt;/span>citation.bib&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Add the following frame as the last slide.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>References&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\printbibliography&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Lastly, cite this in the slides. Here is an example.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 1 &lt;span class="k">\cite&lt;/span>&lt;span class="nb">{&lt;/span>dummy&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>To render the references in the slides, run the following command to generate &lt;code>beamer.aux&lt;/code> which allows you to inject references to it.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">pdflatex beamer.tex
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Then, run the following command to generate &lt;code>beamer.bbl&lt;/code>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-sh" data-lang="sh">&lt;span class="line">&lt;span class="cl">biber beamer
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Run &lt;code>pdflatex beamer.tex&lt;/code> 2 more times to first generate the references page, and then the inline citation. Once you have &lt;code>beamer.aux&lt;/code>, you will only need to first run &lt;code>biber beamer&lt;/code> and then &lt;code>pdflatex beamer.tex&lt;/code> to compile it.&lt;/p>
&lt;h2 id="full-sample">Full sample&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-latex" data-lang="latex">&lt;span class="line">&lt;span class="cl">&lt;span class="k">\documentclass&lt;/span>&lt;span class="na">[aspectratio=169]&lt;/span>&lt;span class="nb">{&lt;/span>beamer&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\usetheme&lt;/span>&lt;span class="nb">{&lt;/span>Madrid&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\setbeamertemplate&lt;/span>&lt;span class="nb">{&lt;/span>footline&lt;span class="nb">}{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\setbeamertemplate&lt;/span>&lt;span class="nb">{&lt;/span>navigation symbols&lt;span class="nb">}{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\usepackage&lt;/span>&lt;span class="na">[backend=biber, style=vancouver]&lt;/span>&lt;span class="nb">{&lt;/span>biblatex&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\addbibresource&lt;/span>&lt;span class="nb">{&lt;/span>citation.bib&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\title&lt;/span>&lt;span class="nb">{&lt;/span>Presentation Title&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\author&lt;/span>&lt;span class="nb">{&lt;/span>Your Name&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\institute&lt;/span>&lt;span class="nb">{&lt;/span>Your Institute&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\date&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="k">\today&lt;/span>&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>document&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\titlepage&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Lists&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>itemize&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 1 &lt;span class="k">\cite&lt;/span>&lt;span class="nb">{&lt;/span>dummy&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Point 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>itemize&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>enumerate&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Number 1
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Number 2
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\item&lt;/span> Number 3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>enumerate&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Maths equations&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>block&lt;span class="nb">}{&lt;/span>Important equation&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\int&lt;/span>&lt;span class="nb">_&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">^e &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="nv">\mathrm&lt;/span>&lt;span class="nb">{d}x}{x} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>block&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>alertblock&lt;span class="nb">}{&lt;/span>Even more important equation&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="sb">$$&lt;/span>&lt;span class="nb"> e &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\sum&lt;/span>&lt;span class="nb">_{n&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>&lt;span class="nb">}^&lt;/span>&lt;span class="nv">\infty&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{n&lt;/span>&lt;span class="o">!&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdot&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\frac&lt;/span>&lt;span class="nb">{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb">}{&lt;/span>&lt;span class="m">1&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdot&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">2&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdot&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="m">3&lt;/span>&lt;span class="nb">} &lt;/span>&lt;span class="o">+&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="nv">\cdots&lt;/span>&lt;span class="nb"> &lt;/span>&lt;span class="s">$$&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>alertblock&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>Pictures&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\centering&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\includegraphics&lt;/span>&lt;span class="na">[width=0.5\textwidth]&lt;/span>&lt;span class="nb">{&lt;/span>./latex.jpeg&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\caption&lt;/span>&lt;span class="nb">{&lt;/span>LaTeX logo&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\centering&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\includegraphics&lt;/span>&lt;span class="na">[trim={1.5cm 3cm 3cm 1.2cm}, clip, width=0.5\textwidth]&lt;/span>&lt;span class="nb">{&lt;/span>./latex.jpeg&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\caption&lt;/span>&lt;span class="nb">{&lt;/span>Cropped LaTeX logo&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>figure&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\begin&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}{&lt;/span>References&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\printbibliography&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>frame&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">\end&lt;/span>&lt;span class="nb">{&lt;/span>document&lt;span class="nb">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Creating Disposable VM with KVM</title><link>https://alvinlaw.srht.site/en/blogs/disposable-kvm/</link><pubDate>Sun, 15 Mar 2026 14:38:23 +0000</pubDate><guid>https://alvinlaw.srht.site/en/blogs/disposable-kvm/</guid><description>&lt;h2 id="use-case">Use case&lt;/h2>
&lt;p>Every changes in disposable vm (including changes in the root directory) will be gone in the next boot. Therefore, it is very useful when you want to test new software (potentially buggy) and don&amp;rsquo;t want to mess with your actual computer.&lt;/p>
&lt;h2 id="creating-disposable-vm">Creating disposable vm&lt;/h2>
&lt;h3 id="template-vm">Template vm&lt;/h3>
&lt;p>First, create a vm normally, this serves as a base of the disposable vm. Install software you want to use, and configure them to your preference. The software and the configurations will be available every time you boot up the disposable vm and are immutable from the disposable vm.&lt;/p>
&lt;h3 id="disposable-vm">Disposable vm&lt;/h3>
&lt;p>Open up virt manager, right click on the template vm, then click clone. In the pop-up window, uncheck cloning storage. After this, go to the edit menu, and click preferences. Enable XML editing in the pop-up window.&lt;/p>
&lt;p>&lt;img alt="add transient tag" src="https://alvinlaw.srht.site/assets/images/blogs/disposable-kvm/transient.webp">&lt;/p>
&lt;p>Open up the details page of the disposable vm in view menu. Under virtual disk, open XML tab, and add &lt;code>&amp;lt;transient/&amp;gt;&lt;/code>. Voilà! This is it, you can now turn on the disposable vm and try all the fun stuff like &lt;code>sudo rm /usr/bin/rm&lt;/code> without any consequences.&lt;/p>
&lt;h3 id="vm-without-internet-connection">vm without internet connection&lt;/h3>
&lt;p>&lt;img alt="remove network hardware" src="https://alvinlaw.srht.site/assets/images/blogs/disposable-kvm/network.webp">&lt;/p>
&lt;p>Sometimes, you may want to write some sensitive files to your computer, and you may not want the computer to connect to internet at all. This can also be easily achieved by removing the internet hardware of the vm. Now, when you turn on this vm, you literally can&amp;rsquo;t connect to internet in any way.&lt;/p>
&lt;h2 id="updating-disposable-vm">Updating disposable vm&lt;/h2>
&lt;p>Updating the disposable vm is very easy. Just update the template vm, all the changes will be available on the disposable vm. Remember to keep your footprint minimal in template vm, and do all the testings in the disposable vm.&lt;/p>

&lt;iframe id="odysee-iframe" style="width:100%; aspect-ratio:16 / 9;" src="https://odysee.com/%24/embed/%40alvinlaw%3Ad%2FCreating-Disposable-VM-with-KVM%3A3?r=FT5FkEugTKRFmcw4P5oB5Ud9KA9jFkj4" allowfullscreen>&lt;/iframe>
</description></item></channel></rss>