Saltar al contenido

Dar formato a los títulos de las secciones

Nuestro team de especialistas pasados varios días de investigación y de recopilar de información, hemos dado con los datos necesarios, esperamos que te sea de utilidad en tu proyecto.

Solución:

Puede utilizar el paquete titleec:

documentclassarticle
usepackagetitlesec
usepackagelipsum

titleformatsection
  normalfontscshapethesection1em

begindocument

sectionTest Section
lipsum[1]

enddocument

utilizar versalitas para los títulos de las secciones:

ingrese la descripción de la imagen aquí

o

documentclassarticle
usepackage[explicit]titlesec
usepackagelipsum

titleformatsection
  normalfontthesection1emMakeUppercase#1

begindocument

sectionTest Section
lipsum[1]

enddocument

para usar mayúsculas para los títulos de las secciones:

ingrese la descripción de la imagen aquí

Si no quiere usar el titlesec paquete, puede redefinir el section comando, como se implementa en article.cls; aquí hay un ejemplo de tal redefinición para obtener títulos de sección con versalitas pequeñas:

documentclassarticle

makeatletter
renewcommandsection@startsection section1[email protected]%
                                   -3.5ex @plus -1ex @minus -.2ex%
                                   2.3ex @plus.2ex%
                                   normalfontscshape
makeatother

begindocument

sectionTest Section

enddocument

Me gustaría intentar resolver esta pregunta, porque hace 5 años llegué aquí y pensé titlesec fue la mejor manera de hacer esto. Eso puede ser o no true.

La configuración de la clase es quizás obvia para los expertos, pero bastante oscura para los nuevos usuarios de LaTeX.

$ (kpsewhich -valor -var TEXMFDIST) /tex/latex/base/article.cls

Para la versión de 2016, esto resultaría en /usr/local/texlive/2016/texmf-dist/tex/latex/base/article.cls en un sistema basado en Unix.

Las partes relevantes de la clase de artículo extraídas del archivo.

% Do you want numbering?
% Setup Counters using TeX or LaTeX
newcounter part
newcounter section
newcounter subsection[section]
newcounter subsubsection[subsection]
newcounter paragraph[subsubsection]
newcounter subparagraph[paragraph]

% Format Output of Counters
renewcommandthepart@Roman[email protected]
renewcommandthesection@arabic[email protected]
renewcommandthesubsectionthesection.@arabic[email protected]
renewcommandthesubsubsectionthesubsection.@arabic[email protected]
renewcommandtheparagraphthesubsubsection.@arabic[email protected]
renewcommandthesubparagraphtheparagraph.@arabic[email protected]

% Define Sectioning Commands (part is the oddball)
newcommandpart%
   [email protected] leavevmode fi
   par
   addvspace4ex%
   @afterindentfalse
   secdef@part@spart

def@part[#1]#2%
    ifnum [email protected] >[email protected]
      refstepcounterpart%
      addcontentslinetocparttheparthspace1em#1%
    else
      addcontentslinetocpart#1%
    fi
    parindent [email protected] raggedright
     interlinepenalty @M
     normalfont
     ifnum [email protected] >[email protected]
       Largebfseries partnamenobreakspacethepart
       parnobreak
     fi
     huge bfseries #2%
     markbothpar%
    nobreak
    vskip 3ex
    @afterheading
def@spart#1%
    parindent [email protected] raggedright
     interlinepenalty @M
     normalfont
     huge bfseries #1par%
     nobreak
     vskip 3ex
     @afterheading
newcommandsection@startsection section1[email protected]%
                                   -3.5ex @plus -1ex @minus -.2ex%
                                   2.3ex @plus.2ex%
                                   normalfontLargebfseries
newcommandsubsection@startsectionsubsection2[email protected]%
                                     -3.25ex@plus -1ex @minus -.2ex%
                                     1.5ex @plus .2ex%
                                     normalfontlargebfseries
newcommandsubsubsection@startsectionsubsubsection3[email protected]%
                                     -3.25ex@plus -1ex @minus -.2ex%
                                     1.5ex @plus .2ex%
                                     normalfontnormalsizebfseries
newcommandparagraph@startsectionparagraph4[email protected]%
                                    3.25ex @plus1ex @minus.2ex%
                                    -1em%
                                    normalfontnormalsizebfseries
newcommandsubparagraph@startsectionsubparagraph5parindent%
                                       3.25ex @plus1ex @minus .2ex%
                                       -1em%
                                      normalfontnormalsizebfseries

% For something like Appendix where sections should appear as letters,
% reset counters to 0 and use @Alph to make [email protected] appear as A.
newcommandappendixpar
  setcountersection0%
  setcountersubsection0%
  gdefthesection@Alph[email protected]

% How should it appear in the table of contents?
% Usually the ToC title is formatted like the sections.
newcommandtableofcontents%
    section*contentsname
        @mkboth%
           MakeUppercasecontentsnameMakeUppercasecontentsname%
    @starttoctoc%
    
  • [email protected] = 0, vea ¿Qué hace [email protected] ¿hacer?
  • [email protected] = el registro TeX que realmente contiene el número entero creado por LaTeX macro newcounter (normalmente solo para backend, de ahí el @) y que se hace accesible globalmente, consulte ¿Cuáles son las diferencias entre los recuentos de TeX y los contadores de LaTeX?
  • [email protected] = registrarse con un contador igual a -1, ver ¿Qué hacer [email protected]Y @M en la definición de @makechapterhead?
  • @M = mathchardef = mathchar"2710 = 10000, ver arriba.
  • leavevmode = salir del modo vertical [and implicitly enter horizontal mode], consulte Función y uso de leavevmode

    Use leavevmode para todas las macros que podrían usarse al principio del párrafo y agregue cuadros horizontales por sí mismos (por ejemplo, en forma de texto).

  • @afterindentfalse oposición a @afterindenttrue Kernel de LaTeX macro eso es parte de [email protected]. Está estableciendo el @afterindent para false después de un comando de sección de modo que los párrafos que siguen directamente a los encabezados no están pensados. Los párrafos subsiguientes se sangrarán cuando la expansión de este se vuelva @afterindenttrue, consulte http://mirror.easyname.at/ctan/macros/latex/required/tools/indentfirst.pdf
  • secdef en eg secdef@part@spart es efectivamente un conmutador entre la versión destacada @spart (s para la parte destacada) y la versión sin estrellas @part. Esto permite * para influir en cual macro se expande, consulte ¿Qué hace secdef?
  • @plus Látex macro = TeX macro plus, show@plus = =macro: ->plus., consulte ¿Qué es el estiramiento del pegamento?
  • @minus Látex macro = TeX macro minus, véase más arriba.
  • ifnum [email protected] >[email protected] solo dice que si la profundidad del contador de sección es algo mayor que -1, entonces agregue este encabezado a la tabla de contenido más …
  • parindent = cantidad de espacio sangrado
  • raggedright = Un kernel de LaTeX macro. Le dice a TeX que alinee a la izquierda algo sin tener en cuenta el sistema de puntos tipográficos de TeX que hace los ajustes adecuados en el espacio entre palabras para una forma de párrafo bonita y cuadrada (justificación completa). = let\@centercr@rightskip@flushglue rightskip @rightskipleftskip[email protected]parindent[email protected], consulte Combinación de salto a la izquierda, salto a la derecha y raggedright
  • @afterheading Látex macro que se ocupa de cosas de post-encabezado, por ejemplo, evitar un salto de página entre el encabezado y la siguiente línea (generalmente una línea de club de un párrafo), o esa línea (club) con su siguiente línea. El primero se hace usando [email protected] lógica, este último con clubpenalty=10000= pena máxima.

    @nobreaktrue
    everypar[email protected]
    @nobreakfalse
    clubpenalty@M
    [email protected]
    else
    setbox[email protected]lastbox
    fi
    else
    clubpenalty@clubpenalty
    everypar
    fi
    }@[email protected]

Editar secciones

Solo mirando a su alrededor en el article.cls puede ser muy útil, pero hay muchos comandos que utilizan el @ sign, que ayuda a garantizar que los comandos a nivel de usuario no se superpongan con los comandos del “kernel”, es decir, es poco probable que coloque newcommand@Alph en su preámbulo (si lo hiciera, obtendría un error, porque TeX espera que todos los caracteres en macro nombres / nombres de secuencia de comandos para tener el código de categoría 11), consulte ¿Qué hacen makeatletter y makeatother? y ¿Qué son los códigos de categoría? para detalles.

Puede redefinir las secciones según sus especificaciones utilizando renewcommand. Tenga en cuenta que debe cambiar temporalmente el código de categoría de @ para acceder a los comandos del kernel. O rodee su definición con

makeatletter
% insert macro with @ here
makeatother

O

catcode`@11relax 
% insert macro with @ here
catcode`@12relax

Abuelo @startsection

Tenga en cuenta que el abuelo de todos los comandos / encabezados de seccionamiento, excepto la parte, es @startsection. Entenderlo puede ser complicado, pero show@startsection revela su definición:

[email protected] leavevmode fi par @tempskipa #4relax @afterindenttrue ifdim @tempskipa <[email protected] @tempskipa -@tempskipa @afterindentfalse fi [email protected] everypar else addpenalty @secpenalty addvspace @tempskipa fi @ifstar @ssect #3#4#5#6@dblarg @sect #1#2#3#4#5#6.

@startsection