- Questo topic ha 3 risposte, 2 partecipanti ed è stato aggiornato l'ultima volta 20 anni, 4 mesi fa da
egreg9.
-
CreatoreTopic
-
7 Maggio 2006 alle 15:14 #8898::
Un saluto a tutti.
Ho un problema con \newcommand. Sto cercando di usarlo per abbreviare alcune scritture che sono lunghe e ricorrenti nel testo. Ad esempio nel preambolo scrivo:
\newcommand{\lingricdaM}{\tt{linguaggio riconosciuto da un monoide M} }. Però mi sono accorto dal dvi che l’espressione nel secondo gruppo di parentesi graffe non viene distanziata dalla parola successiva nel documento. Riporto alcune righe del documento per spiegarlo meglio:\documentclass[10pt,a4paper]{report}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsthm}
\usepackage{amsthm}
\usepackage{amsmath}
\newcommand{\ling}{\tt{linguaggio}}
\newcommand{\ricdaM}{\tt{riconosciuto da un monoide M}}
\newcommand{\LSigmastar}{\math{L\subseteq\Sigma^{\ast}}}\begin{document}
Sia L un \ling. L è \ricdaM se esiste $P\subseteq M$ e un morfismo
$\varphi:\Sigma^{\ast}\rightarrow M$ tale che $\varphi^{-1}(P)=L$.
\end{document}Come si può vedere nel dvi, il “se” non viene separato dall’ espressione “linguaggio riconosciuto…”.
Cosa posso fare?
Grazie e arrivederci.
-
CreatoreTopic
-
AutoreRisposte
-
-
7 Maggio 2006 alle 15:55 #8899::
Un saluto a tutti.
Ho un problema con \newcommand. Sto cercando di usarlo per abbreviare alcune scritture che sono lunghe e ricorrenti nel testo. Ad esempio nel preambolo scrivo:
\newcommand{\lingricdaM}{\tt{linguaggio riconosciuto da un monoide M} }. Però mi sono accorto dal dvi che l’espressione nel secondo gruppo di parentesi graffe non viene distanziata dalla parola successiva nel documento. Riporto alcune righe del documento per spiegarlo meglio:\documentclass[10pt,a4paper]{report}
\usepackage[latin1]{inputenc}
\usepackage[italian]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsthm}
\usepackage{amsthm}
\usepackage{amsmath}
\newcommand{\ling}{\tt{linguaggio}}
\newcommand{\ricdaM}{\tt{riconosciuto da un monoide M}}
\newcommand{\LSigmastar}{\math{L\subseteq\Sigma^{\ast}}}\begin{document}
Sia L un \ling. L è \ricdaM se esiste $P\subseteq M$ e un morfismo
$\varphi:\Sigma^{\ast}\rightarrow M$ tale che $\varphi^{-1}(P)=L$.
\end{document}Come si può vedere nel dvi, il “se” non viene separato dall’ espressione “linguaggio riconosciuto…”.
Cosa posso fare?
Grazie e arrivederci.Sconsiglio vivamente di usare abbreviazioni simili. Come sconsiglio vivamente l’uso del “typewriter type” nel testo comune.
Le abbreviazioni di quel tipo sono anche comode, ma quando passa un po’ di tempo e riprendi in mano quel documento ti domandi subito: “Ma che &^**? vuol dire \ricdaM?”
Il “typewriter type” va impiegato solo in certe situazioni, per indicare per esempio parti di programmi o lo stesso codice LaTeX.
Inoltre fai parecchi errori nelle tue definizioni: non devi usare \tt, ma \texttt. E l’uso dei simboli deve essere coerente:`Sia $L$ un linguaggio. $L$ è \emph{riconosciuto da $M$} se esistono $P\subseteq M$ e un morfismo
$\varphi\colon\Sigma^{\ast}\rightarrow M$ tale che $\varphi^{-1}(P)=L$.`Nota i segni di dollaro in più e il comando \colon invece dei due punti (e anche il verbo al plurale :D).Se poi insisti a voler usare le abbreviazioni, ti consiglio di leggere la documentazione del pacchetto xspace. Ma non prima di esserti letto, per esempio, la “(mica tanto) breve introduzione a LaTeX”.
Ciao
Enrico
-
7 Maggio 2006 alle 18:13 #8900::
Volevo usare \newcommand per le abbreviazioni in quanto ho “pescato” in rete questo documento che sembrerebbe un’impalcatura di tesi di informatica teorica con molti termini presenti anche nella mia tesi. Pensavo fosse giusto fare così 🙁% Informatica Teorica
\documentclass[10pt,a4paper,oneside]{book} %per far stampare meno pagine
%\RequirePackage[dvipdfm,hyperindex]{hyperref}
\usepackage[italian]{babel}
%\usepackage[TS1,T1]{fontenc} % da dei problemi con pdflatex
\usepackage[latin1]{inputenc}
\usepackage{times}
\usepackage{textcomp}
\usepackage{pifont}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amstext}
\usepackage{amsbsy}
\usepackage{amssymb}
\usepackage{latexsym}
%\usepackage{pb-diagram}
%\usepackage{tree-dvips}
%\usepackage{lingmacros}
%\usepackage{ps-trees}
%\usepackage{semantic}
\usepackage{pstricks}
\usepackage{subfigure}
%\usepackage[mathscr]{eucal}
\usepackage{makeidx} % per generare l’indice
\usepackage{times} %include il carattere times
\usepackage{mathptm} %include il carattere times anche per le funzioni matematiche
%\usepackage{pst-tree} % per generare degl’alberi
\usepackage{url}
% per i newtheorem
%\usepackage[amsmath,thmmarks]{ntheorem}
% Per linguaggi
\usepackage{titlesec}
\usepackage{stmaryrd}
\usepackage{amscd}
\usepackage{sty/vaucanson-g/vaucanson-g}
\usepackage[dvips]{graphicx}\pagenumbering{arabic}
%——————
% gestione delle parti matematiche
%——————
% qualche cultista di testi matematici potra` dare il vero ordine di numerazione
\theoremstyle{plain}
%\theorembodyfont{\itshape}
%\theoremheaderfont{\normalfont\bfseries}
%\theoremsymbol{\ensuremath{_\Box}}
\newtheorem{teo}{Teorema}[chapter]
\newtheorem{pro}[teo]{Proposizione}
\newtheorem{cor}[teo]{Corollario}
\newtheorem{lem}[teo]{Lemma}\theoremstyle{plain}
%\theorembodyfont{\upshape}
\newtheorem{deff}{Definizione}[chapter]
\newtheorem{ese}{Esempio}[chapter]%\theoremstyle{nonumberplain}
%\theoremheaderfont{\normalfont\bfseries}
%\theorembodyfont{\upshape}
%\theoremsymbol{\ensuremath{_\Box}}
%\theoremseparator{.}
\newtheorem{oss}{Osservazione}%\theoremstyle{nonumberplain}
%\theorembodyfont{\upshape}
%\theoremheaderfont{\sc}
%\theoremseparator{.}
%\theoremsymbol{\ensuremath{_\blacksquare}}
\newtheorem{dimo}{Dimostrazione}[teo] % dim esiste gia`\theoremstyle{plain} % stile corsivo
\theoremstyle{definition} % stile roman
\newtheorem{exa}{Esempio}
\newtheorem{exe}{Esercizio}[chapter]
\theoremstyle{remark} % stile per osservazioni
\newtheorem{rem}[teo]{Osservazione} % o anche Nota
\newtheorem{ask}{Domanda}
\newtheorem{answer}{Risposta}[ask]
%\newtheorem{dimo}{Dimostrazione}[chapter] % dim esiste gia`
%\newtheorem{rem}[theo]{Nota} % o anche Osservazione%%%% Linguaggi
\newtheorem{defi}{Definizione}[chapter]
\newtheorem{prop}[teo]{Proposizione}
\newtheorem{coro}[teo]{Corollario}
\newtheorem{lemm}[teo]{Lemma}%——————
% Prima pagina : Titolo / Autori
%——————
\title{{\sf Informatica Teorica}}
\author{
Andrea Leonardi,
Mattia Belletti,
Matteo Boccafoli
\\
{\small
leonardi@CS.UniBO.IT ,
mbellett@CS.UniBO.IT ,
boccafoli@CS.UniBO.IT
}}
\newcommand{\version}{ \input versione.tex }
\date{Versione \version{} – \today}%===========================================================================
%Begin Linguaggi\newcommand{\ecc}{ ecc\ldots}
\newcommand{\todo}[1]{[\textbf{TODO}: #1]\vspace{0.2cm}}
\newcommand{\verify}[1]{[\textbf{VERIFY}: #1]\vspace{0.2cm}}
\newcommand{\foreign}[1]{\texttt{#1}}
\newcommand{\subchapt}[1]{\framebox[\textwidth]{\parbox{340pt}{\small{#1}}}}
\newcommand{\para}{\vspace{0.1cm}\noindent}
\newcommand{\ASFD}{automa a stati finiti deterministico }
\newcommand{\ASFND}{automa a stati finiti non deterministico }
\newcommand{\ASFDns}{automa a stati finiti deterministico}
\newcommand{\ASFNDns}{automa a stati finiti non deterministico}
\newcommand{\APD}{automa a pila deterministico }
\newcommand{\APND}{automa a pila non deterministico }
\newcommand{\APDns}{automa a pila deterministico}
\newcommand{\APNDns}{automa a pila non deterministico}
\newcommand{\tblh}[1]{\sffamily\large\textbf{#1}}
\newcommand{\subpar}[1]{{\small{#1}}}
\newcommand{\first}{{\tt{first }}}
\newcommand{\follow}{{\tt{follow }}}
\newcommand{\firstns}{{\tt{first}}}
\newcommand{\followns}{{\tt{follow}}}
\newcommand{\code}[1]{{\tt{#1}}}
\newcommand{\ipo}[1]{\indent $\Diamond$ \emph{#1}\newline}
\newcommand{\nt}[1]{\texttt{#1}}%\newenvironment{oss}%
%{\vspace{0.2cm}\noindent\textbf{\sffamily{Osservazioni.}}\quad}%
%{$\blacktriangleleft$\newline\vspace{0.2cm}}%\newenvironment{dimo}%
%{\noindent\textbf{\sffamily{Dimostrazione.}}\newline}%
%{ $\Box$ \vspace{0.2cm}}%\newenvironment{ese}%
%{\vspace{0.1cm}\textbf{\sffamily{Esempio.}}\newline\rule[1mm]{\textwidth}{.1pt}\noindent}%
%{$\Box$ \vspace{0.1cm}}% Dichiarazione di comandi (shortcut)
\newcommand{\BM}{\begin{displaymath}}
\newcommand{\EM}{\end{displaymath}}
\newcommand{\BC}{\begin{cases}}
\newcommand{\EC}{\end{cases}}
\newcommand{\BA}{\begin{array}}
\newcommand{\EA}{\end{array}}
\newcommand{\BI}{\begin{itemize}}
\newcommand{\EI}{\end{itemize}}
\newcommand{\BE}{\begin{enumerate}}
\newcommand{\EE}{\end{enumerate}}
\newcommand{\OO}{\overline}
\newcommand{\UU}{\underline}
\newcommand{\FI}{\varphi}
\newcommand{\VX}{x_1,x_2,\ldots,x_n}
\newcommand{\UX}{\UU{x_1},\ldots,\UU{x_n}}
\newcommand{\NAT}{\mathbb{N}}
\newcommand\lsem{\llbracket}
\newcommand\rsem{\rrbracket}
%end Linguaggi
%===========================================================================%——————
%Layout
%——————
%\textwidth 196mm % old 160
%\textheight 270mm %old 240
%\oddsidemargin 0mm
%\hoffset -18mm % old 0
%\voffset -30mm % old -10
%\voffset 0mm
%\evensidemargin 0mm
%\marginparwidth 0mm
%\marginparsep 0mm\RequirePackage{fancyheadings}
\pagestyle{fancyplain}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection{} #1}}
\lhead[\fancyplain{}{\thepage ~ ~ {\sf Informatica Teorica – {\small v. \version{}}}}]{\fancyplain{}{\sc\rightmark}}
\rhead[\fancyplain{}{\sc\leftmark}]{\fancyplain{}{{\sf Informatica Teorica – {\small v. \version{}}} ~ ~ \thepage}}
\cfoot[]{}%\linespread{1.3} %comando per impostare l’interlinea
%\linespread{0.8} %comando per impostare l’interlinea% genera il file idx che viene manipolato da usr/bin/makeindex [indice analitico]
\makeindex\begin{document}
\frontmatter % la parte che precede il documento
\maketitle % produce il titolo
%\input prefazione/copyright_note.tex
%\input prefazione/prefazione.tex
\input prefazione/introduzione.tex\tableofcontents % indice generale
\listoffigures % l’elenco delle figure
%\listoftables % l’elenco delle tabelle\mainmatter % da qui inizia il documento (quello che chiamo body)
\begin{part}{Calcolabilit\`a}
\input calcolabilita/calcolabilita.tex
\end{part}
\begin{part}{Linguaggi}
\input linguaggi/linguaggi.tex
\end{part}
\begin{part}{Domande}
\input domande/domande.tex
\end{part}
%\begin{part}{$\lambda$-Calcolo}
%\input lambda/lambda.tex
%\end{part}
\appendix\chapter{Glossario}
\input glossario/glossario.tex
\chapter{Storia del documento}
\input appendici/storia.tex
\chapter{GNU Free Documentation License}
\input appendici/fdl.tex\backmatter
%\ifx\pdfoutput\undefined % We’re not running pdftex
% \pdfbookmark{Bibliografia}{biblos}
%\else
%\addcontentsline{toc}{chapter}{Bibliografia}
%\fi
%\input bibliografia.tex
\addcontentsline{toc}{chapter}{Bibliografia}
%\pdfbookmark{Bibliografia}{biblos}
%\ifx\pdfoutput\undefined % We’re not running pdftex
%\else% Creo l’indice dei vocaboli, occore \usepackage{makeidx}
\printindex
%\pdfbookmark{Indice analitico}{indexa}
%\addcontentsline{toc}{chapter}{Indice analitico}
%\fi\end{document}
-
7 Maggio 2006 alle 20:27 #8901::
Volevo usare \newcommand per le abbreviazioni in quanto ho “pescato” in rete questo documento che sembrerebbe un’impalcatura di tesi di informatica teorica con molti termini presenti anche nella mia tesi. Pensavo fosse giusto fare così 🙁 `…
%Begin Linguaggi\newcommand{\ecc}{ ecc\ldots}
\newcommand{\todo}[1]{[\textbf{TODO}: #1]\vspace{0.2cm}}
\newcommand{\verify}[1]{[\textbf{VERIFY}: #1]\vspace{0.2cm}}
\newcommand{\foreign}[1]{\texttt{#1}}
\newcommand{\subchapt}[1]{\framebox[\textwidth]{\parbox{340pt}{\small{#1}}}}
\newcommand{\para}{\vspace{0.1cm}\noindent}
\newcommand{\ASFD}{automa a stati finiti deterministico }
\newcommand{\ASFND}{automa a stati finiti non deterministico }
\newcommand{\ASFDns}{automa a stati finiti deterministico}
\newcommand{\ASFNDns}{automa a stati finiti non deterministico}
\newcommand{\APD}{automa a pila deterministico }
\newcommand{\APND}{automa a pila non deterministico }
\newcommand{\APDns}{automa a pila deterministico}
\newcommand{\APNDns}{automa a pila non deterministico}
\newcommand{\tblh}[1]{\sffamily\large\textbf{#1}}
\newcommand{\subpar}[1]{{\small{#1}}}
\newcommand{\first}{{\tt{first }}}
\newcommand{\follow}{{\tt{follow }}}
\newcommand{\firstns}{{\tt{first}}}
\newcommand{\followns}{{\tt{follow}}}
\newcommand{\code}[1]{{\tt{#1}}}
\newcommand{\ipo}[1]{\indent $\Diamond$ \emph{#1}\newline}
\newcommand{\nt}[1]{\texttt{#1}}
…`Se vuoi proprio saperlo, un preambolo come quello è pieno di vere schifezze. Per non parlare di quelle orride abbreviazioni. Doppie, poi! con spazio e senz! 😀
In più: scelta arbitraria di caratteri, senza alcuna coerenza; definizioni di costrutti già presenti e scritti molto meglio; eccetera.
Non c’è niente di male a voler scrivere un’abbreviazione per una locuzione usata di frequente, ma sarebbe il caso di limitarsi.`\usepackage{xspace}
\newcommand{\ASFD}{automa a stati finiti deterministico\xspace}`è il modo corretto di procedere. Il comando \xspace fa esattamente ciò che ti aspetti: se il comando \ASFD è seguito da un segno di interpunzione, LaTeX non aggiunge spazi, altrimenti sì.Un consiglio: non usare cose di cui non conosci il significato, come quei \tt che usavi a caso. Comincia dal poco e poi aggiungi.
Ciao
Enrico
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.