自定义日期格式

自定义日期格式

我正在尝试创建一个如下所示的奇特日期格式:

在此处输入图片描述

以下是我目前所拥有的 MWE。出于某种原因,我似乎无法获得正确的高度。

在此处输入图片描述

\documentclass[letterpaper]{article}
\usepackage{graphicx}
\usepackage{datetime}
\usepackage{calc}

\newlength{\dateboxheight}
\setlength{\dateboxheight}{%
    \heightof{%
        \parbox[b]{3em}{%
            May\\ %
            2014%
        }
    }
}
\newdateformat{squaredate}{%
\mbox{%
\resizebox{\dateboxheight}{!}{\THEDAY}~%
\parbox[b]{3em}{%
        \monthname[\THEMONTH]\\ %
        \THEYEAR%
}}}

\begin{document}
\squaredate\today
\end{document}

欢迎提出任何建议或改进。我知道这可以在 TikZ 中实现;因此,我认为这是一个可能的解决方案。其他值得欢迎的改进可能是其他月份(如 11 月)可以缩短,以便它们具有与 5 月相同的宽度;即 11 月。可能是一个\ifelse案例?

答案1

您在 中提供了错误的高度/宽度尺寸\resizebox。这是适当的界面:\resizebox{<width>}{<height>}{<stuff>},因此您应该使用

%...
\resizebox{!}{\dateboxheight}{\THEDAY}~%
%...

在此处输入图片描述


这里还有一些其他的工作要做:

在此处输入图片描述

\documentclass{article}
\usepackage{graphicx,datetime}
\usepackage[table]{xcolor}

\colorlet{datecolor}{black!40}
\colorlet{datebackground}{black!10}

\newdateformat{squaredate}{{%
  \renewcommand{\arraystretch}{1.2}%
  \begin{tabular}{rl}
    \cellcolor{datebackground} & \cellcolor{datebackground}\color{datecolor}\monthname[\THEMONTH] \\ %
    \cellcolor{datebackground}\smash{\color{datecolor}\resizebox{2.5\normalbaselineskip}{!}{\sffamily\THEDAY}} &
    \cellcolor{datebackground}\color{datecolor}\THEYEAR
  \end{tabular}
}}

\begin{document}
\squaredate\today
\end{document}

答案2

我认为这样就可以了。我已经用它tikz来实现目标了。以下是代码:

\documentclass[12pt]{article}
\usepackage{tikz}
\usepackage{anyfontsize}

\newcommand{\squaredate}[3]{%
\begin{tikzpicture}
\filldraw[color=lightgray] (-.1,-7) rectangle (-4.5,-5);
\draw (-3.5,-6) node {\fontsize{50}{60}\selectfont\bfseries  #1}; %%the two arguments to \fontsize are the actual font size and the size of the baseline-skip. The baseline-skip should be set to roughly 1.2x the font size.
\draw (-1.3,-5.5) node {\LARGE\bfseries #2};
\draw (-2.5,-6) -- (-0.2,-6);
\draw (-1.4,-6.5) node {\LARGE\bfseries #3};
\end{tikzpicture}
}%

\begin{document}
\squaredate{20}{May}{2014}
\end{document} 

我定义了一个新命令squaredate。它需要 3 个参数。日期、月份和年份。并按要求显示。

输出如下:

在此处输入图片描述

相关内容