jsb:latex:shufazuopinzhi
**这是本文档旧的修订版!**
设计一张书法作品纸----保姆级教程
1 设置页面尺寸
可以设置页面大小,设置页边距,我设置都是0cm。
- snippet.latex
\documentclass[a4paper]{ctexart} % A4纸,默认还可写中文 \usepackage{tikz} %用于画图的,这个很关键。 \usepackage[top=0cm, bottom=0cm, left=0cm, right=0cm]{geometry}
2 找标准坐标点。
这个图比较简单,只用找到页面的中线就好,也就是中心的 X 坐标。用A4纸的21cm*29.7cm ,如果直接21cm除以 2 好像不行。
我用的方法是,笨方法,对着屏幕用尺子量的
3 定义颜色:
需要两个颜色,一个是左右长方块的颜色,一个方格的颜色:
- snippet.latex
\definecolor{coloredge}{RGB}{211, 209, 171} % 边缘颜色 \definecolor{colorgezi}{RGB}{200, 199, 163} %画格子的线条颜色
4 两个背景图:
我是用屏幕截图后,转化成 jpg 文件的。
一个是方格背景图bggezi.jpg,一个是黑色装饰边bgmid.jpg。保存到当前目录下的子目录 images 目录下。
- snippet.latex
% 指定图片的路径 \def\bggezi{images/bggezi.jpg} \def\bgmid{images/bgmid.jpg}
5 中间的绿色:
要注意坐标的规律:
X是从左往右,逐渐增大;Y 是从上往下逐渐减小,所以页面左上角是(0,0),右下角是(mywd, -myht)
为了覆盖整个页面,Y 的起始和结束位置有些冗余没关系。而且,和每张背景图不一样,每一次循环Y 的高度可以调节,不要大于图片本身的高度就好。
- snippet.latex
\newcommand{\gezi}{1.5} % 设置格子的大小,单位 cm \pgfmathparse{\gezi * 5} \let\imgwd\pgfmathresult %定义背景图填充的宽度 % 重复铺满背景中间的图片 \foreach \y in {-1,0, 1, ..., 15} { % 根据需要调整数字 \node[anchor=north west] at (\mymid - \imgwd, -\y*2) { \includegraphics[width=\imgwd cm]{\bg2} }; \node[anchor=north west] at (\mymid, -\y*2) { \includegraphics[width=\imgwd cm]{\bg2} }; }
此时的效果如下了:
6 画格子
这一步最简单了,代码如下:
- snippet.latex
%中间画格子 \pgfmathparse{-\myht +1} \let\btstart\pgfmathresult %设置格子和页面底部的距离 1cm,那 Y 坐标就是-\myht + 1 \pgfmathparse{\mymid -\gezi*4.5} \let\leftstart\pgfmathresult %设置格子左侧的 起始坐标中心线减去4 个半格子长度。 X = \mymid -1.5*4.5 \foreach \x in {0, 1, ..., 8} { % 9 个横向方格 \foreach \y in {0, 1, ..., 14} { % 15 个纵向方格 \draw[colorgezi, line width=1pt] (\leftstart+\x*\gezi, \btstart + \y*\gezi) rectangle ++(\gezi, \gezi); } }
现在效果如下:
7 画两侧方块
这一步也很简单,左右画方块有些冗余没关系,确保页面上都被覆盖。
- snippet.latex
\pgfmathparse{\mymid -\gezi*4.5 -0.5} \let\leftrect\pgfmathresult %定义左侧方块的最右 X坐标 \pgfmathparse{\mymid +\gezi*4.5+0.5} \let\rightrect\pgfmathresult %定义右侧方块最左 X 坐标。 \fill[coloredge] (\leftrect, 1) rectangle (\mymid-15, -\myht); \fill[coloredge] (\rightrect, 1) rectangle (\mymid+15,
效果如图:
8 增加长条装饰
这一步稍微遇到了些困难,因为起始位置好像不太准,不过问题不大,所见即所得,多调试几次,手工调整就好了
- snippet.latex
%左右装饰图片,此处的尺寸好像不太明白,根据效果手工调整。 \newcommand{\geziwd}{0.3} %装饰图片的宽度 \foreach \y in {-1,0, 1, ..., 10} { % 根据需要调整数字 \node[anchor=north east] at (\leftrect+\geziwd, -\y*3) { \includegraphics[width=\geziwd cm]{\bgmid} }; %north east 表示图片的坐标右上对齐 \node[anchor=north west] at (\rightrect-\geziwd, -\y*3) { \includegraphics[width=\geziwd cm]{\bgmid} }; %north west 表示图片的坐标左上对齐 }
效果图:
总结和其他
- 应该还可以再简化代码,特别是用
\node
填充图片,我也不是很熟悉,只是问了 AI,然后修改的。 - 这个作品纸,只有左右对称,不需要 Y 轴的中线,如果上下对称,可以寻找 Y 的中线,类似设置 mymid一样。
- 线条颜色和背景颜色,不那么容易设置。mac 电脑没法看到图片的 RGB 颜色,我用 python 写了段代码,直接读取图片颜色的 RGB 值。如果你有其他办法,也可以代替。
- 代码和图片下载: zuopinzhi.zip
jsb/latex/shufazuopinzhi.1735443971.txt.gz · 最后更改: 2024/12/29 11:46 由 lanshizi