将每个字母放置在正方形中的最佳方法是什么,如下所示:
我想学习中国书法并自学书法字帖,如能得到任何帮助或建议我将不胜感激!
答案1
我假设您已经可以访问可包含在 LaTeX 文档中的字符图像。
在这里,我使用tikz
创建一个覆盖层,使字符变暗,以便您跟踪笔画。我不懂中文,但我熟悉日语,所以请原谅我在此 MWE 中使用日语术语。(或者编辑我的帖子,将名称更正为更适合中文的名称。)
\documentclass{article}
\usepackage{graphicx}
\usepackage{tikz}
%% optional argument for frequency---default value is 4
%% character name
\newcommand{\drawKanji}[2][4]{\noindent%
\foreach \x in {1,...,#1}
{%%
\begin{tikzpicture}
\node[anchor=south west,
inner sep=0
] (image) at (0,0) {\includegraphics[width=1in]{#2}};
\begin{scope}[x={(image.south east)},
y={(image.north west)}
]
\draw[black,
fill opacity=0.90,
fill=white
] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}}}
\begin{document}
\drawKanji{takai}
\end{document}
得出的结果为:
如果您要进行大量此类操作,LaTeX 文档的编译速度可能会很慢,或者太慢,不符合您的口味。在这种情况下,您可以考虑以下方法。
\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{graphicx}
\usepackage{tikz}
\newsavebox{\currentkanji}
%% optional argument for frequency---default value is 4
%% character name
\newcommand{\drawKanji}[2][6]{\noindent%
\begin{lrbox}{\currentkanji}
\begin{tikzpicture}
\node[anchor=south west,
inner sep=0
] (image) at (0,0) {\includegraphics[width=1in]{#2}};
\begin{scope}[x={(image.south east)},
y={(image.north west)}
]
\draw[black,
fill opacity=0.90,
fill=white
] (0,0) rectangle (1,1);
\end{scope}
\end{tikzpicture}
\end{lrbox}
\foreach \x in {1,...,#1} {\usebox{\currentkanji}}}
\begin{document}
\drawKanji{takai}
\end{document}
基本上,您只需导入一次图像并将其保存在框中,然后重复使用该框。这可以节省一些编译时间,因为不必反复重新读取图像。
如果将以下几行添加到\drawKanji
命令中,您就可以获得图像中的红线:
\draw [red,dashed] (image.south east) -- (image.north west);
\draw [red,dashed] (image.south west) -- (image.north east);
\draw [red] (image.south) -- (image.north);
\draw [red] (image.east) -- (image.west);
导致: