それに加えていくつかのパッケージがインストールされていることがわかっているマシンがありますpdflatex
。そのマシンで任意のファイルをコンパイルして出力を表示することはできます.tex
が、マシンを直接検査することはできません。
そのマシンにある LaTeX インストールを、すべてのパッケージ、クラス、フォント、およびそれらのバージョンとともに記述した PDF を作成する最も簡単な方法は何ですか? これは可能ですか?
答え1
tlmgr info
すでにインストールされている場合は、先頭にiが付いたすべてのTeXLiveパッケージを一覧表示します。または、
tlmgr list --only-installed
完全なリストを PDF として作成することもできます ( で実行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}
MiKteX でそれをどのように実行できるかはわかりません。
答え2
バージョンpdflatex
。 で実行します-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}
(76 ページ全体ではなく、最初の数項目のみです。)