如何排版“玄奘游记”页面?

如何排版“玄奘游记”页面?

我想创建一种简单的模板,用于打印然后手动使用。

我想要创建的一个叫做元光耀(原稿用纸),无非就是那些垂直放置的方块,用于书写和练习日语。

这就是我想要做的(A4页):

enter image description here

注意:它们必须是精确的正方形。

我认为右上角的不规则边框不应该存在。

我曾考虑过使用 Tikz,但我不知道该怎么做……我在这个网站上搜索了有关如何创建笔记本模板的提示,并在那里进行了调整,但一无所获。我搜索了一些起点Texample.net也有,但我没有什么可以利用的。

我希望我能提供一个 MWE,但这里的重点不是我无法使某些东西工作,而是我不知道某些东西可能是什么。

答案1

一个解决方案\leaders

  • 这些盒子都是正方形的。
  • 边距相等。

配置:

  • \cellunit:单元格的宽度/高度
  • \fboxrule:框线的线宽
  • \hnum:水平方向的单元格数量
  • \vnum:垂直方向的单元格数量
  • 颜色设置
  • 纸张尺寸

该示例使用 10 x 20 个单元格(= 200 个单元格)的网格。

\documentclass[a4paper]{article}

\usepackage{xcolor} % fixes \fbox

\pagestyle{empty} % no page number

\setlength{\topskip}{0pt} % we do not have text lines
\setlength{\maxdepth}{0pt}

\setlength{\fboxsep}{0pt}

\newlength{\cellunit}
\newlength{\cellsep}

%%% configuration begin %%%
\setlength{\fboxrule}{.8pt} % line width of the frame lines
\setlength{\cellunit}{13mm} % width and height of the cell excluding frame
\newcommand*{\hnum}{10} % number of cells, horizontal direction
\newcommand*{\vnum}{20} % number of cells, vertical direction
\color[RGB]{50,100,200}
%%% configuration end %%%

\newcommand*{\cell}{%
  \fbox{%
    \rule{0pt}{\cellunit}%
    \rule{\cellunit}{0pt}%
  }%
}

% calculate the vertical margin
\fboxrule=2\dimexpr.5\fboxrule\relax % even sp number
\newlength{\margin}
\margin=.5\dimexpr\paperheight-\vnum\cellunit-\vnum\fboxrule-\fboxrule\relax

\ifdim\margin<0pt
  \errmessage{Cell dimensions or cell numbers are too large for the page}%
\fi

% set equal margins everywhere
\usepackage[margin=\margin]{geometry}

\begin{document}
\vbox to \textheight{%
  \kern.5\fboxrule
  \cleaders\vbox{%
    \kern-.5\fboxrule
    \hbox to \textwidth{%
      \cellsep=\dimexpr(
        \textwidth-\hnum\dimexpr\cellunit+2\fboxrule\relax   
      )/\numexpr\hnum-1\relax\relax
      \kern-.5\cellsep   
      \xleaders\hbox{%
        \kern.5\cellsep
        \cell
        \kern.5\cellsep   
      }\hskip\dimexpr\textwidth+\cellsep\relax
      \kern-.5\cellsep
    }%
    \kern-.5\fboxrule
  }\vskip\dimexpr\textheight-\fboxrule\relax
  \kern.5\fboxrule 
}%
\end{document}

Result

答案2

enter image description here

\documentclass[pstricks]{standalone}
\usepackage{fp}

% user defined macros
\FPeval\Width{21.0}     % paper width
\FPeval\Height{29.7}    % paper height
\FPeval\HM{1}           % horizontal margin
\FPeval\Gap{0.7}        % column gap
\FPeval\M{10}           % number of columns

% auxiliary macros
\FPeval\Side{round((Width-Gap*(M-1)-2*HM)/M:2)}
\FPeval\N{round((Height-2*HM)/Side:0)}
\FPeval\VM{round((Height-N*Side)/2:2)}

\SpecialCoor
\begin{document}
\begin{pspicture}[showgrid=false](\Width,-\Height)
    \multips(0,0)(0,-\Side){\N}{\multips(\HM,-\VM)(!\Side\space \Gap\space add 0){\M}{\psframe[dimen=middle](0,0)(\Side,-\Side)}}
\end{pspicture}
\end{document}

动画版:

科学定律:列间距越小,行数越少

enter image description here

\documentclass[pstricks]{standalone}
\usepackage{fp}
\SpecialCoor
\usepackage{multido}
\begin{document}
\multido{\n=0.0+0.2}{10}{%
\FPeval\Width{21.0}
\FPeval\Height{29.7}
\FPeval\HM{1}
\FPeval\Gap{\n}
\FPeval\M{10}
\FPeval\Side{round((Width-Gap*(M-1)-2*HM)/M:2)}
\FPeval\N{round((Height-2*HM)/Side:0)}
\FPeval\VM{round((Height-N*Side)/2:2)}
\begin{pspicture}[showgrid=false](\Width,-\Height)
    \multips(0,0)(0,-\Side){\N}{\multips(\HM,-\VM)(!\Side\space \Gap\space add 0){\M}{\psframe[dimen=middle](0,0)(\Side,-\Side)}}
\end{pspicture}}
\end{document}

根据 Kumar 医生的评论进行编辑

pdflatex对于在 Windows 上使用或的用户xelatex,请使用 switch 编译以下内容。由于个人偏好,-shell-escape我不喜欢。auto-pst-pdf

\documentclass{article}
\usepackage{filecontents}
\begin{filecontents*}{GenkoYoshi.tex}
\documentclass[pstricks]{standalone}
\usepackage{fp}

% user defined macros
\FPeval\Width{21.0}     % paper width
\FPeval\Height{29.7}    % paper height
\FPeval\HM{1}           % horizontal margin
\FPeval\Gap{0.7}        % column gap
\FPeval\M{10}           % number of columns

% auxiliary macros
\FPeval\Side{round((Width-Gap*(M-1)-2*HM)/M:2)}
\FPeval\N{round((Height-2*HM)/Side:0)}
\FPeval\VM{round((Height-N*Side)/2:2)}

\SpecialCoor
\begin{document}
\begin{pspicture}[showgrid=false](\Width,-\Height)
    \multips(0,0)(0,-\Side){\N}{\multips(\HM,-\VM)(!\Side\space \Gap\space add 0){\M}{\psframe[dimen=middle](0,0)(\Side,-\Side)}}
\end{pspicture}
\end{document}
\end{filecontents*}

\begin{document}
\immediate\write18{latex GenkoYoshi}
\immediate\write18{dvips GenkoYoshi}
\immediate\write18{ps2pdf GenkoYoshi.ps}
% begin cleaning
% The following codes are written with Windows' shell commands only for Windows user.
% If you use Linux, then ask other people to translate the codes to Linux's equivalent. 
% If you have no friend who can help you, just comment the code and manually remove the associated files.
\makeatletter
\@for\x:={tex,dvi,ps,log,aux}\do{\immediate\write18{cmd /c del GenkoYoshi.\x}}
\makeatother
% end cleaning
Done\ldots\ please open the generated GenkoYoshi.pdf!
\end{document}

答案3

尝试使用表格。您可以调整间距以满足您的需求。

\documentclass{article}
\usepackage[margin=1in]{geometry}
\pagestyle{empty}
\newcommand{\sss}{.2in}
\newcommand{\vvv}{.14in} % Note: This needs to be 70% of the \sss value
\newcommand{\hgt}{\rule{0pt}{\vvv}}
\newcommand{\ccc}{%
\begin{tabular}{|p{\sss}|}\hline 
\\\hgt \\\hline  \\\hgt \\\hline  \\\hgt \\\hline \\\hgt \\\hline   \\\hgt \\\hline 
\\\hgt \\\hline  \\\hgt \\\hline  \\\hgt \\\hline \\\hgt \\\hline   \\\hgt \\\hline 
\\\hgt \\\hline  \\\hgt \\\hline  \\\hgt \\\hline \\\hgt \\\hline   \\\hgt \\\hline 
\\\hgt \\\hline  \\\hgt \\\hline  \\\hgt \\\hline \\\hgt \\\hline   \\\hgt \\\hline 
\\\hgt \\\hline  \\\hgt \\\hline  \\\hgt \\\hline \\\hgt \\\hline   \\\hgt \\\hline 
\end{tabular}}
\begin{document}
\ccc\quad \ccc\quad \ccc\quad \ccc\quad \ccc\quad 
\ccc\quad \ccc\quad \ccc\quad \ccc\quad \ccc\quad 
\end{document}

enter image description here

答案4

这是另一个tikz使用解决方案matrix of nodes

代码中的巧妙部分被无耻地窃取了

Tikz foreach 矩阵内部

screenshot

您可以轻松更改行数、列数和列间距以满足您的需要。

\documentclass{article}
\usepackage[paper=a4paper, showframe=true]{geometry}
\usepackage{etoolbox}
\usepackage{tikz}
\usetikzlibrary{matrix}

\begin{document}
\let\mymatrixcontent\empty
\newcommand{\row}{%
  \foreach \j in {1,...,25}{
    \foreach \i in {1,...,10} {%
      \begingroup\edef\x{\endgroup
      \noexpand\gappto\noexpand\mymatrixcontent{ {}\&}}\x
      }%
    \gappto\mymatrixcontent{\\}%
  }
}
\row

\begin{tikzpicture}
\tikzset{every node/.style={minimum size=8mm},
  pre/.style={draw}}
  \matrix (a) [ampersand replacement=\&,matrix of math nodes, nodes={pre},column sep=6mm]{
    \mymatrixcontent
  };
\end{tikzpicture}

\end{document}

相关内容