![期望输出](https://linux22.com/image/321577/%E6%9C%9F%E6%9C%9B%E8%BE%93%E5%87%BA.png)
我想在每页的空白处写下章节标题或章节主题。
我最终设法获得了一些有效的代码:
\setuplayout[edge=3cm,margin=3cm,backspace=7cm,height=27cm]
\setuptexttexts[edge][subject][subject]
\setuptext[edge][style=\rmd\sc]
\starttext
\rotate[rotate=270]{\subject{\rotate[rotation=90]{Some title}}}
\stoptext
我可以使用边缘、边距和退格宽度来调整文本相对于页面边缘和正文的位置,但没有其他/更好的选项来微调文本的位置吗?之内边缘还是边距?我试过了,\setuptext[edge][after={\blank[2cm]}]
但没有成功。
但最重要的是,我怎样才能让标题在边缘/边距中垂直,而不必定义标题旋转了吗? 即,我如何定义旋转里面 \setuptext
从而避免了丑陋的双重旋转(这会产生不必要的效果,在使用\section
编号版本时我没有尝试解决\subject
- 章节编号旋转偏离 90°;将图像设置为标题页的背景时也会产生副作用)?
期望输出
标题有自己的一页(像普通文本一样水平打印)。在其他页面上,它应该垂直写在侧面(像页眉一样)。例如,对于左页:
(来源:toile-libre.org)
在右页上,标题应朝向相反的方向(标题的顶部始终朝向最近的页面边框)。
备查
值得一提的是\setuptexttexts
和\setuptext
是一系列命令的一部分:
\setuptoptexts
和\setuptop
;\setupheadertexts
和\setupheader
;\setuptexttexts
和\setuptext
;\setupfootertexts
和\setupheader
;\setupbottomtexts
和\setupbottom
。
请参阅ConTeXt 参考手册(svnversion 329,2013 年 9 月 27 日)以供进一步阅读。
更新
我以为我找到了解决方案,\setuphead
进行了textcommand
争论。但是以下内容似乎没有任何效果:
\def\RotateTitle#1{\rotate[rotation=90]{#1}}
\setuptext[edge][style=\rmd\sc,color=white,textcommand={\RotateTitle}]
(既不做command
也不deeptextcommand
争论)。
答案1
要获得边距标记,您需要:
\setuptexttexts[margin][...][...][...][...]
例如,下面显示左页左边距和右页右边距上的章节标题。
\setuppagenumbering[alternative=doublesided]
\setuptexttexts[margin][section][][][section]
\showlayout
\setuphead[subject][alternative=inmargin]
\showframe
\starttext
\section{Tufte}
\input tufte
\page
\section{Tufte}
\input tufte
\stoptext
现在,剩下的就是找出正确的旋转。我使用它\framed
是因为控制框的宽度更容易,但您\rotate
也可以使用并手动设置框的宽度:
\setuppagenumbering[alternative=doublesided]
\setuptexttexts[margin][\setups{left}][][][\setups{right}]
\startsetups left
\framed[strut=no,align=high,height=\rightmarginwidth, orientation=90]{\getmarking[section]}
\stopsetups
\startsetups right
\framed[strut=no,align=high,height=\rightmarginwidth, orientation=-90]{\getmarking[section]}
\stopsetups
\setuplayout
[
backspace=1in,
cutspace=1in,
width=middle,
leftmargin=0.75in,
rightmargin=0.75in,
]
\setuphead[subject][alternative=inmargin]
\showframe
\starttext
\section{Tufte}
\input tufte
\page
\section{Tufte}
\input tufte
\section{Tufte}
\input tufte
\stoptext
这使
如果您想对位置有更多的控制权,另一个选择是使用\setlayer
。