Fondo

Fondo

Fondo

Crear un diseño personalizado de varias columnas con columnas que difieren en ancho.

Problema

El problema de esta pregunta se menciona pero no se aborda en una publicación anterior.respuesta:

El entorno page=yesprovoca un desafortunado efecto secundario: el libro está entretejido con páginas en blanco entre capítulos. Estos se pueden eliminar usando Ghostscript para posprocesar...

En otras palabras, sin la page=yesopción, ConTeXt no puede formatear el texto como desea. Con esta page=yesopción, ConTeXt formatea como se esperaba pero exporta una página en blanco no deseada entre las secciones principales.

Código

Ejemplo de trabajo mínimo que ilustra el problema:

\definepapersize[BookPaperSize][width=24in, height=12in,]
\setuppapersize[BookPaperSize]

\definelayout[BookTextLayout][
  topspace=.5in,
  backspace=.5in,
  header=\zeropoint,
  footer=\zeropoint,
  grid=yes,
]
\setuplayout[BookTextLayout]

\definecolumnset[BookColumns][n=4,distance=.25in]
\setupcolumnset[BookColumns:1][width=11.75in]
\setupcolumnset[BookColumns:2][width=3.46in]
\setupcolumnset[BookColumns:3][width=3.46in]
\setupcolumnset[BookColumns:4][width=3.46in]

\setuphead[section][
  page=yes,
  beforesection={\startcolumnset[BookColumns]},
  aftersection={\stopcolumnset},
]

\setuphead[subsection][
  after={\column},
]

\setuphead[subsubsection][
  after={\blank[small]},
]

\starttext
\startsection[title={Section Title}]
\startsubsection[title={Subtitle}]
\dorecurse{2}{\input knuth}

\dorecurse{2}{%
  \startsubsubsection[title={Subsubtitle}]
    \dorecurse{1}{\input ward}
    \dorecurse{2}{\input lorem}
    \dorecurse{1}{\input bryson}
  \stopsubsubsection
}

\stopsubsection
\stopsection
\stoptext

Salida real

La página antes de cada sección está en blanco:

Salida real

Salida sin página

Cuando page=yesse elimina la opción, el resultado tiene problemas:

Sin comando de página

El \columncomando ya no parece respetar el ancho de las columnas y el texto se acumula en la parte inferior de la primera columna.

Rendimiento esperado

El resultado deseado no tendría una página en blanco entre las secciones principales:

Rendimiento esperado

Solución alterna

ElPDF resultantecontiene varias páginas. UsandoGuión fantasmatrabaja para eliminar una página por medio (por ejemplo, usando gs -sPageList=even), lo que produce el resultado deseado:

Salida de ejemplo

Sin embargo, la página en blanco adicional provoca problemas en cadena: pasos adicionales de procesamiento de imágenes, las páginas PDF deben reordenarse y un mayor tiempo de compilación debido a la necesidad de dos pasadas.

Pregunta

¿Qué hay que cambiar para que las páginas en blanco desaparezcan del documento?

Ideas

Agregar page=yesy \definecolumnseteliminar page=yesresuelve setupheadel problema de las páginas en blanco; sin embargo, el conjunto de columnas de la primera página está desplazado hacia la izquierda. Intenté solucionar el problema usando:

\definecounter[BookPageNumber][
  way=bychapter,
  prefix=no,
]

\definecolumnset[BookColumns][n=4,distance=.25in,page={\doifelse{\rawcountervalue[BookPageNumber]}{1}{}{yes}}]
\setupcolumnset[BookColumns:1][width=11.75in]
\setupcolumnset[BookColumns:2][width=3.46in]
\setupcolumnset[BookColumns:3][width=3.46in]
\setupcolumnset[BookColumns:4][width=3.46in]

\setuphead[section][
  before={%
    \doif{\rawcountervalue[BookPageNumber]}{1}{\page}
    \incrementcounter[BookPageNumber]
  },
  beforesection={\startcolumnset[BookColumns]},
  aftersection={\stopcolumnset},
]

Sin embargo, esto no produce el resultado deseado.

Respuesta1

Los conjuntos de columnas se basan en extensiones, es decir, cuando n=4en realidad tiene ocho columnas, es decir, cuatro en la página izquierda y cuatro en la página derecha. Un documento siempre se abre con una página derecha que no ha configurado y es por eso que agregar \page[yes]ayuda, porque empuja el contenido a la página izquierda que está configurada.

Entonces, simplemente agregar las columnas 5 a 8 para la página derecha soluciona el problema.

\definepapersize[BookPaperSize][width=24in, height=12in,]
\setuppapersize[BookPaperSize]

\definelayout[BookTextLayout][
  topspace=.5in,
  backspace=.5in,
  header=\zeropoint,
  footer=\zeropoint,
  grid=yes,
]
\setuplayout[BookTextLayout]

\definecolumnset[BookColumns][n=4,distance=.25in]
\setupcolumnset[BookColumns:1][width=11.75in]
\setupcolumnset[BookColumns:2][width=3.46in]
\setupcolumnset[BookColumns:3][width=3.46in]
\setupcolumnset[BookColumns:4][width=3.46in]
\setupcolumnset[BookColumns:5][width=11.75in]
\setupcolumnset[BookColumns:6][width=3.46in]
\setupcolumnset[BookColumns:7][width=3.46in]
\setupcolumnset[BookColumns:8][width=3.46in]

\setuphead[section][
  %page=yes,
  beforesection={\startcolumnset[BookColumns]},
  aftersection={\stopcolumnset},
]

\setuphead[subsection][
  after={\column},
]

\setuphead[subsubsection][
  after={\blank[small]},
]

\starttext
\startsection[title={Section Title}]
\startsubsection[title={Subtitle}]
\dorecurse{2}{\input knuth}

\dorecurse{2}{%
  \startsubsubsection[title={Subsubtitle}]
    \dorecurse{1}{\input ward}
    \dorecurse{2}{\input lorem}
    \dorecurse{1}{\input bryson}
  \stopsubsubsection
}

\stopsubsection
\stopsection
\stoptext

ingrese la descripción de la imagen aquí

información relacionada