我喜欢打印以这种方式格式化的日期:6 October 2018
。通常,我只需手动输入日期。但我尝试着设置,以便\today
按照我喜欢的方式格式化日期。当天数是两位数时,我必须只测试它。我有这个:
\documentclass{article}
\usepackage[english]{datetime2}
\DTMnewdatestyle{strunkdate}{%
\renewcommand*{\DTMdisplaydate}[4]{##3 \DTMenglishmonthname{##2} ##1}
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}}
\AtBeginDocument{%
\DTMsetdatestyle{strunkdate}}% after babel loaded, or babel stomps on this
\begin{document}
Today is \today.
\end{document}
不幸的是,这打印06 October 2018
出一个前导零,迫使两位数的日子。如果6 October 2018
没有领先的零,我怎么得到?DATETIME2分享改善这个问题9小时前 问道dedded548211添加评论
1答案
程序包可能具有特定命令,但您可以使用TeX \number
命令
\documentclass{article}
\usepackage[english]{datetime2}
\DTMnewdatestyle{strunkdate}{%
\renewcommand*{\DTMdisplaydate}[4]{\number##3\ \DTMenglishmonthname{##2} ##1}
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}}
\AtBeginDocument{%
\DTMsetdatestyle{strunkdate}}% after babel loaded, or babel stomps on this
\begin{document}
Today is \today.
\end{document}
分享改善这个答案9小时前 回答大卫卡莱尔470K3810991827
- 1这实际上是
datetime2
第95页手册推荐的方法。不幸的是,没有关于跟踪空间问题的警告。 - egreg 9小时前 - 1@egreg并没有让我看到手册! - 大卫卡莱尔 9小时前
- 为了保持字符令牌的完全可扩展性,
\number\numexpr##3\relax\space\DTMenglishmonthname{##2} ##1
可能会更好。 - egreg 8小时前 - @egreg我确实对此感到疑惑,但我不会在这里需要进行扩展我会猜测并且
\
在代码中看起来更好并且不需要关于它的作用的文章:-) - David Carlisle 8小时前 - 效果很好!你担心的扩展性是@egreg,那个天数字符本身的可扩展性是什么? - dedded 6小时前
- @dedded如果你想将日期用于其他目的,将它分成几部分,例如,在中间控制序列可能是一个障碍。但可能不是您的应用程序的情况。 - egreg 7小时前
- 没有那样的事。我可以想象将整个传递给另一个命令。 - dedded 5小时前
分类:文摘
标签:
评论已关闭!