Ich habe eine Maschine, auf der ich das weiß pdflatex
und auf der einige Pakete installiert sind. Ich kann jede beliebige .tex
Datei auf dieser Maschine kompilieren und die Ausgabe anzeigen, aber ich kann die Maschine nicht direkt überprüfen.
Wie kann ich am einfachsten eine PDF-Datei erstellen, die die auf diesem Computer vorhandene LaTeX-Installation mit allen Paketen, Klassen und Schriftarten sowie deren Versionen beschreibt? Ist das überhaupt möglich?
Antwort1
tlmgr info
listet alle TeXLive-Pakete mit vorangestelltem i auf, sofern diese bereits installiert sind. Oder verwenden Sie
tlmgr list --only-installed
Sie können sich auch eine komplette Liste als pdf erstellen lassen (ausführen mit 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}
Ich habe keine Ahnung, wie das für MiKteX gemacht werden kann.
Antwort2
Eine pdflatex
Version; ausgeführt mit -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}
(Nur die ersten paar Einträge und nicht die ganzen 76 Seiten.)