jsb:latex:shufazuopinzhi
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
jsb:latex:shufazuopinzhi [2024/12/29 11:13] – [设计步骤:] lanshizi | jsb:latex:shufazuopinzhi [2024/12/29 22:02] (当前版本) – [总结和其他] lanshizi | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ## 设计一张书法作品纸。 | + | ## 设计一张书法作品纸----保姆级教程 |
- | 我要设计的是这样的一张书法作品纸: | + | 我要设计的是这样的一张书法A4作品纸: |
{{: | {{: | ||
- | ### 设计步骤: | ||
- | #### 1 设置页面尺寸 | + | ### 1 设置页面尺寸 |
可以设置页面大小,设置页边距,我设置都是0cm。 | 可以设置页面大小,设置页边距,我设置都是0cm。 | ||
行 15: | 行 14: | ||
\usepackage[top=0cm, | \usepackage[top=0cm, | ||
``` | ``` | ||
- | #### 2 找标准坐标点。 | + | ### 2 找标准坐标点。 |
这个图比较简单,只用找到页面的中线就好,也就是中心的 X 坐标。用A4纸的21cm*29.7cm ,如果直接21cm除以 2 好像不行。 | 这个图比较简单,只用找到页面的中线就好,也就是中心的 X 坐标。用A4纸的21cm*29.7cm ,如果直接21cm除以 2 好像不行。 | ||
行 32: | 行 31: | ||
- | #### 3 定义颜色: | + | ### 3 定义颜色: |
需要两个颜色,一个是左右长方块的颜色,一个方格的颜色: | 需要两个颜色,一个是左右长方块的颜色,一个方格的颜色: | ||
行 41: | 行 40: | ||
``` | ``` | ||
- | #### 4 两个背景图: | + | ### 4 两个背景图: |
我是用屏幕截图后,转化成 jpg 文件的。 | 我是用屏幕截图后,转化成 jpg 文件的。 | ||
行 51: | 行 50: | ||
\def\bgmid{images/ | \def\bgmid{images/ | ||
``` | ``` | ||
+ | ### 5 中间的绿色: | ||
- | #### 5 中间的绿色: | + | 基本原理是,把那张背景图片bggezi排列在页面中间的长方形中。 |
要注意坐标的规律: | 要注意坐标的规律: | ||
行 69: | 行 69: | ||
\foreach \y in {-1,0, 1, ..., 15} { % 根据需要调整数字 | \foreach \y in {-1,0, 1, ..., 15} { % 根据需要调整数字 | ||
\node[anchor=north west] at (\mymid - \imgwd, -\y*2) { | \node[anchor=north west] at (\mymid - \imgwd, -\y*2) { | ||
- | \includegraphics[width=\imgwd cm]{\bg2} | + | \includegraphics[width=\imgwd cm]{\bggezi} |
}; | }; | ||
\node[anchor=north west] at (\mymid, -\y*2) { | \node[anchor=north west] at (\mymid, -\y*2) { | ||
- | \includegraphics[width=\imgwd cm]{\bg2} | + | \includegraphics[width=\imgwd cm]{\bggezi} |
}; | }; | ||
} | } | ||
行 80: | 行 80: | ||
{{: | {{: | ||
- | 结束了 | + | |
+ | ### 6 画格子 | ||
+ | 这一步最简单了,代码如下: | ||
+ | ```latex | ||
+ | %中间画格子 | ||
+ | \pgfmathparse{-\myht +1} | ||
+ | \let\btstart\pgfmathresult | ||
+ | \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, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ``` | ||
+ | |||
+ | 现在效果如下: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ### 7 画两侧方块 | ||
+ | 这一步也很简单,左右画方块有些冗余没关系,确保页面上都被覆盖。 | ||
+ | |||
+ | ```latex | ||
+ | \pgfmathparse{\mymid -\gezi*4.5 -0.5} | ||
+ | \let\leftrect\pgfmathresult | ||
+ | \pgfmathparse{\mymid +\gezi*4.5+0.5} | ||
+ | \let\rightrect\pgfmathresult | ||
+ | \fill[coloredge] (\leftrect, 1) rectangle (\mymid-15, -\myht); | ||
+ | \fill[coloredge] (\rightrect, | ||
+ | ``` | ||
+ | |||
+ | 效果如图: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | } | ||
+ | ### 8 增加长条装饰 | ||
+ | |||
+ | 这一步稍微遇到了些困难,因为起始位置好像不太准,不过问题不大,所见即所得,多调试几次,手工调整就好了 | ||
+ | |||
+ | ```latex | ||
+ | %左右装饰图片, | ||
+ | \newcommand{\geziwd}{0.3} %装饰图片的宽度 | ||
+ | \foreach \y in {-1,0, 1, ..., 10} { % 根据需要调整数字 | ||
+ | \node[anchor=north east] at (\leftrect+\geziwd, | ||
+ | \includegraphics[width=\geziwd cm]{\bgmid} | ||
+ | }; %north east 表示图片的坐标右上对齐 | ||
+ | \node[anchor=north west] at (\rightrect-\geziwd, | ||
+ | \includegraphics[width=\geziwd cm]{\bgmid} | ||
+ | }; %north west 表示图片的坐标左上对齐 | ||
+ | } | ||
+ | |||
+ | ``` | ||
+ | 效果图: | ||
+ | |||
+ | {{: | ||
+ | ### 总结和其他 | ||
+ | |||
+ | 1. 应该还可以再简化代码,特别是用`\node`填充图片,我也不是很熟悉,只是问了 AI,然后修改的。 | ||
+ | 1. 有个优化想法:可以第一步,把整个背景设置成浅绿色,然后再把中间的绿色方格画好就可以覆盖了,不用再画左右的方块了!这样的话,效率高了很多,也不容易出错。 | ||
+ | 1. 这个作品纸,只有左右对称,不需要 Y 轴的中线,如果上下对称,可以寻找 Y 的中线,类似设置 mymid一样。 | ||
+ | 1. 线条颜色和背景颜色,不那么容易设置。mac 电脑没法看到图片的 RGB 颜色,我用 python 写了段代码,直接读取图片颜色的 RGB 值。如果你有其他办法,也可以代替。 | ||
+ | 1. 代码和图片下载: | ||
+ | {{ : |
jsb/latex/shufazuopinzhi.1735442039.txt.gz · 最后更改: 2024/12/29 11:13 由 lanshizi