- The backward-compatible
TinyTeX.tar.gz(Linux) andTinyTeX.tgz(macOS) bundles are now truly gzip-compressed instead of being XZ-compressed copies with misleading extensions. Backward-compatible copies are only provided for theTinyTeXbundle (used by Quarto'squarto install tinytex), not forTinyTeX-0,TinyTeX-1, orTinyTeX-2(thanks, @knstmrd @pebenbow, rstudio/tinytex-releases#58).
-
Fixed font package detection for fonts with spaces in their names (e.g., "Noto Emoji", "DejaVu Sans"). Previously,
latexmk()failed to automatically install the missing font package because the search pattern preserved the space, but font files never have spaces in their names (thanks, @cderv, #478, #479). -
Added detection for PDF/A errors and automatic installation of the latex-lab package when
\DocumentMetadatasupport files are missing (thanks, @cderv). -
Added the colorprofiles, latex-lab, and pdfmanagement-testphase packages to the
TinyTeXbundle to better support PDF/A document compilation (thanks, @cderv, @gordonwoodhull, #481, #482). -
Support TeX Live on macOS when symlinks are installed to
/Library/TeX/texbin(a standard MacTeX-style installation), so that users no longer need to manually adjustPATH. -
TinyTeX prebuilt binaries are now provided for ARM64 Linux (
aarch64) (thanks, @edavidaja, #483). -
TinyTeX prebuilt binaries are now provided for x86_64 musl Linux (Alpine Linux and other musl-based distributions), so Docker/Alpine users can install TinyTeX with a fast binary download instead of a slow source build (#485, #487).
-
The TinyTeX release binary naming scheme has been updated to
TinyTeX-{N}-{os}[-{arch}].{ext}(e.g.,TinyTeX-1-linux-x86_64.tar.xz,TinyTeX-1-linux-arm64.tar.xz,TinyTeX-1-darwin.tar.xz). Old-style names remain available as backward-compatible copies (#484). -
install_tinytex()andinstall-bin-unix.shnow automatically detect and use the new naming scheme for versions after2026.03.02, and fall back to the old naming for older versions. -
The default CTAN repository is now
https://tlnet.yihui.org(a CDN-based mirror hosted on Cloudflare). If this is not accessible, the installer falls back tohttps://mirror.ctan.org. -
The Windows installation scripts (
install-windows.batandinstall-bin-windows.bat) have been rewritten in PowerShell; the.batfiles are now thin wrappers that download and run the corresponding.ps1scripts (#492, #493). -
Suppress spurious warnings from
tlmgr_version()whentlmgrcannot be executed (rstudio/rmarkdown#2612). -
On macOS, TinyTeX now uses
/etc/paths.d/TinyTeXto add the TinyTeX binary directory toPATHwhen/usr/local/binis not writable, instead of recursively changing the ownership of/usr/local/bin. The previous behavior (usingtlmgr path add) is preserved for users who have already made/usr/local/binwritable. This fixes a filesystem security issue (thanks, @r2evans, #463, #489).
- Detect missing language definition files from babel errors
! Package babel Error: Unknown option 'xxx'(thanks, @cderv, #476).
-
Added the missing font detection for the haranoaji package (thanks, @kenjisato @cderv, #465).
-
The daily TinyTeX release includes
texlive-local.debnow (thanks, @salim-b, #467).
- Fixed a bug introduced in v0.55 that changed
latexmk()'s default output path inadvertently, causing errors when compiling a.texinput file that is not under the current working directory (thanks, @thanasisn @solvi808, rstudio/rmarkdown#2589).
-
latexmk()supports the engine arguments--no-pdfand--output-format=dvinow (thanks, @pmur002, #455). -
Corrected the filename of TeX Live source package installer from
install-unix.tar.gztoinstaller-unix.tar.gz(thanks, @csoneson, #460).
-
Provided an internal function
tinytex:::ctan_mirrors()to return a data frame containing information about all CTAN mirrors (#450). -
Changed
whichtocommand -vin the installation script for *nix. The latter is more portable because it is a built-in shell feature, andwhichis an external utility that is not necessarily installed (#451).
- Detects the missing font from the
fontspecerrorThe font "***" cannot be found(thanks, @cderv, #448).
-
Added independent packages in lieu of the ms package to the
TinyTeXbundle (thanks, @benz0li, #445). -
Added the anyfontsize package to the
TinyTeXbundle (thanks, @olivroy, #446). -
Disabled the automatic search and installation of missing LaTeX packages by default when the LaTeX distribution is not TinyTeX.
- Added a global option
tinytex.upgradeto automatically upgrade TinyTeX when it fails due to a new release of TeX Live each year. By default, this option isFALSE. If you setoptions(tinytex.upgrade = TRUE)(e.g., in.Rprofile), TinyTeX will try to upgrade itself when it is not possible to install or update LaTeX packages from CTAN due to the fact that it is still based on a previous year's TeX Live.
-
The installation script
install-bin-unix.shwill throw an error early ifperlis not found (thanks, @jangorecki, #431). Note that on Linux,perl-baseis insufficient. -
options(tinytex.tlmgr_update = FALSE)can be set to preventtlmgr update --self --allwhentinytex::tlmgr_install()tries to install packages (thanks, @matthewgson, #434). -
Fixed bugs in
tinytex:::auto_repo()that preventedtinytex::install_tinytex()from setting the CTAN repository after installation (thanks, @dmkaplan2000, #436).
-
On Windows, TinyTeX will be installed to the directory defined by the environment variable
ProgramDatawhenAPPDATApoints to a path that contains spaces or non-ASCII characters (thanks, @AJThurston @wesleyburr #420, @norbusan #427). -
Detect and fix the error caused by the L3 programming layer mismatch (thanks, @wesleyburr, #424).
-
The script to ask users to
chmod /usr/local/binfailed to work on newer versions of macOS. -
More efforts to avoid releasing broken versions of TinyTeX.
-
Deal with invalid characters in LaTeX logs (thanks, @martinmodrak, #425).
-
Documented on the help page
?tinytex::install_tinytexthat installing TinyTeX requiresperl, andperl-baseon Linux is not sufficient (thanks, @mfansler, #419). -
Enhanced the instruction message when users run into Unicode problems in
latexmk()(thanks, @LexiangYang).
- Changed
tlmgr_version(raw = TRUE/FALSE)totlmgr_version(format = 'raw'/'string'/'list'): the previousraw = TRUEmeansformat = 'raw';raw = FALSEmeansformat = 'string';format = 'list'returns structured data that can be used for computation.
-
TeX Live has renamed the
win32directory underbin/towindows. -
Automatically correct the spelling of
TinyTeXin thebundleargument ofinstall_tinytex()(thanks, @kellijohnson-NOAA, #408). -
Fixed a bug that
check_installed()returnsFALSEfor the entire vector when a single package is missing (thanks, @ThierryO, #404). -
The babel language
pinyinshould be treated aschinese(thanks, @nigeder). -
Removed the LaTeX package soulutf8 from TinyTeX (thanks, @benz0li, #402).
-
For the
TinyTeX-2bundle, its file format has been changed from.gzto.xzon Linux and macOS (#394), and from.zipto.exeon Windows (#398). -
The installation script
install-unx.shno longer changes the working directory (#386).
- Added the LaTeX package pdfcol to the
TinyTeXbundle (#387).
-
Querying CTAN might time out, which can cause failure in installing TinyTeX (thanks, Lillian Welsh, https://stackoverflow.com/q/73404800/559676).
-
When installing TinyTeX on macOS and the directory
/usr/local/bindoes not exist, users will be prompted to create it. Then if it is not writable, users will be prompted to make it writable viachown.
- TinyTeX no longer defines the
TEXMFHOMEvariable (thanks, @vsheg, #377).
- Added a
bundleargument totinytex::install_tinytex(), so that users can choose to install any TinyTeX bundle, e.g.,TinyTeX-0orTinyTeX-2.
-
The
tinytexandtinytex-releasesrepositories have been moved from @yihui's account to @rstudio, i.e., their addresses are https://github.com/rstudio/tinytex/ and https://github.com/rstudio/tinytex-releases/ now. -
The full TeX Live has been pre-built as the
TinyTeX-2bundle in the daily release of TinyTeX: https://github.com/rstudio/tinytex-releases/releases/tag/daily -
If
tinytex::install_tinytex()detects an existing LaTeX distribution in the system, it will ask if you want to continue the installation in an interactive R session. In a non-interactive R session, it will throw an error unlessforce = TRUEis used. The environment variableTINYTEX_PREVENT_INSTALL=truecan also be set to prevent the installation. -
On *nix, if the dir
~/.local/binexists, it will be used as the bin path for TinyTeX. If it does not exist,~/bin/will be used as usual (thanks, @salim-b, #365).
-
Fixed #354: set the env var
TEXLIVE_PREFER_OWN=1before callingtlmgr()to use TeX Live's owncurlinstead ofcurlonPATH(thanks, @netique). -
Detect the
lua-uni-algospackage in case of errormodule 'lua-uni-normalize' not found(thanks, @dragonstyle). -
Added the help page
?tinytex(thanks, @AmeliaMN, #361). -
Use
set -eandcurl -fto fail immediately in the *nix installation script (thanks, @gaborcsardi, #356).
- Fixed rstudio/bookdown#1274:
latexmk()should run the LaTeX engine one more time before callingmakeindex(thanks, @trevorcampbell @ttimbers).
-
Fixed the failure to detect the hyphen-french package from the LaTeX log.
-
xfun::session_info('tinytex')can report the TeX Live (TinyTeX) version now. -
Improved the way
tinytex::tlmgr_repo()normalizes the repo URL (#346).
-
install_tinytex()will automatically switch to using https://github.com/yihui/tinytex-releases/releases/tag/daily to install the daily version of TinyTeX if accessing https://yihui.org fails (#332). -
install-bin-unix.shandinstall-bin-windows.batnow install TinyTeX from https://github.com/yihui/tinytex-releases/releases/tag/daily instead ofhttps://yihui.org/tinytex/TinyTeX.*(#270). -
Fixed #322: automatically install
hyphen-*packages in case of polyglossia warnings. -
Run
tlmgr conf texmf max_print_line 10000to prevent LaTeX from wrapping log lines. If you do not like this configuration, you may runtlmgr conf texmf --delete max_print_lineto delete it.
- The
--dataargument intl_sizes()is properly quoted now to make it work on Windows (thanks, @IndrajeetPatil #329, @cderv #330).
-
Fixed the paths in
texmf-var/fonts/conf/fonts.conf(thanks, @igelstorm @norbusan, #313). -
Each LaTeX warning is now converted to a single R warning, which is printed immediately (thanks, @krivit, #315).
-
Remove the character
vfrom theversionargument ofinstall_tinytex()(thanks, @cderv, #318).
-
The latest release of TinyTeX from https://github.com/yihui/tinytex-releases can be installed via
tinytex::install_tinytex(version = 'latest')now. -
Provide a global option
options(tinytex.source.install = TRUE)to forcetinytex::install_tinytex()to use the source installer instead of installing the prebuilt binary (#301). -
The LaTeX package psnfss is included in the default TinyTeX distribution now (#303).
-
Fixed #295: use the environment variable
$OSTYPEin bash to make sure we install the prebuilt TinyTeX binary only forlinuxbut not other distributions such aslinux-musl. -
Fixed #299: handle the error
! Package pdfx Error: No color profile sRGB_IEC61966-2-1_black_scaled.icc foundand install the colorprofiles package. -
Fixed ulyngs/oxforddown#4: also detect missing font definition files like
LGRcmr.fdand install missing packages accordingly. -
Fixed #311: install the glossary and datetime2 language module when a warning like
Package glossaries Warning: No language module detected for 'english'is detected. -
Fixed #302: the environment variable
TINYTEX_VERSIONdoes not work fortools/install-bin-unix.shwhen trying to install TinyTeX from the source installer.
-
Support
tectonicas a new engine (thanks, @dpryan79, #290). -
Also recompile the
.texdocument if required bybiblatex(thanks, @cderv, #288). -
check_installed()returns a logical vector instead of a scalar now, to indicate if individual LaTeX packages are installed or not. -
Fixed #291: detect the
l3kernelpackage from the error message aboutexpl3.sty, and update existing packages when they are required to be installed, since they might be too old to remain compatible with other packages. -
Bundled more LaTeX packages in the
TinyTeX.*bundles.
-
Exported functions
is_tinytex()andcheck_installed()(thanks, @cderv, #269). -
When
options(tinytex.latexmk.warning = FALSE), delete the log file inlatex_emu()if it contains warnings (thanks, @guang-yu-zhu, #281). -
Removed warnings against existing LaTeX distributions in
install_tinytex()(thanks, @AmeliaMN, #275). -
Set
TEXMFHOMEto./texmf-homeinstead of$TEXMFLOCAL.
- Missing fonts are better detected now, e.g., for the font name
Caladea, tinytex also tries to find filesCaladea-(Bold|Italic|Regular)(thanks, @cderv, #268).
- It is possible to suppress LaTeX warnings via the global option
options(tinytex.latexmk.warning = FALSE)now (thanks, @fgoerlich #256, @cderv #260).
-
Fixed the installation script for non-Linux platforms (#243).
-
When
bibtexfails,tinytex::latexmk()should try to find out the missing packages instead of stopping immediately. -
Run
rd %APPDATA/TinyTeX%twice to remove TinyTeX on Windows to avoid installation failures. Also deletedinstall-tlandinstall-tl-windows.batin the prebuilt TinyTeX binaries. -
Added the
tinytex::tlmgr_repo()function to query or set the CTAN repository for TinyTeX. -
Fixed
tinytex::install_tinytex()for Linux machines that are notx86_64(#252).
-
The R function
tinytex::install_tinytex()now installs prebuilt binaries of TinyTeX. Previously it used the TeX Live installer to install packages. Now it downloads a single prebuilt package and extracts it locally. If the operating system is not Windows, macOS, or Linux, the previous method (the TeX Live installer) is still used. -
By default,
tinytex::install_tinytex()will reinstall all currently installed LaTeX packages after reinstalling TinyTeX, so you won't lose any packages. If you want a fresh installation (keeping the previous behavior), useinstall_tinytex(extra_packages = NULL). -
Added a
versionargument toinstall_tinytex(), so users can install a specific version of TinyTeX.
-
Improved the search for missing TikZ libraries (thanks, @boltomli, #221).
-
Fixed the installation of TinyTeX on Unix-alikes such as FreeBSD (thanks, @rhurlin, #222).
-
Added an argument
delete_tlpdbtotlmgr_update()to automatically delete thetlpkg/texlive.tlpdb.*files aftertlmgr update. The value of this argument can be set via a global optionoptions(tinytex.delete_tlpdb = TRUE)(thanks, @AlfonsoMuskedunder, #226).
-
The value of the
install_packagesargument oftinytex::latexmk()can be set via a global option, e.g.,options(tinytex.install_packages = FALSE)to disable the automatic installation of missing LaTeX packages. -
By default, the automatic installation of missing packages only works when the
tlmgrexecutable is writable. This means that, by default,tinytex::latexmk()will no longer try to install missing packages if you are using thetexlive-*packages of your OS (e.g., Debian/Ubuntu/Fedora).
-
tinytex::latexmk()can automatically install missinghyphen-*packages now (thanks, @boltomli, #204). -
Added tests to make sure the default installation of TinyTeX is able to compile basic R Markdown documents and bookdown projects against
pdflatex,xelatex, andlualatex(thanks, @AlfonsoMuskedunder, #207). -
tinytex:::install_prebuilt()supports Windows, macOS, and Ubuntu now.
-
Provided a more informative message to R users about upgrading TeX Live yearly.
-
Exported the
parse_install()function. -
Fixed the bug that
latexmk()could accidentally delete TinyTeX on Linux (#197). Linux users are strongly recommended to update tinytex to v0.22.
-
Do not run
tlmgr path addif/usr/local/bin/tlmgrdoesn't exist (thanks, @cboettig, #181). -
Do not use
$HOMEin texmf variables, otherwise they might create~/.TinyTeX(#150).
-
tinytex:::is_tinytex()will no longer signal an error if TinyTeX is not found; it returnsFALSEinstead. -
uninstall_tinytex()will cleanly uninstall TinyTeX and delete the~/.TinyTeXfolder if it exists. -
Added an argument
add_pathtoinstall_tinytex()so users can disabletlmgr path add(thanks, @norbusan, #179).
-
Added more LaTeX packages to the default installation due to changes on CTAN (thanks, @ateucher @jonkeane, #158 #166 #167 #169).
-
Support installing older versions of TeX Live from https://texlive.info.
-
Automatically install
mktexpkwhen necessary (#173). -
Correctly detect the missing file from error messages of the form
Encoding file 't2aenc.def' not found(thanks, @ngriffiths21, #174). -
Emit fewer messages when trying to automatically install missing LaTeX packages (#174).
-
Added a few LaTeX packages to the default installation of TinyTeX (#158, #160, #163).
-
Automatically install epstopdf when there is an error
! xdvipdfmx:fatal: pdf_ref_obj(): passed invalid object.(#161). -
When a
.texdocument fails to compile, runtinytex::tlmgr_update()to avoid package compatibility issues.
-
Missing LaTeX packages can be detected from error messages like
! Package isodate.sty Error: Package file substr.sty not found(thanks, @boltomli, #144). -
Added an argument
min_timestotinytex::latexmk()to specify the minimum number of compilation times (thanks, @billdenney, #148). -
The
repositoryargument oftinytex::install_tinytex()is more intelligent now: if you only providerepository = "http://mirrors.tuna.tsinghua.edu.cn/CTAN/", the path totlnetwill be appended automatically.
- Allow
tlmgr path addto fail on macOS when installing TinyTeX.
-
Fixed #129: redirect xelatex error messages to the LaTeX log file, so that missing font packages (e.g., rsfs) can be parsed and automatically installed (thanks, @uninyhart).
-
Fixed #132:
tinytex.profilecontains broken paths on Windows (thanks, @twwd).
-
Missing TikZ libraries can be identified from the LaTeX error message and automatically installed by
tinytex::latexmk(). -
The missing
mptopdfpackage can be correctly detected from the LaTeX error message and automatically installed. -
tinytex::tl_pkgs()correctly returns package names containing dots, such astexlive.infra(thanks, @riccardoporreca, #120). -
Added the float package to the default installation of TinyTeX (thanks, @ivan-krukov, #122).
-
Compile LaTeX documents for enough times when
longtableis used (thanks, @eheinzen, #124).
-
tinytex::reinstall_tinytex()will print out the instruction on how to reinstall previously installed LaTeX packages, in case the reinstall fails. -
tinytex::reinstall_tinytex()will try to preserve thetexmf-localdirectory if it is not empty (#117). -
For the shell/batch scripts to install TinyTeX, the CTAN mirror can be set via the environment variable
CTAN_REPO(#114).
-
Fixed #108: if the
repositoryargument is provided intinytex::install_tinytex(), the TeX Live network installer will be downloaded from this repository instead of the default CTAN mirror. -
When an error like
! Package inputenc Error: Unicode characteris detected in the LaTeX compilation log,tinytex::latexmk()will remind users of usingxelatexinstead of the defaultpdflatex(#109).
-
latexmk()will try to automatically install babel hyphenation packages (#97). -
tinytex received a hex logo designed by @haozhu233.
-
Also read
missfont.logto automatically install missing font packages. -
latexmk(engine = 'latex')is also supported to generate.dvioutput from.tex. -
Allow TinyTeX to be installed alongside with other LaTeX distributions (#102).
-
No longer require
/usr/local/binto be writable on macOS (#24). -
When there is a LaTeX error
! Missing $ inserted,latexmk()will try to provide more context for R Markdown users to find out where the error comes from.
-
latexmk()will do a better job of detecting and installing font packages. -
When the LaTeX compilation generates warnings in the log file, the log file will not be deleted.
-
Five LaTeX packages (
dvips,helvetic,inconsolata,tex,times) were added to the default TinyTeX installation (#73). -
On macOS, if
/usr/local/binis not writable duringtinytex::install_tinytex(), the installation script will ask for password to gain the admin privilege to make this directory writable (#24). -
Patch
tlpkg/TeXLive/TLPDB.pmto remove the false alarm when (un)installing LaTeX packages viatlmgrin a system-wide TinyTeX installation (#77).
-
Fixed #69:
install_tinytex()failed on Windows. -
Added a function
tinytex_root()to return the root directory of TinyTeX. -
Added functions
copy_tinytex()anduse_tinytex()to make it easier to copy an existing TinyTeX installation to another location and use it in another system.
-
It is possible to provide a custom command to generate the LaTeX index via the global option
tinytex.makeindex. -
Fixed #60: R's texmf tree cannot be found on Manjaro Linux via
R.home('share'). -
When both MiKTeX (or another LaTeX distribution) and TinyTeX are installed on Windows, TinyTeX will be used.
-
Always expand the path of the input file in
latexmk()(#64).
-
Added a new function
tl_pkgs()to list installed LaTeX packages. -
Added a new function
reinstall_tinytex()to uninstall and reinstall TinyTeX. -
The package epstopdf will be automatically installed if needed.
-
The package latexmk is included in the default installation of TinyTeX now (#51).
-
Fixed #26: suppress warnings about invalid input in the current locale.
-
Fixed #28:
system2('pdflatex', stdout = FALSE)does not work in RStudio's R console. -
Fixed #29: override the PDF output file directly.
-
Support the global option
tinytex.output_dir(#32).
-
Added a way to show more information for debugging when compiling
.texdocuments. -
Added a
cleanargument tolatexmk(), so that users can choose to keep the auxiliary files (#21). -
Do not (temporarily) change the working directory to the parent directory of the
.texfile before compiling it to PDF (#22). -
Added a
pdf_fileargument tolatexmk(). -
Check if
wgetexists on Linux (orcurlon macOS) ininstall_tinytex()(#23).
-
~/bindoes not need to be onPATHon Linux now forlatexmk()to work. -
emulation = TRUEis the new default forlatexmk(). -
Added the
tl_sizes()function to show the sizes of LaTeX packages installed. -
Added an
engine_argsargument tolatexmk(). -
Made it possible to specify the CTAN mirror in
install_tinytex()(#14).
-
Fixed a minor bug on Windows (
latexmk()may fail to install packages automatically). -
More informative messages during
install_tinytex().
- The first CRAN release.
- The first draft version.