有没有一种简单的方法可以打印出 2014-Jan-15 格式的日期。在北美,加拿大而不是美国,使用的日期格式太多了。为了消除任何混淆的可能性,客户希望使用 YYYY-MMM-DD。
我可以让我的程序创建的 Latex PDF 在 Debin Linux 而不是 Windows 上运行。
答案1
使用datetime
包裹:
\documentclass{article}
\makeatletter
\newcommand\FormatDate[3]{%
#1-\shortmonthname[#2]-\two@digits{#3}}
\makeatother
\usepackage{datetime}
\newdateformat{gregdate}{\FormatDate{\THEYEAR}{\THEMONTH}{\THEDAY}}
\newcommand\Demonstrate[3]{%
Date #1-#2-#3 formats as \FormatDate{#1}{#2}{#3}.\par}
\setlength\parindent{0pt}
\begin{document}
\Demonstrate{2015}{01}{01}
\Demonstrate{2015}{02}{02}
\Demonstrate{2015}{03}{03}
\Demonstrate{2015}{04}{04}
\Demonstrate{2015}{05}{05}
\Demonstrate{2015}{06}{06}
\Demonstrate{2015}{07}{07}
\Demonstrate{2015}{08}{08}
\Demonstrate{2015}{09}{09}
\Demonstrate{2015}{10}{10}
Today is {\gregdate\today}.
\end{document}
如果您希望重命名月份,您可以重新定义\shormonthnameenglish
以满足您的需要。(babel
如有必要,您可以修补所使用的其他宏;dt-austrian.def
例如,请参阅。)
\renewcommand*{\shortmonthnameenglish}[1][\month]{%
\@orgargctr=#1\relax
\ifcase\@orgargctr
\PackageError{datetime}{Invalid Month number \the\@orgargctr}{Month
numbers should go from 1 (jan) to 12 (dec)}%
\or Jan%
\or Feb%
\or Mar%
\or Apr%
\or May%
\or Jun%
\or Jul%
\or Aug%
\or Sept%
\or Oct%
\or Nov%
\or Dec%
\else%
\PackageError{datetime}%
{Invalid Month number \the\@orgargctr}%
{Month numbers should go from 1 (jan) to 12 (dec)}%
\fi
}
答案2
看一下isodate
包裹:
\documentclass[english]{article}
\usepackage{babel}
\usepackage{isodate}
\begin{document}
\isodate \today
\end{document}
答案3
查看后,article.cls
您会找到宏的定义\today
。您可以重新定义该宏以适合您的口味,甚至可以定义一个新宏(例如\mydate
),以您要求的样式打印以通常格式插入的日期。
\documentclass{article}
\let\oldtoday\today
\def\today{%
\number\year-\ifcase\month\or%
Jan\or Feb\or Mar\or Apr\or May\or Jun\or%
Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi%
-\number\day%
}
\newcommand{\mydate}[3]{%
\number#1-\ifcase#2\or%
Jan\or Feb\or Mar\or Apr\or May\or Jun\or%
Jul\or Aug\or Sep\or Oct\or Nov\or Dec\fi%
-\number#3%
}
\begin{document}
\today{} vs. \mydate{2015}{01}{21}
\end{document}