Saltar al contenido

Numeración de secciones en francés mediante bis, ter, etc.

Contamos con tu apoyo para extender nuestros posts con relación a las ciencias de la computación.

Solución:

Aquí hay una versión semiautomática, donde debe agregar el sufijo a mano.

documentclassarticle

makeatletter
newcommandnumpar[1][]%
  paraddvspacemedskipamount%
  ifrelaxdetokenize#1relax
    refstepcounternumpar%
    defthisnumparthenumpar%
  else
    edef@currentlabelthenumparnoexpand~#1%
    defthisnumparthenumpar~#1%
  fi
  everyparthisnumpar.hspaceparindenteverypar%

makeatother
newcounternumpar


begindocument

numpar This is the first paragraph. Let's make it longer
so it wraps. Maybe this suffices, but just in case we
add some more words.

numpar[bis]label1bis This has been added. Let's make it longer
so it wraps. Maybe this suffices, but just in case we
add some more words.

numpar[ter] This also has been added and refers to the previous one~ref1bis.
Let's make it longer so it wraps. Maybe this suffices, but just in case we
add some more words.

numpar This is numbered normally and refers to the previous one~ref1bis.
Let's make it longer so it wraps. Maybe this suffices, but just in case we
add some more words.

enddocument

El truco con everypar permite no preocuparse por los espacios después label.

ingrese la descripción de la imagen aquí

Solución original
Aquí hay una solución usando enumitem y enumerate Ambientes.

No estoy seguro de si es realmente lo que pidió, ya que mencionó una serie de secciones.

Sin embargo, con esta solución, todos sus elementos numerados regularmente deben estar en un (primer nivel) enumerate entorno, y cuando necesite bis, ter, etc., puede utilizar un anidado enumerate ambiente. Tenga en cuenta que el primeroitem de este ambiente serán contados Bis, el segundo se numerará ter, etc.

documentclassarticle
usepackagexparse
usepackageenumitem

ExplSyntaxOn
seq_new:N bislist
seq_set_split:Nnn bislist ; bis;ter;quater;quinquies;sexies;septies;octies;novies;decies
NewDocumentCommand bisprint m
 
  seq_item:Nn bislist #1
 
ExplSyntaxOff

setlist[enumerate,1]leftmargin=0pt,labelwidth=!,label=arabic*.,align=left
setlist[enumerate,2]leftmargin=0pt,labelwidth=!,label=arabicenumi bisprintarabicenumii.,align=left


begindocument
beginenumerate
item First item
item Second item
beginenumerate
item First bis item 
item First ter item
endenumerate
endenumerate


enddocument

Lo que produce este tipo de resultados: ingrese la descripción de la imagen aquí

Quizás, otra opción para evitar conflictos con otros anidados. enumerate entornos sería crear un bis medio ambiente de esta manera:

documentclassarticle
usepackagexparse
usepackageenumitem

ExplSyntaxOn
seq_new:N bislist
seq_set_split:Nnn bislist ; bis;ter;quater;quinquies;sexies;septies;octies;novies;decies
NewDocumentCommand bisprint m
 
  seq_item:Nn bislist #1
 
ExplSyntaxOff

setlist[enumerate,1]leftmargin=0pt,labelwidth=!,label=arabic*.,align=left

newlistbisenumerate1
setlist[bis]leftmargin=0pt,labelwidth=!,label=arabicenumi bisprintarabicbisi.,align=left


begindocument
beginenumerate
item First item
item Second item
beginbis
item First bis item 
item First ter item
endbis
endenumerate


enddocument

Esto produce exactamente el mismo resultado que el código anterior.

Tenga en cuenta que si tiene 10 o más elementos en el bis entorno, entonces la numeración fallará (esencialmente porque no tengo idea de lo que sigue a decies). Pero espero que su texto original no tenga que ir tan lejos 😉 (sin embargo, parece que ciertas leyes francesas usan decies, y tal vez las pocas siguientes …)

Editar: solución trabajando con section

Aquí hay una solución usando section y section*.
Precaución : al redefinir estos dos comandos, no podrá usarlos para nada más en el resto de su documento (creo que estaba al tanto de esto, pero por si acaso, ahora está claro).

La idea aquí es usar section para comenzar una sección numerada regularmente, y section* para Bis sección numerada.

documentclassarticle
usepackagexparse
usepackageenumitem
usepackage[explicit]titlesec
usepackagelipsum


ExplSyntaxOn
seq_new:N bislist
seq_set_split:Nnn bislist ; bis;ter;quater;quinquies;sexies;septies;octies;novies;decies
NewDocumentCommand bisprint m
 
  seq_item:Nn bislist #1
 
ExplSyntaxOff

newcounterbis
stepcounterbis
titleformatsection[runin]normalfontarabicsection.0pt[setcounterbis1]
titleformatname=section,numberless[runin]normalfontarabicsection bisprintarabicbis.0pt[stepcounterbis]
titlespacingsectionparindentbaselineskipparindent


begindocument

section
lipsum[1]
section
lipsum[2]
section*
lipsum[3]
section*
lipsum[4]
section*
lipsum[5]
section
lipsum[6]
section
lipsum[7]
section*
lipsum[8]


enddocument

Si el formato no es exactamente el que deseaba, puede cambiar los parámetros de titleformat y titlespacing (por ejemplo, cambiando normalfont a bfseries producirá números en negrita).

Actualización: con la tabla de contenido
Aquí hay una última actualización con el section* que aparece en la tabla de contenido (y esta vez usando book clase de documento como deseaba y con el formato de título que estaba usando en su MWE).

documentclassbook
usepackagexparse
usepackageenumitem
usepackage[explicit]titlesec
usepackagelipsum
usepackagecalc
usepackagetotcount

ExplSyntaxOn
seq_new:N bislist
seq_set_split:Nnn bislist ; bis;ter;quater;quinquies;sexies;septies;octies;novies;decies

NewDocumentCommand bisprint m
 
  seq_item:Nn bislist #1
 
ExplSyntaxOff

newtotcounterbismax
newcounterbis
stepcounterbis
setcounterbismax1

newcommandbisaddstepcounterbis setcounterbismaxminof4maxofthebismaxthebis-1

AtBeginDocumentnewlengthbislength
settowidthbislengthtextitbisprinttotvaluebismax
addtolengthbislength1.5em

titleformatsection[block]normalfontlargenormalfontfilcenterthesection. --- #10.5em[setcounterbis1]

renewcommandthesectionarabicsection

titleformatname=section,numberless[block]normalfontlargenormalfontfilcenterarabicsection textitbisprintarabicbis. --- #10.5em[ addcontentslinetocsectionprotectnumberlinearabicsection textitbisprintarabicbis#1 bisadd]

makeatletter
renewcommand*[email protected]@dottedtocline11.5embislength
makeatother

begindocument



tableofcontents

sectionFirst section header
lipsum[1]
sectionSecond section header
lipsum[2]
section*Third section header
lipsum[3]
section*Fourth section header
lipsum[4]
section*Fifth section header
lipsum[5]
section*Sixth section header
lipsum[6]
sectionSeventh section header
lipsum[7]
section*Eighth section header
lipsum[8]

enddocument

El espacio entre los números y los títulos de las secciones en la TdC ahora se calcula automáticamente para que sea suficiente para mostrar el “número bis” más largo (es decir, el espacio será más pequeño si solo tiene que imprimir bis o ter que si necesita imprimir quiquies). Puede ampliar o reducir este espacio cambiando el valor establecido actualmente en 1.5em.

Si conservas alguna vacilación o disposición de ascender nuestro sección puedes añadir un paráfrasis y con deseo lo interpretaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *