contexto: linha entre a margem e o texto

contexto: linha entre a margem e o texto

Eu trabalho com ConteXt. Aqui no StackExchange encontrei um código para LateX para colocar uma linha entre o texto e o margin/marginparagraph. Esta linha é visível na imagem abaixo.

linha vertical entre a margem e o corpo do texto Depois disso, mudei para o ConteXt. No ConteXt, depois de horas de pesquisa, não tenho ideia de como fazer isso. Espero que alguém possa me ajudar. O projeto em que estou trabalhando tem o seguinte código até agora:

      \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

Responder1

Você poderia usar um pouco de MetaFun. De dentro de uma sobreposição você pode acessar os diferentes campos da página.

Em resposta aos comentários:

como a linha horizontal pode subir para direcionar abaixo do cabeçalho (enquanto a linha vertical ainda toca a horizontal), deixando um espaço de cerca de 8mm entre o texto e a linha.

Por padrão, a distância entre o cabeçalho e o bloco de texto é 0pt e o cabeçalho é alinhado ao topo do seu campo. Pode ser possível usar alguns hacks feios para obter a linha de base do campo de cabeçalho ou algo assim, mas é muito mais fácil apenas reduzir a altura do campo de cabeçalho \lineheighte aumentar a distância do cabeçalho. Ao configurar headerdistancevocê também precisa definir footerdistanceporque o último é inicializado com o primeiro. O código MetaFun precisa apenas de poucos ajustes.

como posso preencher o cabeçalho na margem, não apenas na largura do texto?

Na verdade, o \setupheadertextscomando leva até cinco argumentos.

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

Pois <position>você pode optar marginpor colocar a marcação na margem. Infelizmente o conteúdo é muito amplo para a margem então tenho que usar um pouco \hfille \llapmagia.

Como posso colocar o número da página no rodapé da margem externa? agora está 'inright', mas alinhado à esquerda.

O número da página já está no rodapé externo, mas parece que você não está satisfeito com o alinhamento interno. Você pode corrigir o alinhamento usando command. Você não especificou qual alinhamento deseja, então usei apenas \centerline.

Sua sugestão para a qualidade da composição parece destruir o efeito do comando \setupinterlinespace[big].

Na verdade \setupinterlinespace[big]não funciona para mim mesmo sem hzalinhamento hanging(vejaComentário de Wolfgangquanto ao porquê). Você pode usar algo parecido \setupinterlinespace[line=3.8ex].

Para o número da página: eu tinha algum código para atingir meu objetivo

Isso pode funcionar, mas parece muito complicado para mim. A commandabordagem \setuppagenumberingpode alcançar algo semelhante e é muito mais curta. Além disso, você não tem o problema de colidir camadas.

As notas na margem devem ter recuo 'negativo'.

A definição que você propõe parece boa, mas não verifiquei por que não está funcionando. Em vez disso, reformulei a definição de um ambiente em um comando e usei command=\exdentno \setupmargindata.

Dentro da definição de \exdentexiste um arquivo \blank[-line]. Isso porque \startnarrowerinicia um novo parágrafo que insere uma linha em branco neste ponto que queremos remover.

Um \outerlinecomando não existe. O que eu tenho que fazer?

Você já descobriu \leftlinee \rightlineentão a única coisa que resta a fazer é alternar entre os dois, dependendo se você está na página esquerda ou direita. Isso é feito usando \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

insira a descrição da imagem aqui

informação relacionada