\documentclass[svgnames]{l3doc} \usepackage{litetable, twemojis} \usepackage[mono = false]{libertine} \usepackage[fontset = fandol, linespread = 1.2, autoindent = 0pt]{ctex} \AddToHook{env/function/before}{\vspace*{-.7\baselineskip}} \AddToHook{env/syntax/after} {\par\vspace*{.2\baselineskip}} \makeatletter \def \@key #1{\textcolor{red}{\textbf{\texttt{#1}}}~\texttt{=}~} \def \s@key #1{\textcolor{red}{\textbf{\texttt{#1}}}} \DeclareRobustCommand \key {\@ifstar\s@key\@key} \def \val #1{\meta{\textup{#1}}} \def \TFF {true\textbar \textbf{false}} \def \TTF {\textbf{true}\textbar false} \def \HoLogo@ApLaTeX #1{% \HOLOGO@mbox {A\kern -.05em p\kern -.05em \hologo{LaTeX}}} \makeatother \newlist{keyval}{itemize}{10} \setlist[keyval]{leftmargin = 0pt, labelsep = 0pt} \makeindex \title{% \bfseries \cls{litetable} å®åŒ… --- 多彩的课程表\thanks{% \url{https://github.com/myhsia/litetable}, \url{https://ctan.org/pkg/litetable} } } \author{% 夿˜Žå®‡ \texttt{<\href{mailto:myhsia@outlook.com}{myhsia@outlook.com}>}\thanks{% \href{https://github.com/ljguo1020}{éƒæŽå†›}% å¼€å‘äº†è¯»å– \meta{left} \texttt{->} \meta{right} 型数æ®ç»“构的接å£ï¼Œ 并为低版本 \hologo{TeX} Live åšå…¼å®¹. } } \date{Released 2025-05-24\quad \texttt{v3.3J}} \begin{document} \maketitle \begin{documentation} \section{介ç»} \pkg{litetable} å®åŒ…æä¾›äº†ä¸€ä¸ªå¤šå½©çš„课程表设计, 基于 \pkg{tikz} ç”± \pkg{expl3} å¼€å‘. æ”¯æŒ \hologo{pdfLaTeX},\hologo{XeLaTeX},\hologo{ApLaTeX} å’Œ \hologo{LuaLaTeX} ç‰å¤šç§ç¼–译方å¼. 点击跳转 \href{http://mirrors.ctan.org/macros/latex/contrib/litetable/litetable.pdf}{[\textsf{English}]} \href{http://mirrors.ctan.org/macros/latex/contrib/litetable/litetable-zh-hk.pdf}{[\textsf{ç¹ä½“香港}]} 手册. \section{用户接å£} è¦åŠ è½½æ¤å®åŒ…,åªéœ€å†™ä¸‹ \begin{quote} |\usepackage{litetable}| \end{quote} \DescribeEnv{litetable} 环境 \env{litetable} å¯ç”Ÿæˆç©ºç™½è¯¾ç¨‹è¡¨ï¼Œ 需在命令 \cs{timelist} å’Œ \cs{weeklist} åŽæ‰§è¡Œ \begin{quote} |\begin{litetable}| \oarg{keys} \marg{title} \oarg{keys}| ... |% |\end{litetable}| \end{quote} å¼ºåˆ¶å‚æ•°ç”¨äºŽè®¾å®šè¯¾ç¨‹è¡¨æ ‡é¢˜ï¼Œ å¯é€‰å‚数接å—以下键 \begin{keyval} \item [\key{color}] \val{color} å¯è®¾ç½®è¯¾ç¨‹è¡¨æ¡†æž¶çš„背景色 (默认值:|gray|),键åå¯çœç•¥. \item [\key{sem}] \val{string} å¯è®¾ç½®é¡µé¢å³ä¸Šè§’çš„å¦æœŸä¿¡æ¯. \item [\key{hline}] \val{string} å¯è®¾ç½®æ°´å¹³çº¿çš„æ ·å¼ (默认值:|solid|). \end{keyval} \begin{function}{\weeklist} \begin{syntax} \cs{weeklist} \oarg{keys} \marg{list} \oarg{keys} \end{syntax} å¼ºåˆ¶å‚æ•°æŽ¥æ”¶æ•°ç»„, 用于设置课程表顶部的工作日列表和列宽. å¯é€‰å‚数接å—以下键 \begin{keyval} \item [\key{format}] \val{format commands} å¯è®¾ç½®å·¥ä½œæ—¥åˆ—è¡¨æ ¼å¼ï¼ˆé»˜è®¤å€¼ï¼š|\bfseries|). \item [\key{sep}] \val{string} å¯è®¾ç½®å·¥ä½œæ—¥åˆ—表的分隔符. \end{keyval} \begin{verbatim} \weeklist [ format = \bfseries \scshape, sep = \textbar ] { Mon -> 1, Tue -> 1, Wed -> 1, Thu -> 1, Fri -> 1 } \end{verbatim} \end{function} \begin{function}{\timelist} \begin{syntax} \cs{timelist} \oarg{keys} \marg{list} \oarg{keys} \end{syntax} å¼ºåˆ¶å‚æ•°å‡æŽ¥æ”¶æ•°ç»„,用于设置课程表的左侧的时间列表. å¯é€‰å‚数接å—以下键 \begin{keyval} \item [\key{numformat}] \val{format} å¯è®¾ç½®æ—¶é—´åˆ—表的åºå·å—体 (默认值:|\ttfamily \bfseries|). \item [\key{timefont}] \val{format} å¯è®¾ç½®æ—¶é—´åˆ—表的时间å—体 (默认值:|\ttfamily|). \item [\key{hidetime}] \val\TFF 用于éšè—时间列表ä¸çš„æ—¶é—´ï¼Œåªä¿ç•™åºå·. (åˆå§‹å€¼ï¼š|false|). \end{keyval} \begin{verbatim} \timelist [ numformat = \bfseries, timeformat = \ttfamily ] { 08:30 -> 10:00, 10:30 -> 12:00, 13:00 -> 14:30, 15:00 -> 16:30 } \end{verbatim} \end{function} \begin{function}{\course} \begin{syntax} \cs{course} \oarg{keys} \marg{start} \oarg{keys} \marg{end} \oarg{keys} \end{syntax} 用于在当å‰å·¥ä½œæ—¥æ·»åŠ è¯¾ç¨‹ç›’å, 需在 \env{litetable} çŽ¯å¢ƒä¸æ‰§è¡Œ. ä¸¤ä¸ªå¼ºåˆ¶å‚æ•°åˆ†åˆ«ç”¨äºŽè®¾ç½®è¯¾ç¨‹çš„开始和结æŸåºå·. å¯é€‰å‚数接收下列键 \begin{keyval} \item [\key{color}] \val{color} 用于设置课程盒å的颜色 (默认值:|teal|). é”®åå¯çœç•¥. \item [\key{subject}] \val{string} 用于设置课程åç§°. \item [\key{location}] \val{string} 用于设置课程地点. \item [\key{lecture}] \val{string} 用于设置授课教师. \item [\key{comment}] \val{string} ç”¨äºŽç»™è¯¾ç¨‹æ·»åŠ è„šæ³¨. \end{keyval} \begin{texnote} \begin{itemize}[leftmargin = 2em] \item è‹¥ \meta{start} |=| \meta{end}(课程盒å的高度为 $1$), 则 \key*{location} å’Œ \key*{lecture} 将输出在åŒä¸€è¡Œï¼Œ 并且 \key*{comment} å°†éšè—. \item å³ä½¿è¯¯å°† \meta{start} å’Œ \meta{end} 写å, 模æ¿ä¹Ÿä¼šè‡ªåŠ¨çº æ£. \item è‹¥ \key*{location} å’Œ \key*{lecture} 凿œªä½¿ç”¨ï¼Œ 则 \key*{subject} 将输出在课程盒åçš„ ç«–ç›´æ–¹å‘ä¸å¿ƒ. \item 超出课程表范围的课程盒å将䏿˜¾ç¤ºï¼Œ 并会返回è¦å‘Š. è¾“å…¥ç”¨ä¾‹è§ Appendix \ref{mwe}. \end{itemize} \end{texnote} \end{function} \begin{function}{\newday} \begin{syntax} \cs{newday} \oarg{integral value} \end{syntax} 使其åŽé¢æ·»åŠ çš„è¯¾ç¨‹ç›’ååŽç§» \meta{intergal value} 个工作日. å¯é€‰å‚数的默认值为 |1|. \end{function} \begin{function}{\more} \begin{syntax} \cs{more} \marg{comment} \end{syntax} 在课程表的å³ä¸‹è§’æ·»åŠ å¤‡æ³¨. \end{function} \appendix \linespread{1.25} \section{工作示例} \label{mwe} \begin{verbatim} \documentclass[svgnames]{article} \usepackage{litetable, twemojis} \usepackage[mono = false]{libertine} \usepackage[T1]{fontenc} \begin{document} \weeklist [ format = \bfseries \scshape, sep = \textbar ] { \texttwemoji{1f312} Mon -> 1, \texttwemoji{1f525} Tue -> 1, \texttwemoji{1f30a} Wed -> 1, \texttwemoji{1f332} Thu -> 1, \texttwemoji{1fa99} Fri -> 1 } \timelist [ numformat = \ttfamily \bfseries, timeformat = \ttfamily ] { 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35, 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00, 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55 } \begin{litetable} [ DarkBlue, sem = SEM 7, hline = dashed ] { Course Schedule } \course [ subject = interface3, comment = \TeX\ Live 2025, lecture = The \LaTeX\ Project, DarkBlue ] {4} {5} \newday \course [ subject = expl3, lecture = The \LaTeX\ Project ] {8} {8} \newday \course [ subject = Keep on \TeX ing, lecture = Donald E. Knuth, location = Stanford University, Purple ] {10} {11} \newday \course [ subject = Ti\textit k\/Z, lecture = \textsc{pgf}, Crimson, comment = Version 3.1.10 ] {3} {5} \more { Programme Duration: 09 / 2021 -- 07 / 2025 } \end{litetable} \end{document} \end{verbatim} \weeklist [ format = \bfseries \scshape, sep = \textbar ] { \texttwemoji{1f312} Mon -> 1, \texttwemoji{1f525} Tue -> 1, \texttwemoji{1f30a} Wed -> 1, \texttwemoji{1f332} Thu -> 1, \texttwemoji{1fa99} Fri -> 1 } \timelist [ numformat = \ttfamily \bfseries, timeformat = \ttfamily ] { 08:05 -> 08:50, 08:55 -> 09:40, 10:00 -> 10:45, 10:50 -> 11:35, 11:40 -> 12:25, 13:30 -> 14:15, 14:20 -> 15:05, 15:15 -> 16:00, 16:05 -> 16:50, 18:30 -> 19:15, 19:20 -> 20:05, 20:10 -> 20:55 } \begin{litetable} [ DarkBlue, sem = SEM 7, hline = dashed ] {Course Schedule} \course [ subject = interface3, comment = \TeX\ Live 2025, lecture = The \LaTeX\ Project, DarkBlue ] {4} {5} \newday \course [ subject = expl3, lecture = The \LaTeX\ Project ] {8} {8} \newday \course [ subject = Keep on \TeX ing, lecture = Donald E. Knuth, location = Stanford University, Purple ] {10} {11} \newday \course [ subject = Ti\textit k\/Z, lecture = \textsc{pgf}, Crimson, comment = Version 3.1.10 ] {3} {5} \more { Programme Duration: 09 / 2021 -- 07 / 2025 } \end{litetable} \end{documentation} \PrintIndex \end{document}