必经之路

抄一部心经,点一盏心灯

用户工具

站点工具


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 好像不行。

我用的方法是,笨方法,对着屏幕用尺子量的

snippet.latex
    %pt转化成 cm 单位,求中线的时候好像要-0.75
    \pgfmathparse{\textwidth / 28.5} %把 pt 转化成 cm 单位
    \let\mywd\pgfmathresult  %纸张的宽度
    \pgfmathparse{\textheight/ 28.5}
    \let\myht\pgfmathresult %纸张的高度
    \pgfmathparse{\textwidth / 28.5/2-0.75}
    \let\mymid\pgfmathresult %中心点的 X 坐标位置

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);
        }
    }
 

结束了

jsb/latex/shufazuopinzhi.1735442383.txt.gz · 最后更改: 2024/12/29 11:19 由 lanshizi