Tengo una máquina donde sé que pdflatex
además están instalados algunos paquetes. Puedo compilar cualquier .tex
archivo en esa máquina y ver el resultado, pero no puedo inspeccionar la máquina directamente.
¿Cuál es la forma más sencilla de producir un PDF que describa la instalación de LaTeX que se encuentra en esa máquina, con todos los paquetes, clases y fuentes, además de sus versiones? ¿Es esto posible?
Respuesta1
tlmgr info
enumera todos los paquetes de TeXLive con una i delante, si ya están instalados. O usar
tlmgr list --only-installed
También puedes crear una lista completa en formato pdf (ejecutar con lualatex --shell-escape <file>
):
\documentclass[fontsize=11pt,paper=a4,pagesize]{scrartcl}
\usepackage{luacode,ltablex}
\begin{document}
\section*{Installed packages in \TeX{}Live}
\begin{luacode}
local fh,err = io.popen("tlmgr list --only-installed")
if not fh then
texio.write(err)
os.exit(-1)
end
tex.print("\\begingroup\\footnotesize\\noindent")
tex.print("\\begin{tabularx}{\\linewidth}{@{} r @{.~} l X @{}}")
local i=0
for line in fh:lines() do
i = i + 1
tex.print(i .. "&" .. line:gsub("^i ", ""):gsub(": ", "&", 1)
:gsub("\\", "\\textbackslash{}"):gsub("_", "\\_"):gsub("$","\\\\"))
end
tex.print("\\end{tabularx}\\endgroup")
fh:close()
\end{luacode}
\end{document}
No tengo idea de cómo se puede hacer con MiKteX.
Respuesta2
Una pdflatex
versión; corre con -shell-escape
.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xparse}
\ExplSyntaxOn
\NewDocumentCommand{\listpackages}{}
{
\krlmlr_list_packages:
}
\ior_new:N \g_krlmlr_read_stream
\cs_new_protected:Nn \krlmlr_list_packages:
{
\ior_open:Nn \g_krlmlr_read_stream { |"tlmgr~list~--only-installed" }
\ior_map_inline:Nn \g_krlmlr_read_stream
{
\__krlmlr_process_line:n { ##1 }
}
}
\cs_new_protected:Nn \__krlmlr_process_line:n
{
\__krlmlr_process_line_aux:w #1 \q_stop
}
\cs_new_protected:Npn \__krlmlr_process_line_aux:w #1~#2~#3 \q_stop
{
\noindent\texttt{\tl_to_str:n { #2 }}~\tl_to_str:n {#3}\par
}
\ExplSyntaxOff
\begin{document}
\listpackages
\end{document}
(Solo las primeras entradas y no las 76 páginas completas).