226 lines
5.9 KiB
TeX
226 lines
5.9 KiB
TeX
\usepackage[most]{tcolorbox}
|
|
\usepackage{xcolor}
|
|
\usepackage{anyfontsize}
|
|
\usepackage{tikz}
|
|
|
|
\definecolor{myGreen}{RGB}{72, 194, 78}
|
|
|
|
% ---------------------------------------------------------------------------- %
|
|
% JLPT Section %
|
|
% ---------------------------------------------------------------------------- %
|
|
|
|
\newcommand{\jlptSection}[1]{
|
|
\section*{\uppercase{#1}}
|
|
|
|
\begin{center}
|
|
\fontsize{16}{16}
|
|
\input{./data/tables/#1.tex}
|
|
\end{center}
|
|
|
|
\localtableofcontents
|
|
|
|
\break
|
|
}
|
|
|
|
% ---------------------------------------------------------------------------- %
|
|
% Header line %
|
|
% ---------------------------------------------------------------------------- %
|
|
|
|
\newcommand{\taughtIn}[1]{
|
|
Taught in: #1 \newline
|
|
}
|
|
|
|
\newcommand{\jlptLevel}[1]{
|
|
JLPT Level: #1 \newline
|
|
}
|
|
|
|
\newcommand{\strokeCount}[1]{
|
|
Stroke count: #1 \newline
|
|
}
|
|
|
|
\newcommand{\kanji}[1]{
|
|
\begin{center}
|
|
\resizebox{\textwidth}{!}{
|
|
\begin{tikzpicture}
|
|
\fill[rounded corners=2pt, fill=myGreen, draw=black] (0,0) rectangle (1,1);
|
|
\draw (0.5,0.23) node[white, anchor=base, scale=2]{#1};
|
|
\end{tikzpicture}
|
|
}
|
|
\phantomsection
|
|
\addcontentsline{toc}{subsection}{#1}
|
|
\end{center}
|
|
}
|
|
|
|
\newcommand{\radicalHeader}[1]{
|
|
\begin{center}
|
|
\resizebox{.4\textwidth}{!}{
|
|
\begin{tikzpicture}
|
|
\draw[thick] (0,0) rectangle (1,1);
|
|
\draw (0.5,0.23) node[anchor=base, scale=2]{#1};
|
|
\end{tikzpicture}
|
|
}
|
|
\end{center}
|
|
}
|
|
|
|
\newcommand{\kanjiPageHeader}[5]{
|
|
\begin{minipage}{0.3\textwidth}
|
|
\begin{flushleft}
|
|
\taughtIn{#2}
|
|
\jlptLevel{#3}
|
|
\strokeCount{#4}
|
|
\end{flushleft}
|
|
\end{minipage} \hfill
|
|
\begin{minipage}{0.3\textwidth}
|
|
\kanji{#1}
|
|
\end{minipage} \hfill
|
|
\begin{minipage}{0.3\textwidth}
|
|
\begin{flushright}
|
|
\radicalHeader{#5}
|
|
\end{flushright}
|
|
\end{minipage}
|
|
\vspace{1cm}
|
|
}
|
|
|
|
% ---------------------------------------------------------------------------- %
|
|
% Meaning %
|
|
% ---------------------------------------------------------------------------- %
|
|
|
|
\newtcolorbox{meaningBox}{ %TODO: Make the box autoshrink horizontally while still making newlines when it's full.
|
|
enhanced,
|
|
colback=black!20,
|
|
left=15pt,
|
|
right=15pt,
|
|
top=15pt,
|
|
bottom=15pt,
|
|
width=\textwidth,
|
|
hbox,
|
|
capture=minipage
|
|
}
|
|
|
|
\newcommand{\kanjiMeaning}[1]{
|
|
\begin{center}
|
|
\begin{meaningBox}
|
|
\Large #1
|
|
\end{meaningBox}
|
|
\end{center}
|
|
}
|
|
|
|
% ---------------------------------------------------------------------------- %
|
|
% Kunyomi and Onyomi %
|
|
% ---------------------------------------------------------------------------- %
|
|
|
|
\newtcolorbox{kunyomiBox}{
|
|
enhanced,
|
|
attach boxed title to top left={yshift=-12pt,xshift=10pt},
|
|
colback=blue!20,
|
|
colframe=blue!60,
|
|
left=15pt,
|
|
right=15pt,
|
|
top=15pt,
|
|
bottom=5pt,
|
|
title={\fontsize{15}{20}\textcolor{white}{\textbf{訓読み}}},
|
|
colbacktitle=blue!60,
|
|
width=\textwidth
|
|
}
|
|
|
|
\newcommand{\kunyomi}[1]{
|
|
\begin{kunyomiBox}
|
|
\fontsize{15}{20}
|
|
#1
|
|
\end{kunyomiBox}
|
|
}
|
|
|
|
\newtcolorbox{onyomiBox}{
|
|
enhanced,
|
|
attach boxed title to top left={yshift=-12pt,xshift=10pt},
|
|
colback=red!20,
|
|
colframe=red!60,
|
|
left=15pt,
|
|
right=15pt,
|
|
top=15pt,
|
|
bottom=5pt,
|
|
title={\fontsize{15}{20}\textcolor{white}{\textbf{音読み}}},
|
|
colbacktitle=red!60,
|
|
width=\textwidth,
|
|
}
|
|
|
|
\newcommand{\onyomi}[1]{
|
|
\begin{onyomiBox}
|
|
\fontsize{15}{20}
|
|
\textbf{\textcolor{myGreen!80!black}{#1}}
|
|
\end{onyomiBox}
|
|
\vspace{0.5cm}
|
|
}
|
|
|
|
% ---------------------------------------------------------------------------- %
|
|
% Kanji Drawing Box %
|
|
% ---------------------------------------------------------------------------- %
|
|
|
|
\newCJKfontfamily\drawingKanji[
|
|
Path = {./font/},
|
|
Extension = .ttf,
|
|
]{Choumei}
|
|
\newCJKfontfamily\drawingFirstKanji[
|
|
Path = {./font/},
|
|
Extension = .ttf,
|
|
]{KanjiStrokeOrders}
|
|
|
|
\newcommand{\kanjiRow}[1]{
|
|
\resizebox{\textwidth}{!}{
|
|
\begin{tikzpicture}[font=\drawingKanji, anchor=base]
|
|
\clip (-0.1,-0.1) rectangle (14.1,6.1);
|
|
|
|
% Main Frame
|
|
\draw[line width=1.6pt, rounded corners=4pt] (0, 0) rectangle (14, 6);
|
|
|
|
% Horizontal lines
|
|
\draw (0,2) -- (14,2);
|
|
\draw (0,4) -- (14,4);
|
|
|
|
% Vertical lines
|
|
\draw (2,0) -- (2,6);
|
|
\draw (4,0) -- (4,6);
|
|
\draw (6,0) -- (6,6);
|
|
\draw (8,0) -- (8,6);
|
|
\draw (10,0) -- (10,6);
|
|
\draw (12,0) -- (12,6);
|
|
|
|
% Grid Top
|
|
\draw[dashed, opacity=.5] (0,5) -- (14,5);
|
|
\draw[dashed, opacity=.5] (1,4) -- (1,6);
|
|
\draw[dashed, opacity=.5] (3,4) -- (3,6);
|
|
\draw[dashed, opacity=.5] (5,4) -- (5,6);
|
|
\draw[dashed, opacity=.5] (7,4) -- (7,6);
|
|
\draw[dashed, opacity=.5] (9,4) -- (9,6);
|
|
\draw[dashed, opacity=.5] (11,4) -- (11,6);
|
|
\draw[dashed, opacity=.5] (13,4) -- (13,6);
|
|
|
|
% Grid Bottom
|
|
\draw(0,1) -- (14,1);
|
|
\draw (1,0) -- (1,2);
|
|
\draw (3,0) -- (3,2);
|
|
\draw (5,0) -- (5,2);
|
|
\draw (7,0) -- (7,2);
|
|
\draw (9,0) -- (9,2);
|
|
\draw (11,0) -- (11,2);
|
|
\draw (13,0) -- (13,2);
|
|
|
|
% Big Characters
|
|
\draw (0.95,4.42) node[scale=5, font=\drawingFirstKanji]{#1};
|
|
\draw (3,4.3) node[scale=5, opacity=.2, inner sep=0pt]{#1};
|
|
\draw (5,4.3) node[scale=5, opacity=.15]{#1};
|
|
\draw (7,4.3) node[scale=5, opacity=.12]{#1};
|
|
\draw (9,4.3) node[scale=5, opacity=.08]{#1};
|
|
\draw (11,4.3) node[scale=5, opacity=.04]{#1};
|
|
|
|
% Small characters
|
|
\draw (0.5,1.15) node[scale=2]{#1};
|
|
\draw (0.5,0.15) node[scale=2, opacity=.3]{#1};
|
|
\draw (1.5,1.15) node[scale=2, opacity=.2]{#1};
|
|
\draw (1.5,0.15) node[scale=2, opacity=.15]{#1};
|
|
\draw (2.5,1.15) node[scale=2, opacity=.1]{#1};
|
|
\draw (2.5,0.15) node[scale=2, opacity=.05]{#1};
|
|
|
|
\end{tikzpicture}
|
|
}
|
|
} |