- Questo topic ha 7 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 18 anni, 11 mesi fa da
egreg9.
-
CreatoreTopic
-
4 Ottobre 2007 alle 18:07 #17501
-
CreatoreTopic
-
AutoreRisposte
-
-
4 Ottobre 2007 alle 22:14 #17502::
Salve,
in un documento LaTeX, in una subsection ho inserito una serie di subsubsection. Quando creo il pdf il risultato è che i titoli delle subsubsection sono attaccati (verticalmente) al testo immediatamente prima.Come si può modificare quest’aspetto?
Non mi risulta. Che classe usi? Hai impiegato qualche pacchetto che modifica la composizione dei titoli? Puoi fare un esempio minimo?
Ciao
Enrico
-
4 Ottobre 2007 alle 22:46 #17503::
i titoli delle subsubsection sono attaccati (verticalmente) al testo immediatamente prima.
Come si può modificare quest’aspetto?Che classe usi? Hai impiegato qualche pacchetto che modifica la composizione dei titoli? Puoi fare un esempio minimo?
Le classi:
`\documentclass[a4paper,oneside,10pt,italian]{book}\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{url,amsfonts,epsfig}\usepackage{graphicx}
\DeclareGraphicsRule{.png}{bmp}{.bb}{}\usepackage{listings}
\usepackage{xcolor}
\lstset{
backgroundcolor=\color{lightgray},
postbreak=\space, breakindent=5pt, breaklines
} `La visualizzazione “strana” avviene qui:
`
\subsection{Creazione del language model}
I passi fondamentali per la creazione di un language model…\subsubsection{1. text2wfreq}
\begin{lstlisting}
cat corpus | text2wfreq > corpus.wfreq
\end{lstlisting}Il comando text2wfreq prendi in input un file di testo…
\subsubsection{2. wfreq2vocab}
\begin{lstlisting}
cat corpus.wfreq | wfreq2vocab -top 20000 > corpus.vocab
\end{lstlisting}`Questo è quello che mi appare:
-
5 Ottobre 2007 alle 7:27 #17504::
[quote]i titoli delle subsubsection sono attaccati (verticalmente) al testo immediatamente prima.
Come si può modificare quest’aspetto?Che classe usi? Hai impiegato qualche pacchetto che modifica la composizione dei titoli? Puoi fare un esempio minimo?
Le classi:
`\documentclass[a4paper,oneside,10pt,italian]{book}\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{url,amsfonts,epsfig}\usepackage{graphicx}
\DeclareGraphicsRule{.png}{bmp}{.bb}{}\usepackage{listings}
\usepackage{xcolor}
\lstset{
backgroundcolor=\color{lightgray},
postbreak=\space, breakindent=5pt, breaklines
} `La visualizzazione “strana” avviene qui:
`
\subsection{Creazione del language model}
I passi fondamentali per la creazione di un language model…\subsubsection{1. text2wfreq}
\begin{lstlisting}
cat corpus | text2wfreq > corpus.wfreq
\end{lstlisting}Il comando text2wfreq prendi in input un file di testo…
\subsubsection{2. wfreq2vocab}
\begin{lstlisting}
cat corpus.wfreq | wfreq2vocab -top 20000 > corpus.vocab
\end{lstlisting}`[/quote]
Non ci crederai, ma la colpa è dell’ambiente lstlisting subito dopo il titolo della subsubsection. Se infatti ci metti del testo, l’effetto sparisce. Prova a guardare la documentazione di listings, magari c’è scritto; se no, sarebbe il caso di segnalarlo all’autore.Come risolvere? Metti \leavevmode prima di \begin{lstlisting}.
Un paio di altre osservazioni: il pacchetto epsfig è obsoleto e non va chiamato mai. Né va dato il comando \DeclareGraphicsRule: pdflatex sa benissimo come operare sulle immagini png.
Se poi vuoi numerare automaticamente la subsubsection, ma non portarti dietro anche tutti gli altri numeretti, scrivi nel preambolo
`\setcounter{secnumdepth}{3}
\renewcommand{\thesubsubsection}{\arabic{subsubsection}}`
Se proprio vuoi il punto dopo il numero, cosa che non ti consiglio per uniformità con il resto del documento, puoi usare la seguente magia:
`\makeatletter
\let\@orig@seccntformat\@seccntformat
\renewcommand\@seccntformat[1]{%
\expandafter\ifx\csname the#1\endcsname\thesubsubsection
\thesubsubsection.
\else
\@orig@seccntformat{#1}%
\fi}
\makeatother`
Ciao
Enrico
-
5 Ottobre 2007 alle 8:09 #17505::
Non ci crederai, ma la colpa è dell’ambiente lstlisting subito dopo il titolo della subsubsection. Se infatti ci metti del testo, l’effetto sparisce.
Sì, me ne sono accorto stamattina. Ho provato a fare un testo piccolo di prova e in effetti non mi dava errori.
Prova a guardare la documentazione di listings, magari c’è scritto; se no, sarebbe il caso di segnalarlo all’autore.
Come risolvere? Metti \leavevmode prima di \begin{lstlisting}.
Ok, funziona. Giusto per capire, cos’è che fa esattamente \leavevmode?
Un paio di altre osservazioni: il pacchetto epsfig è obsoleto e non va chiamato mai. Né va dato il comando \DeclareGraphicsRule: pdflatex sa benissimo come operare sulle immagini png.
In effetti erano residui di un vecchio file. Li tolgo.
graphicx serve, o tolgo anche quello?Se poi vuoi numerare automaticamente la subsubsection, ma non portarti dietro anche tutti gli altri numeretti, scrivi nel preambolo
`\setcounter{secnumdepth}{3}
\renewcommand{\thesubsubsection}{\arabic{subsubsection}}`Ero ancora indeciso, comunque grazie del suggerimento e dell’aiuto 😀
-
5 Ottobre 2007 alle 9:49 #17506::
Come risolvere? Metti \leavevmode prima di \begin{lstlisting}.
Ok, funziona. Giusto per capire, cos’è che fa esattamente \leavevmode?
Fa cominciare un capoverso, senza però inserire il rientro. Ritengo che il problema abbia a che fare con la valutazione di \everypar, roba da TeXnici. L’importante è aver trovato un rimedio.
Ciao
Enrico
-
5 Ottobre 2007 alle 9:54 #17507
-
5 Ottobre 2007 alle 17:40 #17508::
Ho scritto io un “bug report” a Brooks Moses.Un modo migliore per risolvere il problema potrebbe essere scrivere questo nel preambolo, dopo aver caricato listings:
`\makeatletter
\let\@@@lstlisting\lstlisting
\def\lstlisting{\@nobreakfalse\@@@lstlisting}
\makeatother`
Naturalmente, se cominci un listing subito dopo un titolo, è bene dare l’opzione aboveskip=0pt:
`\begin{lstlisting}[aboveskip=0pt]`
in modo da eliminare lo spazio in più.Non uso molto listings (anzi per niente), quindi sarebbe bene che qualcuno provasse a vedere se ci sono effetti indesiderati.
Ciao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.
