我很高兴看到 XeLaTeX 能够如此出色地处理藏文,并希望将其用作我的软件的排版引擎。
我要做的第一件事是创建一个简单的文档类,并遵循下面将要描述的某些规则。我附上了一张带有彩色矩形的图片来展示我需要做的事情。
首先,我需要将文档的每一页都对齐,以便对于 A4/legal 大小的纸张,文本框可以打印在纸张两面的准确位置。纸张的背面需要翻转过来,因为传统的藏文手稿是按水平轴旋转的,而西方书籍是按垂直轴旋转的。对于 A4/legal 大小的纸张,纸张的两边应该各有一页藏文,但 A3 大小的纸张应该在纸张的两边各有两页藏文,以免浪费纸张。
页面必须是横向。
每个藏文页面应该有三个文本框,如图所示:最左边的文本框(黄色和紫色)顺时针旋转 90 度,但最右边的文本框(橙色)逆时针旋转 90 度。
用紫色标记的文本框是手稿的标题,应打印在每个偶数页上。
用红色标记的文本框显示了一些可以用 Unicode 表示的字符,应打印在每个奇数页以及标题页上。它后面应该有一个较长的空白区域,用蓝色矩形标记。
每个节通常用垂直线标记。这些行之间有空格(绿色矩形),但这些空格的长度会根据特定情况而变化。查看顶部页面和底部页面上的浅蓝色矩形,顶部的矩形由于换行而略短。这个单词由两列组成,而底部浅蓝色矩形标记的单词只有一列,因此在分隔节的垂直线之间留有全长的空间。
我主要需要您的帮助来学习如何创建在打印页面上具有固定位置的带框文本框,并将文本框倒置打印在纸张背面。但是,如果您能提供与我试图完成的任务相关的任何其他提示,我将不胜感激。
答案1
最终,您将不得不手动添加分页符。我添加了一些命令来提供帮助。\pagepar 用于在段落之间分页,\pagenopar 用于在段落中间分页。两者都接受放置在右下角的字符或框。
\documentclass{article}
\usepackage{geometry}
\usepackage{flowfram}
\usepackage{shapepar}
\usepackage{tikz}
\usepackage{graphicx}
\usepackage{mwe}
\geometry{paperwidth=29.7cm,paperheight=7cm,margin=0cm}
\pagestyle{empty}
\newcommand{\yigobox}{\noindent\makebox[2.11cm][l]{yigo}}
\newcommand{\pagepar}[1]% #1 = character or box at end
{\ifvmode\vfill\fi\hfill{#1}\newpage}
\newcommand{\pagenopar}[1]% #1 = character or box at end
{#1\parfillskip=0pt\newpage\parfillskip=0pt plus1fil\noindent}
\newdynamicframe[1]{29.7cm}{7cm}{0cm}{0cm}[title]
\setdynamiccontents*{title}{%
\begin{tikzpicture}
\draw[color=black!60!red]
(0,0) (29.7,7)%bounding box
(5.7,1.93) rectangle +(18.3,3.14)
(5.77,2) rectangle +(18.16,3)
(6.2,2.43) rectangle +(17.3,2.14)
(6.27,2.5) rectangle +(17.16,2)
(7.67,2.5) rectangle +(.07,2)
(8.27,2.5) rectangle +(.07,2)
(21.47,2.5) rectangle +(.07,2)
(21.97,2.5) rectangle +(.07,2);
\node[rotate=90] at (6.97,3.5) {\leftside};
\node[rotate=-90] at (22.67,3.5) {\rightside};
\end{tikzpicture}}
\newdynamicframe[2]{29.7cm}{7cm}{0cm}{0cm}[image]
\setdynamiccontents*{image}{%
\begin{tikzpicture}
\draw[color=black]
(0,0) (29.7,7)%bounding box
(2.63,1.06) rectangle +(24.1,4.94)
(2.7,1.13) rectangle +(23.96,4.8)
(3.2,1.63) rectangle +(22.9,3.74)
(3.27,1.7) rectangle +(22.76,3.6)
(4.5,1.7) rectangle +(.07,3.6)
(5,1.7) rectangle +(.07,3.6)
(12.38,1.7) rectangle +(.07,3.6)
(12.94,1.7) rectangle +(.07,3.6)
(16.24,1.7) rectangle +(.07,3.6)
(16.8,1.7) rectangle +(.07,3.6)
(24.3,1.7) rectangle +(.07,3.6)
(24.8,1.7) rectangle +(.07,3.6);
\node at (14.625,3.5) {\image};% max width=3.2cm, max height=3.6cm
\node[rotate=90] at (3.92,3.5) {\leftside};
\node[rotate=-90] at (25.45,3.5) {\rightside};
\end{tikzpicture}}
% set up text flow arround image
\def\textflowimage{\shapepar[1cm]{{9.5}% text flow arround image
{0} b{0} b{11.8}\\
{0} t{0}{7} t{11.8}{7.1} \\
{3.6} t{0}{7} t{11.8}{7.1} \\
{3.6} e{7} e{18.9}}}
\newdynamicframe[3-100]{29.7cm}{7cm}{0cm}{0cm}[standard]
\setdynamiccontents*{standard}{%
\begin{tikzpicture}
\draw[color=black]
(0,0) (29.7,7)%bounding box
(2.63,1.18) rectangle +(24.1,4.64)
(3.43,1.18) rectangle +(22.5,4.64);
\node[above,inner sep=0] at (14.85,6.1) {\header};
\node[rotate=90] at (3.03,3.5) {\leftside};
\node[rotate=-90] at (26.33,3.5) {\rightside};
\end{tikzpicture}}
\newflowframe[1]{12.7cm}{1.5cm}{8.5cm}{2.6cm}
\newflowframe[2]{18.9cm}{3.5cm}{5.3cm}{1.7cm}
\newflowframe[3-100]{22.3cm}{4.3cm}{3.5cm}{1.4cm}
\def\imageH{3.6cm}% max height of image
\def\imageW{3.2cm}% max width of image
\def\leftside{}% default
\def\rightside{}% default
\def\image{}% default
\def\header{}% default
\begin{document}
\Large
\def\leftside{left side \thepage}
\def\rightside{right side \thepage}
\noindent Title page.
\newpage
\def\image{\includegraphics[width=\imageW,height=\imageH]{image}}
\textflowimage\yigobox
This is a test of the ability to flow text around the image in the center of this page.
\newpage
\def\header{header}
\yigobox
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit, vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum
gravida mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a, magna. Donec vehicula augue eu neque. Pellentesque habi-
tant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Mauris ut leo. Cras viverra metus rhoncus sem. Nulla et lectus vestibulum
urna fringilla ultrices. Phasellus eu tellus sit amet tortor gravida placerat. Integer sapien est, iaculis in, pretium quis, viverra ac, nunc. Praesent eget
sem vel leo ultrices bibendum. Aenean faucibus. Morbi dolor nulla, malesuada eu, pulvinar at, mollis ac, nulla.
\pagenopar{}Curabitur auctor semper nulla. Donec
varius orci eget risus. Duis nibh mi, congue eu, accumsan eleifend, sagittis quis, diam. Duis eget orci sit amet orci dignissim rutrum.
\end{document}
我假设第 2 页打印在标题页的背面,否则我需要添加一些空白页。
答案2
我在 XeTeX 中添加了自动 dBu aKhyud ༄༅ 插入功能,使西藏经典长篇书籍的排版更加容易,大约 9 年前完成。Cygwin64 和 Linux 的可执行文件和一些排版示例可在以下位置找到https://drive.google.com/drive/folders/1NHzc5VM1ZYwj1iLSfXndNxeOmb3SGNKO?usp=sharing,以及 tibclassic.tex 包,可从以下位置获取https://gitee.com/gendun-jiangcuo/tibexpkg.git抱歉,大部分文件都是中文的。可从以下网址获取https://gitee.com/gendun-jiangcuo/tibexweb.git。如果您有很多页面需要排版,请尝试一下。这是一个例子,抱歉代码太乱了,因为我不太懂 TeX 编程。注释是中文的,谷歌翻译可能会有帮助。
\input tibclassic %排版藏文長函書的庫
\input colordvi %彩色文字,說明見dvips.pdf
%
\setpaperhalfa4%將紙張設爲半張A4大小
\DontSplitDblShad%將།།排成兩個།緊挨着,在後面留空的風格,གཉིས་སྦྱར་མ།
%
\SamChe%缺省字體爲大SambhotaDege
%封面頁
\null\vfil%控制上下居中
\setboxwidth{23cm} %标题框宽度
\setboxheight{3.5cm} %标题框高度
\vskip-.4cm
\vbox{ %
\hbox{\kern.6cm %kern参数控制居中
\vbox{\quadrabox{\hbox{\SamChe ༄༅།། བླ་མ་མགོན་པོ་དབྱེར་མེད་བར་དོའི་འཕྲེང་གྲོལ་བཞུགས་སོ།།}}}}
}
\vfil\null%控制上下居中
\eject%分頁
%第二頁
\def\hdr_up{\vskip4.5pt}
\def\pre_phdr{\SamAu འཕྲེང}%頁碼前的頁眉
\def\post_phdr{\SamAu གྲོལ}%頁碼後的頁眉
\pagehdrtrue %放頁眉頁碼
\setboxwidth{25.4cm} \setboxheight{6.1cm} %
\hbox{\kern-3.5pc\kern.9cm %kern参数控制居中
\vbox to 0pt{%
\vskip-.83cm %
\quadrabox{\null} %
\vss}}\nointerlineskip%
\vskip.73cm %控制第一行文字的位置正好在框內
\leftskip=3.7cm\rightskip=3.7cm %控制文字的左右邊距
\header\kern.1em བླ་མ་མགོན་པོ་དབྱེར་མེད་ལ།། བདག་ནི་གུས་པས་སྐྱབས་སུ་མཆི།། བདག་སོགས་སེམས་ཅན་ཐམས་ཅད་ཀྱི།། ཉོན་མོངས་མ་ལུས་སེལ་བར་ཤོག། མགོན་པོ་བླ་མ་དབྱེར་མེད་ལ།། བདག་ནི་གུས་པས་སྐྱབས་སུ་མཆི།། བདག་སོགས་སེམས་ཅན་
\vfil\eject
%第三頁
\setboxwidth{25.4cm} \setboxheight{6.1cm} %
\hbox{\kern-3.5pc\kern.9cm%
\vbox to 0pt{%
\vskip-.83cm %
\quadrabox{\null} %
\vss}}\nointerlineskip%
\vskip.73cm
\header\kern.1em ཐམས་ཅད་ཀྱི།། བར་ཆད་མ་ལུས་སེལ་བར་ཤོག།\ss ཧོ། ཐུགས་མཆོག་ཞི་བའི་ངང་ལས་གཡོ་མེད་ཀྱང་།། མ་རུང་གདུག་ཅན་ཐམས་ཅད་འདུལ་པའི་ཕྱིར།། ཞལ་གཅིག་ཕྱག་དྲུག་འཇིགས་པའི་སྐུར་སྟོན་པ།། ཡེ་ཤེས་མགོན་པོའི་ཞབས་ལ་
\vfil\eject
%第四頁
\leftskip=0pt\rightskip=0pt\frametrue%從這一頁開始有邊框
གསོལ་བ་འདེབས།། དེ་ལྟར་སྟོན་པའི་རྣལ་འབྱོར་བདག་ཅག་གིས།། གཅིག་ཏུ་བྱང་ཆུབ་སྙིང་པོ་བསྒྲུབ་པ་ལ།། བར་ཏུ་གཅོད་པའི་མིང་ཡང་མེད་པ་དང་།། མཐུན་རྐྱེན་ཡིད་བཞིན་འགྲུབ་པར་བྱིན་གྱིས་རློབས།། རྣལ་འབྱོར་དམ་ཚིག་ལྡན་པའི་རྗེས་སུ་འབྲང་།། སྒྲུབ་ལ་བར་དུ་གཅོད་པའི་དགྲ་བགེགས་འདུལ།། བར་དོའི་འཇིགས་སྐྱོབ་དངོས་གྲུབ་རྣམ་གཉིས་སྟེར།། སྟོབས་ལྡན་ཕྱག་དྲུག་པ་ལ་ཕྱག་འཚལ་ལོ།། རེ་ས་གཞན་ན་མེད་དོ་ཐུགས་རྗེས་ཟུང་།། འཆི་ཁར་ཞལ་མཆོག་སྟོན་པར་བྱིན་གྱིས་རློབས།། འཇིགས་རུང་བར་དོའི་འཕྲེང་ལ་འགྲོ་ཙ་ན།། ཐུགས་རྗེས་གཟིགས་ཤིག་མྱུར་མཛད་ཡེ་ཤེས་མགོན།། མཆོག་དང་ཐུན་མོངས་
\eject %加有四層方框時P2,P3,P4皆要手工斷頁
%第五頁開始統一處理
\TibPageLines=5%開始自動放雲頭符,每隔2*5行放一個
\setparshape{5}{3}%設置段落行為5短+5長,不超過6*2頁
དངོས་གྲུབ་སྩལ་ཏུ་གསོལ།། བདག་ནི་ནམ་ཞིག་འཆི་བའི་དུས་ཀྱི་ཚེ།། ཐུགས་རྗེས་མྱུར་མགྱོགས་ལྡན་པའི་སྐུར་བཞེངས་ལ།། རྣམ་འཕྲུལ་དུ་མའི་མཛད་པའི་ཟློས་གར་གྱིས།། སྐྱབས་མེད་བདག་ལ་མི་འཇིགས་སྩལ་ཏུ་གསོལ།། དགེ་པའི་འཕང་པའི་ཚེ་དང་བསོད་ནམས་ཟད།།འཇིགས་རུང་བདུད་དང་གཤིན་རྗེའི་ཕོ་ཉས་ཁྲིད།། མགོན་མེད་ཉམ་ཐག་བར་དོར་འཁྱམས་པའི་ཚེ།། ཐུགས་རྗེས་གཟིགས་ཤིག་མྱུར་མཛད་ཡེ་ཤེས་མགོན།། ཟློག་མེད་ལས་རླུང་དྲགས་པོས་རྒྱབ་ནས་དེད།། ཉོན་མོངས་ཞགས་པ་ནག་པོའི་སྐེད་ནས་བཅིངས།། ཅི་བྱ་གཏོལ་མེད་བར་དོར་འཁྱམས་པའི་ཚེ།། སྐྱབས་མགོན་མཛོད་ཅིག་མྱུར་མཛད་ཐུགས་རྗེ་ཅན།། ཆ་མེད་ཡུལ་དུ་གྲོགས་མེད་གཅིག་པུར་འཁྱམས།། འཇིགས་སྐྲགས་འཁྲུལ་པའི་སྣང་བ་ཆུ་ལྟར་འཁྲུགས།། གར་སྐྱེ་གདེངས་མེད་བར་དོར་འཁྱམས་པའི་དུས།། འཇིགས་ལས་སྒྲོལ་ཅིག་མྱུར་མཛད་ཐུགས་རྗེ་ཅན།། ལས་ལས་གྲུབ་པའི་དམྱལ་བའི་སྲུང་མ་རྣམས།། འཇིགས་པའི་རྣམ་འགྱུར་སྟོན་པ་དུ་མས་སྐོར།། སྐྱབས་འཚོལ་རིག་རིག་ཕྱོགས་སུ་བལྟ་བའི་དུས།། སྐྱབས་དང་དཔུང་གཉེན་མཛོད་ཅིག་ཐུགས་རྗེ་ཅན།། མངོན་ཤེས་ཕྲ་མོས་རང་གི་སྔར་བྱས་སྡིག། ཅུང་ཟད་དྲན་པས་རང་ལ་ཡིད་ཆད་ཅིང་།། འགྱོད་པའི་མཚོན་ཆས་རང་སྲོག་གཅོད་བཞིན་བརྒྱལ།། འདི་འདྲའི་འཇིགས་ལས་སྐྱོབས་ཤིག་ཐུགས་རྗེ་ཅན།། མྱུར་མཛད་ཐུགས་རྗེ་ཆེན་པོ་ཁྱོད་ཉིད་ཀྱིས།། དུས་འདིར་བདག་ལ་ཞལ་མཆོག་སྟོན་མཛོད་ལ།། འཇིགས་པ་ལས་སྒྲོལ་འཇིགས་མེད་གནས་སུ་སྐྱོལ།། རྣམ་དག་ཞིང་དུ་རྟེན་བཟང་མཆོག་ཐོབ་ཤོག།
\ss ༈\nb\ss བླ་མ་ཁྱོད་ཡིན་ཤེས་རྒྱུད་བྱིན་གྱིས་རློབས།། ཡི་དམ་ཁྱོད་ཡིན་དངོས་གྲུབ་མ་ལུས་སྩོལ།། མཁའ་འགྲོ་ཁྱོད་ཡིན་ཁམས་གསུམ་དབང་དུ་བསྡུས།། ཆོས་སྐྱོང་ཁྱོད་ཡིན་ལས་བཞིའི་འཕྲིན་ལས་སྒྲུབས།། འདི་དང་ཕྱི་མ་བར་དོའི་གནས་སྐབས་སུ།། མྱུར་མཛད་བླ་མ་མགོན་པོས་རྗེས་བཟུང་ནས།། ཕྱི་ནང་གསང་བའི་བར་ཆད་ཀུན་ཞི་ཞིང་།། དོན་གཉིས་ལྷུན་གྱིས་འགྲུབ་པར་མཛད་དུ་གསོལ།། དགེ་བ་འདི་ཡིས་ཚེ་རབ་ཀུན་ཏུ་བདག། རྒྱལ་བའི་དམ་ཆོས་མ་ལུས་འཛིན་པ་དང་།། དེ་ཡི་འགལ་རྐྱེན་སེལ་ཞིང་མཐུན་རྐྱེན་སྒྲུབ།། མྱུར་མཛད་མགོན་པོ་དབྱེར་མེད་འགྲུབ་གྱུར་ཅིག།
\SamAu ཅེས་པ་འདི་ནི་བཙུན་པ་བློ་བཟང་ཆོས་ཀྱི་རྒྱལ་མཚན་གྱིས་སྦྱར་བའོ།། ཚེ་གླིང་ཡོངས་འཛིན་རིན་པོ་ཆེའི་གསུང་འབུམ་མ་བའི་ནང་དུ་བཞུགས་སོ།།
\Green{ཡི་གེ་འདི་ནི་གངས་རྒྱན་མེ་ཏོག་ཅེས་པའམ། ཡང་ན་\romanfittib{\TibeX}ཞེས་པ་དང་། རྒྱ་མིང་དུ་}{\font\HzSong="SimHei" at 16pt \Red{\lower-3ex\hbox{\HzSong 雪蓮}}}\Green{ཞེས་པའི་མཉེན་ཆས་ལ་བརྟེན་ནས་བཀོད་བསྒྲིགས་བྱས་པའོ། །}\hfil
\totalpages=8%告訴TibeX一共有多少頁,在最後一個奇數頁眉加བྱོན།
\bye