コンテキスト: 余白とテキストの間の線

コンテキスト: 余白とテキストの間の線

私は ConteXt を使っています。StackExchange で、テキストと margin/marginparagraph の間に線を入れる 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 mm のスペースを作るにはどうすればよいですか。

デフォルトでは、ヘッダーとテキスト ブロックの間の距離は 0pt で、ヘッダーはフィールドの上部に揃えられます。ヘッダー フィールドのベースラインなどを取得するために、いくつかの醜いハックを使用することもできますが、ヘッダー フィールドの高さを まで縮小して\lineheight、ヘッダーの距離を増やす方がはるかに簡単です。設定するときには、後者が前者で初期化されるためheaderdistance、設定も行う必要がありますfooterdistance。MetaFun コードでは、ほんの少しの調整しか必要ありません。

ヘッダーをテキスト幅だけでなく余白にも埋め込むにはどうすればよいですか?

この\setupheadertextsコマンドは実際には最大 5 つの引数を取ります。

\setupheadertexts
   [<position>]
   [<left odd>] [<right odd>]
   [<left even>][<right even>]

マーキングを余白に配置することを<position>選択できます。残念ながら、コンテンツが余白に対して広すぎるため、少し魔法を使う必要があります。margin\hfill\llap

外側の余白のフッターにページ番号を配置するにはどうすればよいでしょうか。現在は「inright」ですが、左揃えになっています。

ページ番号は既に外側のフッターにありますが、内側への配置に満足していないようです。 を使用して配置を修正できますcommand。 必要な配置を指定していないため、 を使用しました\centerline

タイプセッティングの品質に関するあなたの提案は、コマンドの効果を破壊しているようです\setupinterlinespace[big]

実際には、アライメント\setupinterlinespace[big]なしでも機能しません(hzhangingヴォルフガングのコメント理由については、以下を参照してください。\setupinterlinespace[line=3.8ex]代わりに次のようなものを使用できます。

ページ番号について: 目標を達成するためのコードがいくつかありました

それはうまくいくかもしれませんが、私には複雑すぎるように思えます。commandのアプローチは\setuppagenumbering同様のことを実現でき、はるかに短くなります。また、レイヤーの衝突の問題もありません。

余白のメモは「マイナス」インデントする必要があります。

提案された定義は問題ないように見えますが、なぜ機能しないのかは確認しませんでした。代わりに、定義を環境からコマンドに書き直し、command=\exdentで使用しました\setupmargindata

の定義内には\exdentがあります。これは、 が新しい段落を開始し、この時点で削除する空白行を挿入する\blank[-line]ためです。\startnarrower

コマンド\outerlineが存在しません。どうすればいいですか?

すでに と を発見したので\leftline\rightline残っているのは、左ページにいるか右ページにいるかに応じてこれら 2 つを切り替えることだけです。これは を使用して行います\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

ここに画像の説明を入力してください

関連情報