Re: Elenco dei “peccati” degli utenti di LaTeX2e

#68167
Up
0
Down
::

samiel” post=67903Allora… mi sembra che il problema sia dovuto al pacchetto guit
Questo codice mi dà l’errore di xcolor:
`\documentclass[fontsize=11pt,paper=a4,pagesize,captions=tableheading,%
numbers=noenddot,toc=flat]{scrartcl}

% ——————————– Codifica ———————————-
\usepackage[italian]{babel}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}

% ——————————– Caratteri ———————————
\usepackage[scaled=.88]{beramono}
\usepackage[scaled=.86]{berasans}
\usepackage[osf]{mathpazo}
\linespread{1.05}\selectfont
\providecommand{\lining}{\fontfamily{ppl}\selectfont}
\providecommand{\oldstyle}{\fontfamily{fplj}\selectfont}
\DeclareTextFontCommand{\textln}{\lining}
\DeclareTextFontCommand{\textos}{\oldstyle}

% —————————— Grafica e tabelle —————————
\usepackage{xspace}
\usepackage{booktabs,array}
\usepackage{ctable}
\usepackage[italian]{varioref}
\usepackage{textcomp}
\usepackage[nofancy]{rcsinfo}
\usepackage{varwidth}
\usepackage{calc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{guit}

% ——————————- Formattazione ——————————
\addtokomafont{pagehead}{\small\itshape}
\addtokomafont{sectioning}{\rmfamily}
\addtokomafont{caption}{\footnotesize\itshape}
\addtokomafont{captionlabel}{\upshape\bfseries}
\addtokomafont{descriptionlabel}{\rmfamily}
\setcapindent{1em}
\deffootnote{2.25em}{1.75em}{\thefootnotemark\enspace}
\reversemarginpar
\renewcommand*{\othersectionlevelsformat}[1]{%
\makebox[0pt][r]{\csname the#1\endcsname\autodot\enskip}}

% ——————————— Colori ———————————–
\usepackage{color}
\definecolor{grau}{gray}{0.45}
\definecolor{rot}{rgb}{0.75,0.00,0.00}
\definecolor{blau}{rgb}{0.16,0.24,0.64}
\definecolor{gruen}{rgb}{0.18,0.58,0.08}
\definecolor{linkcolor}{rgb}{0,0,0.42}

% ———————————- Nuovi comandi —————————
%%% Da scrguide
\DeclareRobustCommand*{\Macro}[1]{\mbox{\texttt{\char`\\#1}}}
\DeclareRobustCommand*{\LMacro}[2]{\mbox{\texttt{\char`\\#1\{#2\}}}}
\DeclareRobustCommand*{\GMacro}[2]{\mbox{\texttt{\{\char`\\#1\ #2\}}}}

\begin{document}

\ctable[
caption = Macro per modificare lo stile del carattere.,
label=tab:befehle-zur-anderung,
mincapwidth = \columnwidth,
pos = h ]{lll}{
\tnote{Utile nella definizioni di macro. All'interno del testo non si dovrebbe
usare \GMacro{em}{\dots}, bensì \LMacro{emph}{\dots}.}
}{
\toprule
\multicolumn{1}{c}{Obsolete} & \multicolumn{2}{c}{Sostituite in \LaTeXe{} da} \\
\cmidrule(l){2-3} & locali & globali/commutative \\
\cmidrule(r){1-1} \cmidrule(lr){2-2} \cmidrule(l){3-3}
\GMacro{rm}{\dots} & \LMacro{textrm}{\dots} & \Macro{rmfamily} \\
\GMacro{sf}{\dots} & \LMacro{textsf}{\dots} & \Macro{sffamily} \\
\GMacro{tt}{\dots} & \LMacro{texttt}{\dots} & \Macro{ttfamily} \\
\GMacro{it}{\dots} & \LMacro{textit}{\dots} & \Macro{itshape} \\
\GMacro{sc}{\dots} & \LMacro{textsc}{\dots} & \Macro{scshape} \\
\GMacro{sl}{\dots} & \LMacro{textsl}{\dots} & \Macro{slshape} \\
\GMacro{bf}{\dots} & \LMacro{textbf}{\dots} & \Macro{bfseries} \\
— & \LMacro{textmd}{\dots} & \Macro{mdseries} \\
— & \LMacro{textup}{\dots} & \Macro{upshape} \\
— & \LMacro{emph}{\dots} & \Macro{em}\tmark \\
\bottomrule
}

\end{document}`
Se commento il pacchetto guit l’errore sparisce….

M

Anche se commenti ctable. Pacchetto che trovo inutile e dalla sintassi complicata.

`\makeatletter
\newsavebox{\@tabparbox}
\newenvironment{tabpar}[3][t]
{\long\def\@tabparagraph{#3}\def\@tabparopt{#1}%
\begin{lrbox}{\@tabparbox}
\begin{tabular}{#2}}
{\end{tabular}\end{lrbox}%
\parbox{\wd\@tabparbox}{
\if t\@tabparopt
\@tabparagraph\par\smallskip
\fi
\usebox{\@tabparbox}\par
\if b\@tabparopt
\smallskip\@tabparagraph
\fi}}
\makeatother`
definisce un ambiente tabpar che fa un lavoro sicuramente migliore di ctable:
`\begin{table}
\centering
\caption{Macro per modificare lo stile del carattere.}
\label{tab:befehle-zur-anderung}
\begin{tabpar}{lll}
{\footnotesize\textsuperscript{\itshape a} Utile nella definizioni di macro. All'interno
del testo non si dovrebbe usare \GMacro{em}{\dots}, bens\`i \LMacro{emph}{\dots}.}
\toprule
\multicolumn{1}{c}{Obsolete} & \multicolumn{2}{c}{Sostituite in \LaTeXe{} da} \\
\cmidrule(l){2-3} & locali & globali/commutative \\
\cmidrule(r){1-1} \cmidrule(lr){2-2} \cmidrule(l){3-3}
\GMacro{rm}{\dots} & \LMacro{textrm}{\dots} & \Macro{rmfamily} \\
\GMacro{sf}{\dots} & \LMacro{textsf}{\dots} & \Macro{sffamily} \\
\GMacro{tt}{\dots} & \LMacro{texttt}{\dots} & \Macro{ttfamily} \\
\GMacro{it}{\dots} & \LMacro{textit}{\dots} & \Macro{itshape} \\
\GMacro{sc}{\dots} & \LMacro{textsc}{\dots} & \Macro{scshape} \\
\GMacro{sl}{\dots} & \LMacro{textsl}{\dots} & \Macro{slshape} \\
\GMacro{bf}{\dots} & \LMacro{textbf}{\dots} & \Macro{bfseries} \\
— & \LMacro{textmd}{\dots} & \Macro{mdseries} \\
— & \LMacro{textup}{\dots} & \Macro{upshape} \\
— & \LMacro{emph}{\dots} & \Macro{em}\textsuperscript{\itshape a} \\
\bottomrule
\end{tabpar}
\end{table}`

Non sono per niente d’accordo con la scelta di “locali” e “globali/commutative”. La dichiarazione \itshape è tutt’altro che globale, termine che in TeX ha un significato ben preciso: un comando che non tiene conto della struttura a gruppi (l’esempio è \setcounter). Il manuale di LaTeX parla di dichiarazioni per i comandi come \itshape.

La questione sul “commutativo” è qualcosa che probabilmente al giorno d’oggi pochi ricordano. Fino all’avvento di NFSS, cioè con la versione originale di LaTeX, ogni dichiarazione del tipo \rm, \bf, ma anche \large agivano su tutte le caratteristiche del font: con \bf si otteneva un font tondo nero anche se prima valeva la dichiarazione \it. Con \large e compagnia si passava automaticamente anche a \rm. Nei primi tempi di coabitazione di NFSS con LaTeX, la combinazione \it\bf sceglieva un font nero corsivo. Ovviamente questo creava problemi con i documenti esistenti; perciò fu deciso di definire \textit e compagnia, ridando a \rm, \it e \bf il vecchio comportamento in “compatibility mode” (cioè con \documentstyle all’inizio). Secondo me parlare di “commutativo” (sarebbe meglio “ortogonale”) porta solo a confusione.

Ciao
Enrico

Go to top