![上下文:边距和文本之间的线](https://linux22.com/image/391054/%E4%B8%8A%E4%B8%8B%E6%96%87%EF%BC%9A%E8%BE%B9%E8%B7%9D%E5%92%8C%E6%96%87%E6%9C%AC%E4%B9%8B%E9%97%B4%E7%9A%84%E7%BA%BF.png)
我使用 ConteXt。在 StackExchange 上,我找到了一个 LateX 代码,用于在文本和边距/边距段落之间添加一条线。下图中可以看到这条线。
之后,我改用了 ConteXt。在 ConteXt 中,经过几个小时的搜索,我真的不知道该怎么做。我希望有人能帮助我。我正在进行的项目到目前为止有以下代码:
\setuppapersize[A5]
\setuplayout[backspace=15mm, width=90mm, rightmargin=35mm]
\showframe[rightmargin]
\setuppagenumbering[alternative=doublesided, location={footer,inright, align=right}]
\setupinmargin[both][style=\bfx\setupinterlinespace,align=right]
\mainlanguage[la]
\language[la]
\setuphyphenation[method=traditional]
\setuptolerance[horizontal,strict] %zorgt voor minder overfull boxes
\setupitemize[packed]
\setuplinenumbering[step=5, location=inner, align=outer]
\setupcolors[state=start]
\setupindenting[small, yes]
\setupinmargin[style=small, align=right, location=outer]
\setupheadertexts[subject][title]
\setupheader[section][textstyle={sc,bold}]
\usemodule[caesar]
\setupbodyfont[11pt]
\starttext
\setupinterlinespace[big]
\margintext{vulpes}
\title{\color[orange]{\sc\bold{Corvus et Vulpēs}}}
\subject{\sc\bold{Apud capitulum X}}
\startlinenumbering
Corvus est avis, quae nōn tanta est\margintext{dhg h hh hhhh fskfa} quanta \margintext{fdgfsg fsggfs}aquila. Pedēs, cauda, ālae, rōstrum et cētera nigra sunt. Cum per āera volat, ālās movēre necesse est. Cum in arboribus sedet, nōn cadit. Pedibus enim sē rāmīs tenēre potest neque tam crassa est ut puer Rōmānus. Ergō etiam ā tenuibus rāmīs sustinērī potest. Corvus pedibus in terrā ambulāre potest. Nīdōs autem nōn in terrā, sed in rāmīs faciunt, quī in altīs arboribus sunt, quō multa animālia ascendere nōn possunt. Pullī nōn ex corvīs ipsīs, sed ex ōvīs eōrum veniunt. Nūlla avis vōcem tam foedam habet quam corvus. Cum enim corvus cantat, ''krra-krra-krra'' audītur.
Etiam vulpēs in terrā ambulāre potest. Nam ea quoque pedēs habet. Numerus pedum est quattuor. Vulpēs nōn est tanta quantus lupus neque tam parva quam mūs. Vulpēs dentibus parva animālia capit et ēst. Ab aliīs bēstiīs timētur, quia improba est. In silvā nēmō amīcus vulpis esse vult neque ūlla bēstia eās amat.
Ecce ... hic corvus in rōstrō frustum cāseī tenet. Cāseus est cibus pāstōrum. Pāstores cāseōs ē lacte ovium faciunt. Lac album est et bibī potest. Cāseus nōn bibī, sed edī potest. Corvus ipse cāseum facere nōn potest, sed eum ā pāstōribus, quī dormiunt, capere potest.\margintext{fasdfa}
Corvus circum oppidum Tūsculum volat, ubi vīllam cum magnō hortō videt. Illīc fenestra aperītur. Corvus per illam fenestram parvum cubiculum videt, in quo ancilla stat. Quae est illa ancilla? Syra est, quae illīc saccōs cibī plenōs numerat. In aliīs saccīs aliī cibī sunt: pīra, māla, panis, cāseus et cētera. Inter illōs saccōs corvus magnum saccum esse videt. Ō quantus est ille saccus! Quid inest?
Etiam Iūlius cubiculum intrat et cāseum abesse videt. Ōstium post sē claudit et īrātus Syram interrogat accūsatque: ''Ubi est cāseus meus? Quis habet cāseum meum? Tūne? Improba ancilla! Mala est ancilla, quae cāseum dominī ēst!'' Dominus eam verberāre vult neque potest; nam baculum eius in ātriō est. Ergō exit ē cubiculō et cum baculō suō revenit. ...
\stoplinenumbering
\stoptext
答案1
您可以使用一些 MetaFun。从覆盖层中,您可以访问页面的不同字段。
回应评论:
水平线如何才能向上移动到标题下方(而垂直线仍然接触水平线),从而使文本和线之间的空间约为 8 毫米。
默认情况下,标题和文本块之间的距离为 0pt,标题与字段顶部对齐。可能可以使用一些丑陋的黑客来获取标题字段的基线左右,但将标题字段的高度缩小到\lineheight
并增加标题距离要容易得多。设置时headerdistance
您还需要设置,footerdistance
因为后者是用前者初始化的。MetaFun 代码只需要很少的调整。
我怎样才能使页眉填充在边距中,而不仅仅是文本宽度?
该\setupheadertexts
命令实际上最多需要五个参数。
\setupheadertexts
[<position>]
[<left odd>] [<right odd>]
[<left even>][<right even>]
您<position>
可以选择margin
将标记放在边距中。不幸的是,内容对于边距来说太宽了,所以我不得不使用一点\hfill
魔法\llap
。
我怎样才能将页码放在外边距的页脚中?现在它是“在右”,但左对齐。
页码已经在外部页脚中,但您似乎对内部对齐方式不满意。您可以使用 来修复对齐方式command
。您没有指定想要的对齐方式,所以我只使用了\centerline
。
您对排版质量的建议似乎破坏了该命令的效果
\setupinterlinespace[big]
。
实际上,即使没有或对齐\setupinterlinespace[big]
,对我来说也不起作用(参见hz
hanging
Wolfgang 的评论至于原因)。你可以使用类似的方法\setupinterlinespace[line=3.8ex]
。
对于页码:我有一些代码来实现我的目标
这可能可行,但对我来说似乎太复杂了。command
中的方法\setuppagenumbering
可以实现类似的效果,而且更短。而且您不会遇到层碰撞的问题。
页边距中的注释必须以“负”字缩进。
您建议的定义看起来不错,但我没有检查它为什么不起作用。相反,我将环境中的定义重新转换为命令并command=\exdent
在 中使用\setupmargindata
。
在 的定义里面\exdent
有一个\blank[-line]
。这是因为\startnarrower
开始一个新段落,并在我们要删除的此处插入一个空白行。
命令
\outerline
不存在。我该怎么办?
您已经发现\leftline
,\rightline
所以剩下要做的就是根据您是在左页还是右页在两者之间切换。这是使用 完成的\doifoddpageelse{\rightline}{\leftline}
。
\setuppapersize[A5]
\setuplayout
[% vertical
header=\lineheight,
headerdistance=8mm,
footerdistance=0pt,
% horizontal
backspace=15mm,
width=90mm,
rightmargin=35mm]
\startuseMPgraphic{page}
path outer, text, head, ohead, p, q ;
StartPage ;
outer := Field[Text] [OuterMargin] ;
text := Field[Text] [Text] ;
head := Field[Header] [Text] ;
ohead := Field[Header] [OuterMargin] ;
if OnRightPage :
p := .5[lrcorner text,llcorner outer] -- .5[lrcorner head,llcorner ohead] ;
q := llcorner head -- lrcorner ohead ;
else :
p := .5[lrcorner outer,llcorner text] -- .5[lrcorner ohead,llcorner head] ;
q := llcorner ohead -- lrcorner head ;
fi ;
draw p withcolor \MPcolor{orange} ;
draw q withcolor \MPcolor{orange} ;
StopPage ;
\stopuseMPgraphic
\defineoverlay[page][\useMPgraphic{page}]
\setupbackgrounds[page][background=page]
\setuppagenumbering
[alternative=doublesided,
command=\doifoddpageelse{\rightline}{\leftline},
location={footer,inright}]
\mainlanguage[la]
\language[la]
\setuphyphenation[method=traditional]
\setuptolerance[horizontal,strict] %zorgt voor minder overfull boxes
\setuplinenumbering[step=5, location=inner, align=outer]
\setupindenting[small,yes]
\setupinterlinespace[line=3.8ex]
\setupheadertexts
[text]
[subject][]
[][title]
\setupheadertexts
[margin]
[][\hfill\llap{\getmarking[title]}]
[\rlap{\getmarking[subject]}\hfill][]
\setupheader[style=\bf\cap]
\setuphead
[title]
[textcolor=orange,
textstyle=\bf\cap]
\setuphead
[subject]
[textstyle=\bf\cap]
\starttexdefinition unexpanded exdent #1
\blank[-line] % Remove the newline from the following \startnarrower
\startnarrower[left]
\setupindenting[-\leftskip,yes]
#1
\stopnarrower
\stoptexdefinition
\setupmargindata
[margintext]
[location=outer,
width=\outermarginwidth,
align=inner,
style=small,
command=\exdent]
\usemodule[caesar]
\definefontfeature
[default][default]
[protrusion=quality,
expansion=quality]
\setupbodyfont[11pt]
\setupalign[hz,hanging]
\starttext
\margintext{vulpes}
\starttitle[title={Corvus et Vulpēs}]
\startsubject[title={Apud capitulum X}]
\startlinenumbering
Corvus est avis, quae nōn tanta est\margintext{dhg h hh hhhh fskfa} quanta \margintext{\samplefile{ward}}aquila. Pedēs, cauda, ālae, rōstrum et cētera nigra sunt. Cum per āera volat, ālās movēre necesse est. Cum in arboribus sedet, nōn cadit. Pedibus enim sē rāmīs tenēre potest neque tam crassa est ut puer Rōmānus. Ergō etiam ā tenuibus rāmīs sustinērī potest. Corvus pedibus in terrā ambulāre potest. Nīdōs autem nōn in terrā, sed in rāmīs faciunt, quī in altīs arboribus sunt, quō multa animālia ascendere nōn possunt. Pullī nōn ex corvīs ipsīs, sed ex ōvīs eōrum veniunt. Nūlla avis vōcem tam foedam habet quam corvus. Cum enim corvus cantat, ''krra-krra-krra'' audītur.
Etiam vulpēs in terrā ambulāre potest. Nam ea quoque pedēs habet. Numerus pedum est quattuor. Vulpēs nōn est tanta quantus lupus neque tam parva quam mūs. Vulpēs dentibus parva animālia capit et ēst. Ab aliīs bēstiīs timētur, quia improba est. In silvā nēmō amīcus vulpis esse vult neque ūlla bēstia eās amat.
Ecce \textellipsis\ hic corvus in rōstrō frustum cāseī tenet. Cāseus est cibus pāstōrum. Pāstores cāseōs ē lacte ovium faciunt. Lac album est et bibī potest. Cāseus nōn bibī, sed edī potest. Corvus ipse cāseum facere nōn potest, sed eum ā pāstōribus, quī dormiunt, capere potest.\margintext{fasdfa}
Corvus circum oppidum Tūsculum volat, ubi vīllam cum magnō hortō videt. Illīc fenestra aperītur. Corvus per illam fenestram parvum cubiculum videt, in quo ancilla stat. Quae est illa ancilla? Syra est, quae illīc saccōs cibī plenōs numerat. In aliīs saccīs aliī cibī sunt: pīra, māla, panis, cāseus et cētera. Inter illōs saccōs corvus magnum saccum esse videt. Ō quantus est ille saccus! Quid inest?
Etiam Iūlius cubiculum intrat et cāseum abesse videt. Ōstium post sē claudit et īrātus Syram interrogat accūsatque: \quotation{Ubi est cāseus meus? Quis habet cāseum meum? Tūne? Improba ancilla! Mala est ancilla, quae cāseum dominī ēst!} Dominus eam verberāre vult neque potest; nam baculum eius in ātriō est. Ergō exit ē cubiculō et cum baculō suō revenit. \textellipsis
\stoplinenumbering
\stopsubject
\stoptitle
\stoptext