TikZ 绘图-将旧日历样式的日期放在左边距

TikZ 绘图-将旧日历样式的日期放在左边距

我正在编排一本教科书的格式。

下图显示了我想要做的第一件事。

有两件事需要实现:

  1. 我想“绘制”日期,TikZ以便以后能够进行更先进的格式化。
  2. 然后左边距必须写上“画”。

在此处输入图片描述

LaTeX 代码类似于以下内容:

\section{Name of the class}

\subsection{Chapter A : Numeric activities}

\day{Mon.}{28}{Nov.}{2011}
\subsubsection{Lesson}
...

\subsubsection{For Tuesday Nov. 29}
...

答案1

这是一个tikz使用的解决方案包裹marginnote

在此处输入图片描述

\documentclass[12pt]{article}
\usepackage{lipsum}
\usepackage{marginnote}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{backgrounds}

\newcommand*{\Date}[4]{%
    \begin{tikzpicture}[show background rectangle,inner frame sep=0pt,text width=1.5cm,align=center]
        \node [fill=orange] at (0,0)                                (dayofweek)  {#1};
        \node [fill=white ] at ($(dayofweek)  +(0,-\baselineskip)$) (dayofmonth) {#2};
        \node [fill=white ] at ($(dayofmonth) +(0,-\baselineskip)$) (month)      {#3};
        \node [fill=orange] at ($(month)      +(0,-\baselineskip)$) (dayofmonth) {#4};
    \end{tikzpicture}
}
\reversemarginpar% to put the margin pars on the left
\begin{document}
\marginnote{\Date{Mon.}{28}{Nov}{2011}}
\noindent\lipsum[1]
\end{document}

答案2

您可以使用一个简单的tabular环境来格式化日期,然后使用 来框定日期\fbox;该marginnote命令(来自同名包)允许您将日期作为边注。在下面的例子中,我说明了这种方法;该\MyDate命令有一个强制参数(星期几);其他三个值是自动排版的(当然,您也可以将这些元素的全部或部分自定义为命令的参数):

\documentclass{book}
\usepackage[table]{xcolor}
\usepackage{marginnote}
\usepackage{datetime}
\usepackage{lipsum}

\definecolor{mycolor}{RGB}{255,213,171}

\newcommand\MyDate[1]{%
  \marginnote{\setlength\fboxsep{0pt}%
  \fbox{\setlength\extrarowheight{3pt}%
    \begin{tabular}{>{\bfseries}c}
    \rowcolor{mycolor} #1 \\
    \large\the\day \\
    \large\shortmonthname. \\
    \rowcolor{mycolor} \the\year
    \end{tabular}%
  }}%
}

\reversemarginpar
\begin{document}

\MyDate{Mon.}\lipsum[1]

\end{document}

在此处输入图片描述

相关内容