@fredlackey/devutils 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/README.md +5 -5
  2. package/package.json +1 -1
  3. package/src/commands/install.js +374 -36
  4. package/src/installs/adobe-creative-cloud.js +527 -25
  5. package/src/installs/adobe-creative-cloud.md +605 -0
  6. package/src/installs/appcleaner.js +303 -26
  7. package/src/installs/appcleaner.md +699 -0
  8. package/src/installs/apt-transport-https.js +390 -0
  9. package/src/installs/apt-transport-https.md +678 -0
  10. package/src/installs/atomicparsley.js +624 -26
  11. package/src/installs/atomicparsley.md +795 -0
  12. package/src/installs/aws-cli.js +779 -26
  13. package/src/installs/aws-cli.md +727 -0
  14. package/src/installs/balena-etcher.js +688 -26
  15. package/src/installs/balena-etcher.md +761 -0
  16. package/src/installs/bambu-studio.js +912 -26
  17. package/src/installs/bambu-studio.md +780 -0
  18. package/src/installs/bash-completion.js +554 -23
  19. package/src/installs/bash-completion.md +833 -0
  20. package/src/installs/bash.js +399 -26
  21. package/src/installs/bash.md +993 -0
  22. package/src/installs/beyond-compare.js +585 -26
  23. package/src/installs/beyond-compare.md +813 -0
  24. package/src/installs/build-essential.js +511 -26
  25. package/src/installs/build-essential.md +977 -0
  26. package/src/installs/ca-certificates.js +618 -0
  27. package/src/installs/ca-certificates.md +937 -0
  28. package/src/installs/caffeine.js +490 -26
  29. package/src/installs/caffeine.md +839 -0
  30. package/src/installs/camtasia.js +577 -25
  31. package/src/installs/camtasia.md +762 -0
  32. package/src/installs/chatgpt.js +458 -26
  33. package/src/installs/chatgpt.md +814 -0
  34. package/src/installs/chocolatey.js +447 -0
  35. package/src/installs/chocolatey.md +661 -0
  36. package/src/installs/chrome-canary.js +472 -26
  37. package/src/installs/chrome-canary.md +641 -0
  38. package/src/installs/chromium.js +645 -26
  39. package/src/installs/chromium.md +838 -0
  40. package/src/installs/claude-code.js +558 -26
  41. package/src/installs/claude-code.md +1173 -0
  42. package/src/installs/curl.js +361 -26
  43. package/src/installs/curl.md +714 -0
  44. package/src/installs/cursor.js +561 -26
  45. package/src/installs/cursor.md +970 -0
  46. package/src/installs/dbschema.js +674 -26
  47. package/src/installs/dbschema.md +925 -0
  48. package/src/installs/dependencies.md +435 -0
  49. package/src/installs/development-tools.js +600 -0
  50. package/src/installs/development-tools.md +977 -0
  51. package/src/installs/docker.js +1010 -25
  52. package/src/installs/docker.md +1109 -0
  53. package/src/installs/drawio.js +1001 -26
  54. package/src/installs/drawio.md +795 -0
  55. package/src/installs/elmedia-player.js +328 -25
  56. package/src/installs/elmedia-player.md +556 -0
  57. package/src/installs/ffmpeg.js +870 -25
  58. package/src/installs/ffmpeg.md +852 -0
  59. package/src/installs/file.js +464 -0
  60. package/src/installs/file.md +987 -0
  61. package/src/installs/gemini-cli.js +793 -26
  62. package/src/installs/gemini-cli.md +1153 -0
  63. package/src/installs/git.js +382 -26
  64. package/src/installs/git.md +907 -0
  65. package/src/installs/gitego.js +931 -26
  66. package/src/installs/gitego.md +1172 -0
  67. package/src/installs/go.js +913 -26
  68. package/src/installs/go.md +958 -0
  69. package/src/installs/google-chrome.js +801 -25
  70. package/src/installs/google-chrome.md +862 -0
  71. package/src/installs/gpg.js +412 -73
  72. package/src/installs/gpg.md +1056 -0
  73. package/src/installs/homebrew.js +1015 -26
  74. package/src/installs/homebrew.md +988 -0
  75. package/src/installs/imageoptim.js +950 -26
  76. package/src/installs/imageoptim.md +1119 -0
  77. package/src/installs/installers.json +2297 -0
  78. package/src/installs/jq.js +382 -26
  79. package/src/installs/jq.md +809 -0
  80. package/src/installs/keyboard-maestro.js +701 -26
  81. package/src/installs/keyboard-maestro.md +825 -0
  82. package/src/installs/latex.js +771 -26
  83. package/src/installs/latex.md +1095 -0
  84. package/src/installs/lftp.js +338 -26
  85. package/src/installs/lftp.md +907 -0
  86. package/src/installs/lsb-release.js +346 -0
  87. package/src/installs/lsb-release.md +814 -0
  88. package/src/installs/messenger.js +829 -26
  89. package/src/installs/messenger.md +900 -0
  90. package/src/installs/microsoft-office.js +550 -26
  91. package/src/installs/microsoft-office.md +760 -0
  92. package/src/installs/microsoft-teams.js +782 -25
  93. package/src/installs/microsoft-teams.md +886 -0
  94. package/src/installs/node.js +886 -26
  95. package/src/installs/node.md +1153 -0
  96. package/src/installs/nordpass.js +698 -26
  97. package/src/installs/nordpass.md +921 -0
  98. package/src/installs/nvm.js +977 -26
  99. package/src/installs/nvm.md +1057 -0
  100. package/src/installs/openssh.js +734 -64
  101. package/src/installs/openssh.md +1056 -0
  102. package/src/installs/pandoc.js +644 -26
  103. package/src/installs/pandoc.md +1036 -0
  104. package/src/installs/pinentry.js +492 -26
  105. package/src/installs/pinentry.md +1142 -0
  106. package/src/installs/pngyu.js +851 -26
  107. package/src/installs/pngyu.md +896 -0
  108. package/src/installs/postman.js +781 -26
  109. package/src/installs/postman.md +940 -0
  110. package/src/installs/procps.js +425 -0
  111. package/src/installs/procps.md +851 -0
  112. package/src/installs/safari-tech-preview.js +355 -25
  113. package/src/installs/safari-tech-preview.md +533 -0
  114. package/src/installs/sfnt2woff.js +640 -26
  115. package/src/installs/sfnt2woff.md +795 -0
  116. package/src/installs/shellcheck.js +463 -26
  117. package/src/installs/shellcheck.md +1005 -0
  118. package/src/installs/slack.js +722 -25
  119. package/src/installs/slack.md +865 -0
  120. package/src/installs/snagit.js +566 -25
  121. package/src/installs/snagit.md +844 -0
  122. package/src/installs/software-properties-common.js +372 -0
  123. package/src/installs/software-properties-common.md +805 -0
  124. package/src/installs/spotify.js +858 -25
  125. package/src/installs/spotify.md +901 -0
  126. package/src/installs/studio-3t.js +803 -26
  127. package/src/installs/studio-3t.md +918 -0
  128. package/src/installs/sublime-text.js +780 -25
  129. package/src/installs/sublime-text.md +914 -0
  130. package/src/installs/superwhisper.js +687 -25
  131. package/src/installs/superwhisper.md +630 -0
  132. package/src/installs/tailscale.js +727 -26
  133. package/src/installs/tailscale.md +1100 -0
  134. package/src/installs/tar.js +389 -0
  135. package/src/installs/tar.md +946 -0
  136. package/src/installs/termius.js +780 -26
  137. package/src/installs/termius.md +844 -0
  138. package/src/installs/terraform.js +761 -26
  139. package/src/installs/terraform.md +899 -0
  140. package/src/installs/tidal.js +752 -25
  141. package/src/installs/tidal.md +864 -0
  142. package/src/installs/tmux.js +328 -26
  143. package/src/installs/tmux.md +1030 -0
  144. package/src/installs/tree.js +393 -26
  145. package/src/installs/tree.md +833 -0
  146. package/src/installs/unzip.js +460 -0
  147. package/src/installs/unzip.md +879 -0
  148. package/src/installs/vim.js +403 -26
  149. package/src/installs/vim.md +1040 -0
  150. package/src/installs/vlc.js +803 -26
  151. package/src/installs/vlc.md +927 -0
  152. package/src/installs/vscode.js +825 -26
  153. package/src/installs/vscode.md +1002 -0
  154. package/src/installs/wget.js +415 -0
  155. package/src/installs/wget.md +791 -0
  156. package/src/installs/whatsapp.js +710 -25
  157. package/src/installs/whatsapp.md +854 -0
  158. package/src/installs/winpty.js +352 -0
  159. package/src/installs/winpty.md +620 -0
  160. package/src/installs/woff2.js +535 -26
  161. package/src/installs/woff2.md +977 -0
  162. package/src/installs/wsl.js +572 -0
  163. package/src/installs/wsl.md +699 -0
  164. package/src/installs/xcode-clt.js +520 -0
  165. package/src/installs/xcode-clt.md +351 -0
  166. package/src/installs/xcode.js +542 -26
  167. package/src/installs/xcode.md +573 -0
  168. package/src/installs/yarn.js +806 -26
  169. package/src/installs/yarn.md +1074 -0
  170. package/src/installs/yq.js +636 -26
  171. package/src/installs/yq.md +944 -0
  172. package/src/installs/yt-dlp.js +683 -26
  173. package/src/installs/yt-dlp.md +946 -0
  174. package/src/installs/yum-utils.js +297 -0
  175. package/src/installs/yum-utils.md +648 -0
  176. package/src/installs/zoom.js +740 -25
  177. package/src/installs/zoom.md +884 -0
  178. package/src/scripts/README.md +567 -45
  179. package/src/scripts/STATUS.md +208 -0
  180. package/src/scripts/afk.js +395 -7
  181. package/src/scripts/backup-all.js +731 -9
  182. package/src/scripts/backup-source.js +711 -8
  183. package/src/scripts/brewd.js +373 -7
  184. package/src/scripts/brewi.js +505 -9
  185. package/src/scripts/brewr.js +512 -9
  186. package/src/scripts/brews.js +462 -9
  187. package/src/scripts/brewu.js +488 -7
  188. package/src/scripts/c.js +185 -7
  189. package/src/scripts/ccurl.js +325 -8
  190. package/src/scripts/certbot-crontab-init.js +488 -8
  191. package/src/scripts/certbot-init.js +641 -9
  192. package/src/scripts/ch.js +339 -7
  193. package/src/scripts/claude-danger.js +253 -8
  194. package/src/scripts/clean-dev.js +419 -8
  195. package/src/scripts/clear-dns-cache.js +525 -7
  196. package/src/scripts/clone.js +417 -7
  197. package/src/scripts/code-all.js +420 -7
  198. package/src/scripts/count-files.js +195 -8
  199. package/src/scripts/count-folders.js +195 -8
  200. package/src/scripts/count.js +248 -8
  201. package/src/scripts/d.js +203 -7
  202. package/src/scripts/datauri.js +373 -8
  203. package/src/scripts/delete-files.js +363 -7
  204. package/src/scripts/docker-clean.js +410 -8
  205. package/src/scripts/dp.js +426 -7
  206. package/src/scripts/e.js +375 -9
  207. package/src/scripts/empty-trash.js +497 -7
  208. package/src/scripts/evm.js +428 -9
  209. package/src/scripts/fetch-github-repos.js +441 -10
  210. package/src/scripts/get-channel.js +329 -8
  211. package/src/scripts/get-course.js +384 -11
  212. package/src/scripts/get-dependencies.js +290 -9
  213. package/src/scripts/get-folder.js +783 -10
  214. package/src/scripts/get-tunes.js +411 -10
  215. package/src/scripts/get-video.js +352 -9
  216. package/src/scripts/git-backup.js +561 -9
  217. package/src/scripts/git-clone.js +477 -9
  218. package/src/scripts/git-pup.js +303 -7
  219. package/src/scripts/git-push.js +380 -8
  220. package/src/scripts/h.js +607 -9
  221. package/src/scripts/hide-desktop-icons.js +483 -7
  222. package/src/scripts/hide-hidden-files.js +522 -7
  223. package/src/scripts/install-dependencies-from.js +440 -9
  224. package/src/scripts/ips.js +647 -10
  225. package/src/scripts/iso.js +354 -8
  226. package/src/scripts/killni.js +561 -7
  227. package/src/scripts/ll.js +451 -8
  228. package/src/scripts/local-ip.js +310 -8
  229. package/src/scripts/m.js +508 -8
  230. package/src/scripts/map.js +293 -8
  231. package/src/scripts/mkd.js +287 -7
  232. package/src/scripts/ncu-update-all.js +441 -8
  233. package/src/scripts/nginx-init.js +702 -12
  234. package/src/scripts/npmi.js +366 -7
  235. package/src/scripts/o.js +495 -8
  236. package/src/scripts/org-by-date.js +321 -7
  237. package/src/scripts/p.js +208 -7
  238. package/src/scripts/packages.js +313 -8
  239. package/src/scripts/path.js +209 -7
  240. package/src/scripts/ports.js +582 -8
  241. package/src/scripts/q.js +290 -8
  242. package/src/scripts/refresh-files.js +378 -10
  243. package/src/scripts/remove-smaller-files.js +500 -8
  244. package/src/scripts/rename-files-with-date.js +517 -9
  245. package/src/scripts/resize-image.js +523 -9
  246. package/src/scripts/rm-safe.js +653 -8
  247. package/src/scripts/s.js +525 -9
  248. package/src/scripts/set-git-public.js +349 -7
  249. package/src/scripts/show-desktop-icons.js +459 -7
  250. package/src/scripts/show-hidden-files.js +456 -7
  251. package/src/scripts/tpa.js +265 -8
  252. package/src/scripts/tpo.js +264 -7
  253. package/src/scripts/u.js +489 -7
  254. package/src/scripts/vpush.js +422 -8
  255. package/src/scripts/y.js +267 -7
  256. package/src/utils/common/os.js +94 -2
  257. package/src/utils/ubuntu/apt.js +13 -7
  258. package/src/utils/windows/choco.js +82 -26
  259. package/src/utils/windows/winget.js +89 -27
@@ -0,0 +1,1095 @@
1
+ # Installing LaTeX (TeX Live)
2
+
3
+ ## Overview
4
+
5
+ LaTeX is a document preparation system widely used for scientific, technical, and academic writing. It excels at producing high-quality typeset documents, particularly those containing complex mathematical equations, tables, and cross-references. TeX Live is the standard, cross-platform distribution of LaTeX maintained by the TeX Users Group (TUG).
6
+
7
+ Key components included in TeX Live:
8
+
9
+ - **TeX/LaTeX engines**: pdfTeX, XeTeX, LuaTeX for document compilation
10
+ - **Macro packages**: Thousands of style files and document classes
11
+ - **Fonts**: Comprehensive font collections for professional typography
12
+ - **Utilities**: BibTeX for bibliographies, dvips, makeindex, and more
13
+ - **tlmgr**: TeX Live Manager for installing/updating packages
14
+
15
+ This guide documents TeX Live installation across all supported platforms.
16
+
17
+ ## Prerequisites
18
+
19
+ Before installing LaTeX on any platform, ensure:
20
+
21
+ 1. **Internet connectivity** - Required to download TeX Live packages (several gigabytes for full installation)
22
+ 2. **Administrative privileges** - Required for system-wide installation on most platforms
23
+ 3. **Sufficient disk space** - Full installation requires 7+ GB; basic installation requires approximately 300 MB
24
+ 4. **Time** - Full installation can take 30-60 minutes depending on network speed
25
+
26
+ ## Dependencies
27
+
28
+ ### macOS (Homebrew)
29
+ - **Required:**
30
+ - Homebrew - Install via `dev install homebrew` or `/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"`
31
+ - Internet connectivity - For downloading MacTeX packages (~4 GB)
32
+ - Command Line Tools for Xcode - Auto-installed by Homebrew if missing
33
+ - **Optional:** None
34
+ - **Auto-installed:**
35
+ - Perl - Included with macOS
36
+ - curl - Pre-installed on macOS
37
+
38
+ ### Ubuntu (APT/Snap)
39
+ - **Required:**
40
+ - sudo privileges - For APT package installation
41
+ - Internet connectivity - For downloading TeX Live packages (several GB)
42
+ - APT package manager - Pre-installed on Ubuntu
43
+ - **Optional:** None
44
+ - **Auto-installed:**
45
+ - Perl and Perl modules - Installed automatically as dependencies of `texlive-full`
46
+ - Font packages - Included in `texlive-full` metapackage
47
+ - Build tools - Installed as dependencies if needed
48
+
49
+ ### Raspberry Pi OS (APT/Snap)
50
+ - **Required:**
51
+ - sudo privileges - For APT package installation
52
+ - Internet connectivity - For downloading TeX Live packages (several GB)
53
+ - APT package manager - Pre-installed on Raspberry Pi OS
54
+ - High-quality SD card (Class 10+) or SSD - For acceptable installation performance
55
+ - **Optional:**
56
+ - Swap space (2+ GB) - For compiling complex documents on low-RAM devices (install via `fallocate` and `mkswap`)
57
+ - **Auto-installed:**
58
+ - Perl and Perl modules - Installed automatically as dependencies
59
+ - ARM-optimized packages - Handled by APT for ARM architecture
60
+ - Font packages - Included in `texlive-full` metapackage
61
+
62
+ ### Amazon Linux (DNF/YUM)
63
+ - **Required:**
64
+ - sudo privileges - For DNF/YUM package installation
65
+ - Internet connectivity - For downloading TeX Live packages
66
+ - DNF (AL2023/RHEL9) or YUM (AL2/RHEL8) - Pre-installed based on OS version
67
+ - **Optional:**
68
+ - Perl and perl-Digest-MD5 - Only required for native TUG installer (install via `sudo dnf install -y perl perl-Digest-MD5`)
69
+ - **Auto-installed:**
70
+ - Perl modules - Installed as package dependencies
71
+ - Font collections - Included in scheme-full or collection packages
72
+
73
+ ### Windows (Chocolatey/winget)
74
+ - **Required:**
75
+ - Chocolatey - Install via `dev install chocolatey` or PowerShell script from chocolatey.org
76
+ - Administrator privileges - For Chocolatey package installation
77
+ - Internet connectivity - For downloading TeX Live packages (~8 GB)
78
+ - PowerShell 5.0+ - Pre-installed on Windows 10/11
79
+ - **Optional:** None
80
+ - **Auto-installed:**
81
+ - Perl (Strawberry Perl) - Bundled with TeX Live Windows installation
82
+ - TeX Live utilities - Included in the texlive Chocolatey package
83
+ - Windows-specific binaries - Installed to `C:\texlive\<year>\bin\windows`
84
+
85
+ ### Git Bash (Manual/Portable)
86
+ - **Required:**
87
+ - Git Bash - Installed as part of Git for Windows
88
+ - Chocolatey on Windows host - For automated installation (install via `dev install chocolatey`)
89
+ - PowerShell - For Chocolatey interop from Git Bash (pre-installed on Windows 10/11)
90
+ - Administrator privileges - For system-wide installation via Chocolatey
91
+ - Internet connectivity - For downloading TeX Live packages (~8 GB)
92
+ - **Optional:**
93
+ - Perl for Windows - Only required for portable/manual TUG installer (download from strawberryperl.com or via `choco install strawberryperl`)
94
+ - **Auto-installed:**
95
+ - TeX Live binaries - Installed on Windows host, accessible via shared PATH
96
+ - Perl (Strawberry Perl) - Bundled with TeX Live Windows installation
97
+
98
+ ## Platform-Specific Installation
99
+
100
+ ### macOS (Homebrew)
101
+
102
+ #### Prerequisites
103
+
104
+ - macOS 10.14 (Mojave) or later
105
+ - Homebrew package manager installed
106
+ - At least 8 GB free disk space for full installation (300 MB for BasicTeX)
107
+ - Apple Silicon (M1/M2/M3/M4) or Intel processor
108
+
109
+ If Homebrew is not installed, install it first:
110
+
111
+ ```bash
112
+ NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
113
+ ```
114
+
115
+ #### Installation Steps
116
+
117
+ Run the following command to install the full MacTeX distribution (recommended):
118
+
119
+ ```bash
120
+ brew install --cask mactex-no-gui
121
+ ```
122
+
123
+ This installs the complete TeX Live distribution without GUI applications (TeXShop, BibDesk, etc.), which is ideal for command-line workflows and automation. The `--cask` flag specifies the graphical application installer format used for MacTeX.
124
+
125
+ **Note**: The installation takes 20-40 minutes and downloads approximately 4 GB of data. The `mactex-no-gui` cask runs non-interactively by default through Homebrew.
126
+
127
+ After installation completes, restart your terminal to update your PATH, or manually add the TeX binaries:
128
+
129
+ ```bash
130
+ eval "$(/usr/libexec/path_helper)"
131
+ ```
132
+
133
+ #### Verification
134
+
135
+ Confirm the installation succeeded:
136
+
137
+ ```bash
138
+ latex --version
139
+ ```
140
+
141
+ Expected output (version numbers may vary):
142
+
143
+ ```
144
+ pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2025)
145
+ kpathsea version 6.4.0
146
+ ...
147
+ ```
148
+
149
+ Test the installation by compiling a simple document:
150
+
151
+ ```bash
152
+ echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
153
+ pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
154
+ ```
155
+
156
+ If successful, a file `/tmp/test.pdf` will be created.
157
+
158
+ #### Troubleshooting
159
+
160
+ **Problem**: `latex: command not found` after installation
161
+
162
+ **Solution**: The PATH may not be updated. Either restart your terminal or run:
163
+
164
+ ```bash
165
+ eval "$(/usr/libexec/path_helper)"
166
+ ```
167
+
168
+ Verify the TeX binaries are in your PATH:
169
+
170
+ ```bash
171
+ ls /Library/TeX/texbin/
172
+ ```
173
+
174
+ If the directory exists, add it to your PATH manually:
175
+
176
+ ```bash
177
+ export PATH="/Library/TeX/texbin:$PATH"
178
+ ```
179
+
180
+ Add this line to your `~/.zshrc` or `~/.bash_profile` for persistence.
181
+
182
+ **Problem**: Installation fails with disk space error
183
+
184
+ **Solution**: MacTeX requires approximately 8 GB of free space. Free up disk space or use BasicTeX instead:
185
+
186
+ ```bash
187
+ brew install --cask basictex
188
+ ```
189
+
190
+ BasicTeX is a minimal distribution (~300 MB) that includes core LaTeX functionality. You can add packages later using `tlmgr`.
191
+
192
+ **Problem**: Permission denied errors during installation
193
+
194
+ **Solution**: Homebrew cask installations require your user password. Run the command in an interactive terminal. For fully automated scenarios, ensure your user has sudo privileges without password prompts for the installer.
195
+
196
+ ---
197
+
198
+ ### Ubuntu/Debian (APT)
199
+
200
+ #### Prerequisites
201
+
202
+ - Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
203
+ - sudo privileges
204
+ - At least 6 GB free disk space for full installation (300 MB for basic installation)
205
+
206
+ #### Installation Steps
207
+
208
+ Run the following commands to install the full TeX Live distribution:
209
+
210
+ ```bash
211
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
212
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full
213
+ ```
214
+
215
+ The `DEBIAN_FRONTEND=noninteractive` environment variable ensures the installation proceeds without prompts, and the `-y` flag automatically confirms package installation.
216
+
217
+ **Note**: The `texlive-full` metapackage installs the complete TeX Live distribution including all fonts, language support, and documentation. This can take 30-60 minutes and downloads several gigabytes of data.
218
+
219
+ For a smaller installation with core LaTeX functionality:
220
+
221
+ ```bash
222
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
223
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra
224
+ ```
225
+
226
+ #### Verification
227
+
228
+ Confirm the installation succeeded:
229
+
230
+ ```bash
231
+ latex --version
232
+ ```
233
+
234
+ Expected output (version numbers may vary):
235
+
236
+ ```
237
+ pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2023/Debian)
238
+ kpathsea version 6.3.5
239
+ ...
240
+ ```
241
+
242
+ Test the installation:
243
+
244
+ ```bash
245
+ echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
246
+ pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
247
+ ```
248
+
249
+ If successful, a file `/tmp/test.pdf` will be created.
250
+
251
+ #### Troubleshooting
252
+
253
+ **Problem**: `E: Unable to locate package texlive-full`
254
+
255
+ **Solution**: Update the package lists:
256
+
257
+ ```bash
258
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
259
+ ```
260
+
261
+ If the problem persists, check that the universe repository is enabled:
262
+
263
+ ```bash
264
+ sudo add-apt-repository universe -y
265
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
266
+ ```
267
+
268
+ **Problem**: Installation fails with "no space left on device"
269
+
270
+ **Solution**: The full TeX Live installation requires approximately 6 GB. Free up disk space or use a smaller installation:
271
+
272
+ ```bash
273
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-base
274
+ ```
275
+
276
+ **Problem**: Missing LaTeX packages when compiling documents
277
+
278
+ **Solution**: The base installation may not include all packages. Install additional packages:
279
+
280
+ ```bash
281
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-extra texlive-fonts-extra texlive-science
282
+ ```
283
+
284
+ **Problem**: Old TeX Live version in repository
285
+
286
+ **Solution**: Ubuntu and Debian repositories contain TeX Live versions that may be a few years behind the current release. For the latest version, use the native TeX Live installer from TUG (see the manual installation section in Git Bash).
287
+
288
+ ---
289
+
290
+ ### Raspberry Pi OS (APT)
291
+
292
+ #### Prerequisites
293
+
294
+ - Raspberry Pi OS (64-bit recommended) - Bookworm or Bullseye
295
+ - Raspberry Pi 3B+ or later (64-bit capable hardware recommended)
296
+ - At least 6 GB free disk space for full installation (300 MB for basic installation)
297
+ - At least 2 GB RAM (4 GB recommended for compiling complex documents)
298
+ - sudo privileges
299
+
300
+ First, verify your architecture:
301
+
302
+ ```bash
303
+ uname -m
304
+ ```
305
+
306
+ - `aarch64` = 64-bit (recommended)
307
+ - `armv7l` = 32-bit (supported but limited)
308
+
309
+ #### Installation Steps
310
+
311
+ Run the following commands to install the full TeX Live distribution:
312
+
313
+ ```bash
314
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
315
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full
316
+ ```
317
+
318
+ The installation is identical to Ubuntu/Debian since Raspberry Pi OS is Debian-based. The ARM architecture is fully supported.
319
+
320
+ **Note**: Installation on Raspberry Pi can be significantly slower than on desktop systems, especially when using an SD card. Expect 1-2 hours for the full installation. Using a high-quality SD card (Class 10 or faster) or an SSD/USB storage will improve performance.
321
+
322
+ For a faster installation with core LaTeX functionality:
323
+
324
+ ```bash
325
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
326
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-recommended texlive-fonts-recommended
327
+ ```
328
+
329
+ #### Verification
330
+
331
+ Confirm the installation succeeded:
332
+
333
+ ```bash
334
+ latex --version
335
+ ```
336
+
337
+ Expected output (version numbers may vary):
338
+
339
+ ```
340
+ pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2023/Debian)
341
+ kpathsea version 6.3.5
342
+ ...
343
+ ```
344
+
345
+ Test the installation:
346
+
347
+ ```bash
348
+ echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
349
+ pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
350
+ ```
351
+
352
+ If successful, a file `/tmp/test.pdf` will be created.
353
+
354
+ #### Troubleshooting
355
+
356
+ **Problem**: Installation extremely slow
357
+
358
+ **Solution**: Raspberry Pi SD cards can be slow for large installations. Consider:
359
+
360
+ 1. Using a faster SD card (Class 10 or UHS-I)
361
+ 2. Booting from USB/SSD instead of SD card
362
+ 3. Installing the minimal TeX Live package first:
363
+
364
+ ```bash
365
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-base
366
+ ```
367
+
368
+ **Problem**: Out of memory errors during document compilation
369
+
370
+ **Solution**: Add swap space to handle memory-intensive compilations:
371
+
372
+ ```bash
373
+ sudo fallocate -l 2G /swapfile
374
+ sudo chmod 600 /swapfile
375
+ sudo mkswap /swapfile
376
+ sudo swapon /swapfile
377
+ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
378
+ ```
379
+
380
+ **Problem**: "no space left on device" error
381
+
382
+ **Solution**: The full installation requires approximately 6 GB. Check available space:
383
+
384
+ ```bash
385
+ df -h /
386
+ ```
387
+
388
+ Free up space or use a minimal installation:
389
+
390
+ ```bash
391
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-base
392
+ ```
393
+
394
+ **Problem**: ARM-specific font rendering issues
395
+
396
+ **Solution**: Install additional font packages:
397
+
398
+ ```bash
399
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-fonts-extra fonts-liberation
400
+ ```
401
+
402
+ ---
403
+
404
+ ### Amazon Linux/RHEL (DNF/YUM)
405
+
406
+ #### Prerequisites
407
+
408
+ - Amazon Linux 2023 (AL2023), Amazon Linux 2 (AL2), RHEL 8/9, or CentOS Stream
409
+ - sudo privileges
410
+ - At least 6 GB free disk space for full installation
411
+
412
+ **Note**: Amazon Linux 2023 and RHEL 9 use DNF as the package manager. Amazon Linux 2 and RHEL 7/8 use YUM. The commands below use DNF; for older systems, replace `dnf` with `yum`.
413
+
414
+ #### Installation Steps
415
+
416
+ **For Amazon Linux 2023 and RHEL 9:**
417
+
418
+ Run the following commands to install TeX Live:
419
+
420
+ ```bash
421
+ sudo dnf install -y texlive-scheme-full
422
+ ```
423
+
424
+ This installs the full TeX Live distribution. The `-y` flag automatically confirms the installation without prompts.
425
+
426
+ **Note**: The `texlive-scheme-full` package may not be available in all repositories. If unavailable, install the available TeX Live packages:
427
+
428
+ ```bash
429
+ sudo dnf install -y texlive texlive-latex texlive-xetex texlive-collection-latexrecommended texlive-collection-fontsrecommended
430
+ ```
431
+
432
+ **For Amazon Linux 2:**
433
+
434
+ ```bash
435
+ sudo yum install -y texlive texlive-latex texlive-xetex
436
+ ```
437
+
438
+ Amazon Linux 2 has a more limited TeX Live package selection. For additional packages:
439
+
440
+ ```bash
441
+ sudo yum install -y texlive-collection-latexrecommended texlive-collection-fontsrecommended
442
+ ```
443
+
444
+ #### Verification
445
+
446
+ Confirm the installation succeeded:
447
+
448
+ ```bash
449
+ latex --version
450
+ ```
451
+
452
+ Expected output (version numbers may vary):
453
+
454
+ ```
455
+ pdfTeX 3.141592653-2.6-1.40.25 (TeX Live 2024)
456
+ kpathsea version 6.3.5
457
+ ...
458
+ ```
459
+
460
+ Test the installation:
461
+
462
+ ```bash
463
+ echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
464
+ pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
465
+ ```
466
+
467
+ If successful, a file `/tmp/test.pdf` will be created.
468
+
469
+ #### Troubleshooting
470
+
471
+ **Problem**: `No match for argument: texlive-scheme-full`
472
+
473
+ **Solution**: The full scheme may not be available. Install core packages individually:
474
+
475
+ ```bash
476
+ sudo dnf install -y texlive texlive-latex texlive-xetex texlive-collection-latex texlive-collection-latexrecommended
477
+ ```
478
+
479
+ **Problem**: Missing LaTeX packages when compiling documents
480
+
481
+ **Solution**: Install additional collections as needed:
482
+
483
+ ```bash
484
+ sudo dnf install -y texlive-collection-latexextra texlive-collection-fontsextra texlive-collection-science
485
+ ```
486
+
487
+ Or use `tlmgr` to install specific packages (if native TeX Live is installed):
488
+
489
+ ```bash
490
+ sudo tlmgr install <package-name>
491
+ ```
492
+
493
+ **Problem**: TeX Live version is older than expected
494
+
495
+ **Solution**: Amazon Linux and RHEL prioritize stability over currency. For the latest TeX Live version, use the native installer from TUG:
496
+
497
+ ```bash
498
+ cd /tmp
499
+ curl -L -o install-tl-unx.tar.gz https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
500
+ tar -xzf install-tl-unx.tar.gz
501
+ cd install-tl-*/
502
+ perl ./install-tl --no-interaction --scheme=full
503
+ ```
504
+
505
+ Then add to PATH:
506
+
507
+ ```bash
508
+ echo 'export PATH="/usr/local/texlive/2025/bin/x86_64-linux:$PATH"' >> ~/.bashrc
509
+ source ~/.bashrc
510
+ ```
511
+
512
+ **Problem**: Perl dependencies missing for native installer
513
+
514
+ **Solution**: Install Perl and required modules:
515
+
516
+ ```bash
517
+ sudo dnf install -y perl perl-Digest-MD5
518
+ ```
519
+
520
+ ---
521
+
522
+ ### Windows (Chocolatey)
523
+
524
+ #### Prerequisites
525
+
526
+ - Windows 10 or Windows 11 (64-bit)
527
+ - Administrator PowerShell or Command Prompt
528
+ - Chocolatey package manager installed
529
+ - At least 8 GB free disk space for full installation
530
+ - Stable internet connection (installation downloads several gigabytes)
531
+
532
+ If Chocolatey is not installed, install it first by running this command in an Administrator PowerShell:
533
+
534
+ ```powershell
535
+ Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
536
+ ```
537
+
538
+ #### Installation Steps
539
+
540
+ Run the following command in an Administrator PowerShell or Command Prompt to install TeX Live:
541
+
542
+ ```powershell
543
+ choco install texlive -y --params="'/scheme:full'"
544
+ ```
545
+
546
+ The `-y` flag automatically confirms all prompts. The `/scheme:full` parameter installs the complete TeX Live distribution.
547
+
548
+ **Note**: The full installation takes 45-90 minutes depending on network speed and system performance. TeX Live installs to `C:\texlive\<year>` by default.
549
+
550
+ For a smaller, faster installation with basic LaTeX functionality:
551
+
552
+ ```powershell
553
+ choco install texlive -y --params="'/scheme:basic'"
554
+ ```
555
+
556
+ After installation completes, restart your terminal or PowerShell to update the PATH.
557
+
558
+ #### Verification
559
+
560
+ Open a new Command Prompt or PowerShell window, then run:
561
+
562
+ ```powershell
563
+ latex --version
564
+ ```
565
+
566
+ Expected output (version numbers may vary):
567
+
568
+ ```
569
+ pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2025/W32TeX)
570
+ kpathsea version 6.4.0
571
+ ...
572
+ ```
573
+
574
+ Test the installation:
575
+
576
+ ```powershell
577
+ echo \documentclass{article}\begin{document}Hello, LaTeX!\end{document} > %TEMP%\test.tex
578
+ pdflatex -interaction=nonstopmode -output-directory=%TEMP% %TEMP%\test.tex
579
+ ```
580
+
581
+ If successful, a file `%TEMP%\test.pdf` will be created.
582
+
583
+ #### Troubleshooting
584
+
585
+ **Problem**: `latex is not recognized as an internal or external command`
586
+
587
+ **Solution**: The PATH may not be updated. Restart your terminal. If the problem persists, add TeX Live to PATH manually:
588
+
589
+ 1. Find your TeX Live installation (usually `C:\texlive\2025\bin\windows`)
590
+ 2. Add to PATH in System Properties > Environment Variables
591
+
592
+ Or run from PowerShell:
593
+
594
+ ```powershell
595
+ $env:Path += ";C:\texlive\2025\bin\windows"
596
+ ```
597
+
598
+ **Problem**: Installation times out
599
+
600
+ **Solution**: TeX Live installation can take over an hour. Increase the Chocolatey timeout:
601
+
602
+ ```powershell
603
+ choco install texlive -y --params="'/scheme:full'" --execution-timeout=7200
604
+ ```
605
+
606
+ **Problem**: Installation fails with network errors
607
+
608
+ **Solution**: TeX Live downloads packages from CTAN mirrors. If mirrors are slow:
609
+
610
+ 1. Retry the installation
611
+ 2. Use a different network
612
+ 3. Consider installing during off-peak hours
613
+
614
+ **Problem**: "Access denied" errors during installation
615
+
616
+ **Solution**: Ensure you are running PowerShell or Command Prompt as Administrator. Right-click the application and select "Run as administrator".
617
+
618
+ **Problem**: Disk space issues
619
+
620
+ **Solution**: The full TeX Live installation requires approximately 8 GB. Check available space:
621
+
622
+ ```powershell
623
+ Get-PSDrive C | Select-Object Used,Free
624
+ ```
625
+
626
+ Use the basic scheme if space is limited:
627
+
628
+ ```powershell
629
+ choco install texlive -y --params="'/scheme:basic'"
630
+ ```
631
+
632
+ ---
633
+
634
+ ### WSL (Ubuntu)
635
+
636
+ #### Prerequisites
637
+
638
+ - Windows 10 version 2004 or higher, or Windows 11
639
+ - WSL 2 enabled with Ubuntu distribution installed
640
+ - sudo privileges within WSL
641
+ - At least 6 GB free disk space in WSL
642
+
643
+ #### Installation Steps
644
+
645
+ Run these commands in your WSL Ubuntu terminal:
646
+
647
+ ```bash
648
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
649
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-full
650
+ ```
651
+
652
+ The installation is identical to native Ubuntu since WSL runs a full Ubuntu userspace.
653
+
654
+ **Note**: The installation downloads and extracts several gigabytes of data. Ensure your WSL has sufficient disk space. By default, WSL uses a virtual disk that can grow, but you may need to compact it periodically.
655
+
656
+ For a smaller installation:
657
+
658
+ ```bash
659
+ sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
660
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-latex-recommended texlive-fonts-recommended texlive-latex-extra
661
+ ```
662
+
663
+ #### Verification
664
+
665
+ Confirm the installation succeeded:
666
+
667
+ ```bash
668
+ latex --version
669
+ ```
670
+
671
+ Expected output (version numbers may vary):
672
+
673
+ ```
674
+ pdfTeX 3.141592653-2.6-1.40.24 (TeX Live 2023/Debian)
675
+ kpathsea version 6.3.5
676
+ ...
677
+ ```
678
+
679
+ Test the installation:
680
+
681
+ ```bash
682
+ echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
683
+ pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
684
+ ```
685
+
686
+ If successful, a file `/tmp/test.pdf` will be created.
687
+
688
+ To view the PDF from WSL, copy it to a Windows-accessible location:
689
+
690
+ ```bash
691
+ cp /tmp/test.pdf /mnt/c/Users/$USER/Desktop/
692
+ ```
693
+
694
+ #### Troubleshooting
695
+
696
+ **Problem**: Installation very slow
697
+
698
+ **Solution**: WSL disk I/O can be slower than native Linux. The TeX Live installation involves many small files. Be patient, or use a minimal installation first.
699
+
700
+ **Problem**: "no space left on device" error
701
+
702
+ **Solution**: WSL virtual disks have limited default sizes. Check available space:
703
+
704
+ ```bash
705
+ df -h /
706
+ ```
707
+
708
+ Compact the WSL virtual disk from Windows PowerShell (run as Administrator):
709
+
710
+ ```powershell
711
+ wsl --shutdown
712
+ Optimize-VHD -Path "$env:LOCALAPPDATA\Packages\CanonicalGroupLimited.Ubuntu*\LocalState\ext4.vhdx" -Mode Full
713
+ ```
714
+
715
+ **Problem**: PDF viewers not available in WSL
716
+
717
+ **Solution**: WSL is primarily a command-line environment. View PDFs using Windows applications:
718
+
719
+ ```bash
720
+ # Copy to Windows and open with default viewer
721
+ cp /tmp/test.pdf /mnt/c/Users/$USER/Desktop/
722
+ cmd.exe /c start "" "C:\\Users\\$USER\\Desktop\\test.pdf"
723
+ ```
724
+
725
+ Or install a WSL-compatible PDF viewer with X server support.
726
+
727
+ **Problem**: Missing fonts in compiled documents
728
+
729
+ **Solution**: Install additional font packages:
730
+
731
+ ```bash
732
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-fonts-extra fonts-liberation fonts-dejavu
733
+ ```
734
+
735
+ ---
736
+
737
+ ### Git Bash (Manual/Portable)
738
+
739
+ #### Prerequisites
740
+
741
+ - Windows 10 or Windows 11 (64-bit)
742
+ - Git Bash installed (comes with Git for Windows)
743
+ - Administrator privileges for system-wide installation, or write access to installation directory for portable installation
744
+ - At least 8 GB free disk space for full installation
745
+
746
+ **Note**: Git Bash on Windows shares the Windows PATH, so installing TeX Live on Windows makes it available in Git Bash automatically. The recommended approach is to use the Chocolatey installation method (see Windows section). This section documents accessing TeX Live from Git Bash after Windows installation.
747
+
748
+ #### Installation Steps
749
+
750
+ **Recommended: Install TeX Live via Chocolatey (see Windows section)**
751
+
752
+ After installing TeX Live on Windows using Chocolatey, the `latex` command will be available in Git Bash once you restart the terminal.
753
+
754
+ **Alternative: Manual PATH Configuration**
755
+
756
+ If TeX Live was installed manually or the PATH is not configured automatically, add TeX Live to your Git Bash PATH.
757
+
758
+ Create or edit `~/.bashrc`:
759
+
760
+ ```bash
761
+ echo 'export PATH="/c/texlive/2025/bin/windows:$PATH"' >> ~/.bashrc
762
+ source ~/.bashrc
763
+ ```
764
+
765
+ Adjust the path according to your TeX Live installation location. Common locations:
766
+
767
+ - `C:\texlive\2025\bin\windows` (Chocolatey installation)
768
+ - `C:\texlive\2025\bin\win64` (Manual installation)
769
+
770
+ **Portable Installation for Git Bash:**
771
+
772
+ For a truly portable setup (e.g., on a USB drive), download and install TeX Live with the portable option:
773
+
774
+ 1. Download the TeX Live installer from a Windows Command Prompt or PowerShell:
775
+
776
+ ```powershell
777
+ curl -L -o "%TEMP%\install-tl.zip" https://mirror.ctan.org/systems/texlive/tlnet/install-tl.zip
778
+ cd %TEMP%
779
+ tar -xf install-tl.zip
780
+ cd install-tl-*
781
+ ```
782
+
783
+ 2. Run the installer with portable flag:
784
+
785
+ ```powershell
786
+ perl install-tl -no-gui -portable -scheme full
787
+ ```
788
+
789
+ 3. Configure Git Bash to use the portable installation by adding to `~/.bashrc`:
790
+
791
+ ```bash
792
+ echo 'export PATH="/c/path/to/portable/texlive/bin/windows:$PATH"' >> ~/.bashrc
793
+ source ~/.bashrc
794
+ ```
795
+
796
+ #### Verification
797
+
798
+ Open Git Bash and confirm the installation:
799
+
800
+ ```bash
801
+ latex --version
802
+ ```
803
+
804
+ Expected output (version numbers may vary):
805
+
806
+ ```
807
+ pdfTeX 3.141592653-2.6-1.40.26 (TeX Live 2025)
808
+ kpathsea version 6.4.0
809
+ ...
810
+ ```
811
+
812
+ Test the installation:
813
+
814
+ ```bash
815
+ echo '\documentclass{article}\begin{document}Hello, LaTeX!\end{document}' > /tmp/test.tex
816
+ pdflatex -interaction=nonstopmode -output-directory=/tmp /tmp/test.tex
817
+ ```
818
+
819
+ If successful, a file `/tmp/test.pdf` will be created.
820
+
821
+ #### Troubleshooting
822
+
823
+ **Problem**: `latex: command not found` in Git Bash
824
+
825
+ **Solution**: The PATH may not include TeX Live. Check if TeX Live is installed on Windows:
826
+
827
+ ```bash
828
+ ls "/c/texlive/"
829
+ ```
830
+
831
+ If the directory exists, add it to your PATH:
832
+
833
+ ```bash
834
+ export PATH="/c/texlive/2025/bin/windows:$PATH"
835
+ ```
836
+
837
+ Add this line to `~/.bashrc` for persistence.
838
+
839
+ **Problem**: Path conversion issues with Git Bash
840
+
841
+ **Solution**: Git Bash automatically converts Unix-style paths to Windows paths, which can sometimes cause issues. Use Windows-style paths with forward slashes:
842
+
843
+ ```bash
844
+ pdflatex -output-directory=C:/Users/$USER/Documents C:/Users/$USER/Documents/test.tex
845
+ ```
846
+
847
+ Or disable path conversion temporarily:
848
+
849
+ ```bash
850
+ MSYS_NO_PATHCONV=1 pdflatex -output-directory=/c/Users/$USER/Documents /c/Users/$USER/Documents/test.tex
851
+ ```
852
+
853
+ **Problem**: TeX Live commands work in Command Prompt but not Git Bash
854
+
855
+ **Solution**: Git Bash may not inherit the Windows PATH correctly. Verify PATH includes TeX Live:
856
+
857
+ ```bash
858
+ echo $PATH | tr ':' '\n' | grep -i texlive
859
+ ```
860
+
861
+ If not found, add manually to `~/.bashrc`:
862
+
863
+ ```bash
864
+ echo 'export PATH="$PATH:/c/texlive/2025/bin/windows"' >> ~/.bashrc
865
+ source ~/.bashrc
866
+ ```
867
+
868
+ **Problem**: `kpathsea` database not found errors
869
+
870
+ **Solution**: Run the TeX Live font map update:
871
+
872
+ ```bash
873
+ mktexlsr
874
+ updmap-sys
875
+ ```
876
+
877
+ ---
878
+
879
+ ## Post-Installation Configuration
880
+
881
+ After installing TeX Live on any platform, consider these optional but recommended configurations.
882
+
883
+ ### Updating TeX Live Packages
884
+
885
+ TeX Live includes `tlmgr` (TeX Live Manager) for updating packages:
886
+
887
+ ```bash
888
+ # Update tlmgr itself first (Linux/macOS may require sudo)
889
+ sudo tlmgr update --self
890
+
891
+ # Update all packages
892
+ sudo tlmgr update --all
893
+ ```
894
+
895
+ On macOS with Homebrew-installed MacTeX, use:
896
+
897
+ ```bash
898
+ sudo tlmgr update --self --all
899
+ ```
900
+
901
+ **Note**: Distribution-packaged TeX Live (apt, dnf) may not include a functional `tlmgr`. Use the distribution's package manager for updates instead, or install TeX Live directly from TUG.
902
+
903
+ ### Installing Additional Packages
904
+
905
+ Install specific LaTeX packages using `tlmgr`:
906
+
907
+ ```bash
908
+ # Install a single package
909
+ sudo tlmgr install <package-name>
910
+
911
+ # Install multiple packages
912
+ sudo tlmgr install package1 package2 package3
913
+
914
+ # Search for packages
915
+ tlmgr search <search-term>
916
+ ```
917
+
918
+ For distribution-packaged TeX Live, use the system package manager:
919
+
920
+ ```bash
921
+ # Ubuntu/Debian
922
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-<package-collection>
923
+
924
+ # Amazon Linux/RHEL
925
+ sudo dnf install -y texlive-<package-collection>
926
+ ```
927
+
928
+ ### Configuring Default Paper Size
929
+
930
+ Set the default paper size (letter or a4):
931
+
932
+ ```bash
933
+ # For US Letter (8.5" x 11")
934
+ sudo tlmgr paper letter
935
+
936
+ # For A4 (210mm x 297mm)
937
+ sudo tlmgr paper a4
938
+ ```
939
+
940
+ ### Setting Up Editor Integration
941
+
942
+ Popular LaTeX editors and their integration methods:
943
+
944
+ - **VS Code**: Install the "LaTeX Workshop" extension
945
+ - **Sublime Text**: Install the "LaTeXTools" package
946
+ - **Vim**: Use "vimtex" plugin
947
+ - **Emacs**: Use AUCTeX package
948
+
949
+ Verify your editor can find the LaTeX binaries by ensuring the PATH is correctly set.
950
+
951
+ ---
952
+
953
+ ## Common Issues
954
+
955
+ ### Issue: "LaTeX Error: File `<package>.sty' not found"
956
+
957
+ **Symptoms**: Compilation fails because a required style file is missing.
958
+
959
+ **Solutions**:
960
+
961
+ Find and install the missing package:
962
+
963
+ ```bash
964
+ # Search for the package
965
+ tlmgr search --global --file <package>.sty
966
+
967
+ # Install the package
968
+ sudo tlmgr install <package-name>
969
+ ```
970
+
971
+ For distribution-packaged TeX Live:
972
+
973
+ ```bash
974
+ # Ubuntu/Debian
975
+ apt-cache search <package>
976
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y <texlive-package>
977
+ ```
978
+
979
+ ### Issue: Font-Related Errors
980
+
981
+ **Symptoms**: "Font ... not found" or poor-quality fonts in output.
982
+
983
+ **Solutions**:
984
+
985
+ Update the font maps:
986
+
987
+ ```bash
988
+ sudo updmap-sys
989
+ ```
990
+
991
+ Install additional font packages:
992
+
993
+ ```bash
994
+ # With tlmgr
995
+ sudo tlmgr install collection-fontsrecommended collection-fontsextra
996
+
997
+ # Ubuntu/Debian
998
+ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y texlive-fonts-recommended texlive-fonts-extra
999
+ ```
1000
+
1001
+ ### Issue: Compilation Hangs or Takes Forever
1002
+
1003
+ **Symptoms**: `pdflatex` or `latex` command hangs without producing output.
1004
+
1005
+ **Solutions**:
1006
+
1007
+ Use non-interactive mode to prevent prompts:
1008
+
1009
+ ```bash
1010
+ pdflatex -interaction=nonstopmode document.tex
1011
+ ```
1012
+
1013
+ Or use batchmode for even less output:
1014
+
1015
+ ```bash
1016
+ pdflatex -interaction=batchmode document.tex
1017
+ ```
1018
+
1019
+ ### Issue: "I can't write on file" Errors
1020
+
1021
+ **Symptoms**: TeX cannot create output files.
1022
+
1023
+ **Solutions**:
1024
+
1025
+ Ensure you have write permissions to the output directory:
1026
+
1027
+ ```bash
1028
+ # Specify output directory explicitly
1029
+ pdflatex -output-directory=/path/to/writable/dir document.tex
1030
+ ```
1031
+
1032
+ Check disk space:
1033
+
1034
+ ```bash
1035
+ df -h .
1036
+ ```
1037
+
1038
+ ### Issue: BibTeX/Bibliography Not Working
1039
+
1040
+ **Symptoms**: Citations show as "[?]" or bibliography is missing.
1041
+
1042
+ **Solutions**:
1043
+
1044
+ Run the full compilation sequence:
1045
+
1046
+ ```bash
1047
+ pdflatex document.tex
1048
+ bibtex document
1049
+ pdflatex document.tex
1050
+ pdflatex document.tex
1051
+ ```
1052
+
1053
+ Or use `latexmk` for automatic compilation:
1054
+
1055
+ ```bash
1056
+ latexmk -pdf document.tex
1057
+ ```
1058
+
1059
+ ### Issue: Special Characters or Unicode Not Rendering
1060
+
1061
+ **Symptoms**: Non-ASCII characters appear as boxes or cause errors.
1062
+
1063
+ **Solutions**:
1064
+
1065
+ Use XeLaTeX or LuaLaTeX instead of pdfLaTeX for better Unicode support:
1066
+
1067
+ ```bash
1068
+ xelatex document.tex
1069
+ # or
1070
+ lualatex document.tex
1071
+ ```
1072
+
1073
+ Add these packages to your document preamble:
1074
+
1075
+ ```latex
1076
+ \usepackage[utf8]{inputenc}
1077
+ \usepackage[T1]{fontenc}
1078
+ ```
1079
+
1080
+ ---
1081
+
1082
+ ## References
1083
+
1084
+ - [TeX Live Official Documentation](https://www.tug.org/texlive/doc.html)
1085
+ - [TeX Live Quick Install Guide](https://www.tug.org/texlive/quickinstall.html)
1086
+ - [TeX Users Group (TUG)](https://www.tug.org/)
1087
+ - [CTAN - Comprehensive TeX Archive Network](https://ctan.org/)
1088
+ - [MacTeX Distribution](https://www.tug.org/mactex/)
1089
+ - [MacTeX Homebrew Cask](https://formulae.brew.sh/cask/mactex)
1090
+ - [BasicTeX Homebrew Cask](https://formulae.brew.sh/cask/basictex)
1091
+ - [Ubuntu LaTeX Community Wiki](https://help.ubuntu.com/community/LaTeX)
1092
+ - [TeX Live Chocolatey Package](https://community.chocolatey.org/packages/texlive)
1093
+ - [tlmgr - TeX Live Manager Documentation](https://www.tug.org/texlive/tlmgr.html)
1094
+ - [LaTeX Project](https://www.latex-project.org/)
1095
+ - [TeX Live Portable Installation](https://www.tug.org/texlive/portable.html)