我喜欢\typeout
显示我的包的版本和日期的消息。我知道,\GetFileInfo
但这显然只在.dtx
文件中有效。有没有办法自动从包的声明中提取\filedate
和?我目前只是定义一个版本字符串并在中使用它,但这意味着必须在文件中编辑版本和日期两次,这可能容易出错。\fileversion
\ProvidesPackage{}
\typeout
MWE 包littlepackage.sty
:
\ProvidesPackage{littlepackage}[2020/11/26 v1.2.3 A simple demo package]
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\newcommand*{\littlepackageversion}{v1.2.3 dated 2020/11/26}
\AtBeginDocument{%
\typeout{}
\typeout{littlepackage: You're using littlepackage version \littlepackageversion.}
\typeout{}
}%
littledemo.tex
使用该包的MWE文档:
% !TEX TS-program = lualatexmk
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{littlepackage}
\begin{document}
Hello.
\end{document}
答案1
\ProvidesPackage{littlepackage}[2020/11/26 v1.2.3 A simple demo package]
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\AtBeginDocument{%
\typeout{}
\typeout{littlepackage: You're using littlepackage version \csname [email protected]\endcsname}
\typeout{}
}%
答案2
OP 说我的评论很有用,所以我会扩展答案。readprov
\ProvidesXXX
包提供对类、包或通用文件中行的访问,而无需doc
包。因此您的littlepackage.sty
文件可以看起来像这样,无需任何技巧。
\ProvidesPackage{littlepackage}[2020/11/26 v1.2.3 A simple demo package]
\NeedsTeXFormat{LaTeX2e}[1999/12/01]
\usepackage{readprov}
\ReadPackageInfos{littlepackage}
\edef\littlepackageversion{\fileversion}
\AtBeginDocument{%
\typeout{}
\typeout{littlepackage: You're using littlepackage version \littlepackageversion.}
\typeout{}
}%