- Questo topic ha 22 risposte, 5 partecipanti ed è stato aggiornato l'ultima volta 9 anni, 6 mesi fa da
Alessandro.
-
CreatoreTopic
-
7 Febbraio 2017 alle 16:15 #109320
-
CreatoreTopic
-
AutoreRisposte
-
-
7 Febbraio 2017 alle 16:22 #109321
-
7 Febbraio 2017 alle 16:27 #109322
-
7 Febbraio 2017 alle 17:27 #109323::
Cero che si può fare, ma in modo matematico o in modo testo?
L’idea è di scrivere i primo simbolo dentro una \makebox di larghezza nulla con il simbolo allineato a sinistra dentro la scatola; è un normale trucco per fare apparire un simbolo di larghezza nulla); poi di scrivere subito dopo il secondo simbolo.Se non dai i dettagli è quasi impossibile darti una soluzione, che comunque richiede di creare una macro, perché questa amcro deve eseguire nella giusta sequenza un certo numero di operazioni che se fatte a mano potrebbero essere fonte di fastidi a cusa degli errori di battitura che inevitabilmente si fanno agendo a mano.
Nota che il linguaggio TeX mette a disposizione il comando \rlap{…} mentre \LATeX fornisce il comando \makebox[l][0pt]{…}; al posto dei puntini ci metti il primo simbolo, ma se devi lavorare in modo matematico devi anche specificarlo esplicitamante insieme ai puntini; poi se il comando pur contenendo simboli matematici, deve essere usato anche in mdo testo ci vuole un \ensuremath{…}, ma se in modo matematico quei due simboli sovrapposti rappresentano un qualche operatore, devi specificarlo in mdo che LaTeX possa spazialo adeguatamente.
Se però uno dei due simboli è quello di negazione, esso si dovrebbe ottenere direttamente con \not, solo che spesso è necessario aggiustarne la posizione verticale. Molti simboli negati sono già disponibili se usi il file di estensione di amsmath amssymb.sty. Leggine la documentazione con: terminale; texdoc amssymb; pulsante “invio”; lettura.
Vedi dunque l’importanza dei dettagli mancanti?
-
7 Febbraio 2017 alle 17:44 #109324::
Per quanto riguarda TeX e LATeX non ne conosco nel dettaglio le differenze, solitamente utilizzo l’ambiente TeXworks e compilo con pdfLATeX.In realtà dovrei fare questa sovrapposizione sia in modo matematico che in modo testo.
Comunque supponiamo pure di volerlo fare in modo testo, che sarà l’uso principale che intendo farne.
-
7 Febbraio 2017 alle 21:22 #109325::
Vedi questo esempio minimo compilabile.
`% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = pdflatex
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[italian]{babel}\newcommand\overlaptwo[3][]{\ensuremath{\rlap{$#2$}#1{}#3}}
\begin{document}
{\Huge Questo è un simbolo formato dalla sovrapposizione di due
simboli \overlaptwo{A}{I} o meglio \overlaptwo[\,]{A}{I}; meglio
ancora \overlaptwo[\mskip3.1mu]{A}{I}}
L'argomento facoltativo serve per regolare la posizione del
secondo termine rispetto al primo; esso è costituito da un
comando di spaziatura come \verb|\,| usato nell'esempio,
ma potrebbe essere \verb|\mskip2mu|, oppure \verb|\kern2pt|.
Vanno usate solo spaziature matematiche.Per ulteriori informazioni si veda la guida tematica \emph{Il
\LaTeX\ Reference Manual commentato}.
\end{document}`
-
7 Febbraio 2017 alle 22:40 #109326
-
8 Febbraio 2017 alle 20:00 #109327::
Dipende da che tipo di sovrapposizione intendi. Comunque, se hai due simboli, diciamo [tt]\vee[/tt] e [tt]\wedge[/tt] di uguale ampiezza, e il simbolo risultante dev’essere di operazione,`
\makeatletter
\newcommand{\veewedge}{\mathbin{\mathpalette\@veewedge\relax}}
\newcommand{\@veewedge}[2]{%
\ooalign{$\m@th#1\vee$\cr$\m@th#1\wedge$\cr}%
}
\makeatother
`Si possono ottenere molti effetti con variazioni sul tema. Senza dettagli, pupi ottenere solo risposte generiche.
Ciao
Enrico
-
8 Febbraio 2017 alle 21:01 #109328
-
8 Febbraio 2017 alle 22:20 #109329::
egreg9″ post=109535[…]`
\makeatletter
\newcommand{\veewedge}{\mathbin{\mathpalette\@veewedge\relax}}
\newcommand{\@veewedge}[2]{%
\ooalign{$\m@th\vee$\cr$\m@th\wedge$\cr}%
}
\makeatother
`[…]Usi [tt]\mathpalette[/tt], com’è giusto, ma poi ti sei dimenticato di richiamare lo stile che essa ti passa:
`
\newcommand{\veewedge}{\mathbin{\mathpalette\@veewedge\relax}}
\newcommand{\@veewedge}[2]{%
\ooalign{$\m@th #1\vee$\cr$\m@th #1\wedge$\cr}%
}
`Ciao.
—
Gustavo
-
8 Febbraio 2017 alle 22:45 #109330::
alessandropagin” post=109536Si è esattamente questo che intendevo!! 🙂
Ora vorrei fare soltanto un piccolo aggiustamento: dilatare verticalmente il nuovo simbolo ottenuto fino a fargli raggiungere l’altezza di un altro simbolo (ad esempio il simbolo \int di integrale), si può?
Temo di non capire bene cosa chiedi: è per caso qualcosa del genere di quel che segue?
`
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.\usepackage{amsmath}
\makeatletter
\newcommand*\veewedge{\mathbin{\mathpalette\@veewedge\relax}}
\newcommand*\@veewedge[2]{%
\ooalign{$\m@th #1\vee$\cr$\m@th #1\wedge$\cr}%
}
\newcommand*\@My@vooalign[4]{%
\leavevmode
\vcenter{%
\baselineskip\z@skip
\lineskiplimit -\maxdimen
\m@th
\ialign{\hfil$#3##$\hfil\crcr #1\crcr #2\crcr}%
}%
}
% Another implementation style:
\newcommand*\bigveewedge{%
\mathop{\mathpalette{\@My@vooalign \bigvee\bigwedge}{}}\slimits@
}\makeatother
\begin{document}
Inline math:
\( \bigveewedge_{i=1}^{n} x_{i} = x_{1}\veewedge\dots\veewedge x_{n} \).
Display math:
\begin{gather*}
\bigveewedge_{i=1}^{n} x_{i} = x_{1}\veewedge\dots\veewedge x_{n}\\
\frac{\bigveewedge_{i=1}^{n} y_{i}}{\bigveewedge_{i=1}^{n} z_{i}}
= \frac
{y_{1}\veewedge\dots\veewedge y_{n}}
{z_{1}\veewedge\dots\veewedge z_{n}}
\end{gather*}
Inline again: \( \frac{x\veewedge y}{a\veewedge b} \).\end{document}
`Ciao.
—
Gustavo
-
8 Febbraio 2017 alle 23:20 #109331::
Se ho capito bene quello che hai fatto, hai definito il simbolo \veewedge utilizzando i simboli \vee e \wedge e il simbolo \bigveewedge utilizzando i simboli \bigvee e \bigwedge.Io invece vorrei definire il simbolo \veewedge utilizzando i simboli \vee e \wedge (come hai fatto tu) e fare in modo che sia alto esattamente quanto il simbolo \int.
-
9 Febbraio 2017 alle 18:27 #109332::
Scusami, ma ancora non capisco: vuoi costruire un «large operator» (cioè un operatore che si comporta come [tt]\sum[/tt], [tt]\bigvee[/tt] o [tt]\int[/tt], in particolare includendo la capacità di spostare pedici e apici nella posizione di «limiti») o un operatore binario? E in ambo i casi perché vuoi utilizzare apposta dei simboli troppo piccoli, quando hai a disposizione quelli dell’altezza giusta? Che tipo di trasformazione vuoi applicare a [tt]\vee[/tt] e [tt]\wedge[/tt] (teniamo questo esempio) per portarli all’altezza desiderata? Devono essere ingranditi? Devono essere stirati verticalmente? Devono essere, in realtà, non sovrapposti, ma collocati uno più su e uno più giù?Comunque, puoi dare un’occhiata alla documentazione dl pacchetto scalerel, di Steven B. Segletes; o magari, addirittura al pacchetto halloweenmath (al momento non mi ricordo chi ne è l’autore 😉 ), per idee su come si possano definire simboli matematici di forma completamente arbitraria (una strega, un fantasma, una zucca…).
Ciao.
—
Gustavo
-
14 Febbraio 2017 alle 15:59 #109333::
Non voglio costruire un large operator, voglio costruire un operatore binario.
Il modo in cui sono stati sovrapposti \vee e \wedge è esattamente quello che volevo, vorrei però stirarli orizzontalmente e verticalmente fino a fargli raggiungere le dimensioni di un terzo operatore (ad esempio \overlap).
-
14 Febbraio 2017 alle 17:54 #109334
-
15 Febbraio 2017 alle 0:13 #109335::
Ho letto la documentazione, mi sembra di capire che i comandi che hai citato permettano di “stirare” le dimensioni del mio operatore fino a raggiungere delle dimensioni fissate che indico io ma non fino a raggiungere le dimensioni di un altro operatore che indico io.
Giusto?
Più che dirgli di farlo alto 10 o alto 100 vorrei dirgli di farlo alto come \between (o qualsiasi altro simbolo, per intenderci).
-
15 Febbraio 2017 alle 8:39 #109336::
Mi pare di averti già detto di conultare Il LaTeX Reference Manual commentato da scaricare dalla sezione Guide Tematiche della Documentazione di questo forum; lì trovi comandi nativi di LaTeX per prendere le misure di altri oggetti. Non farti dire tutto, e non aspettarti che i volonterosi ti diano direttamante la soluzione. Non imparerai mai ad usare LaTeX se non ti cimenti da solo, in primis, documentandoti. Se mi dici che ne L’Arte non si parla di queste cose, questo dipende dal fatto che quella guida è per neofiti; se tu vuoi fare quello che chiedi, non sei un neofita o sei un neofita che vorrebbe non esserlo. Quindi provaci: hai tutte le informazioni che ti servono nella tua installazione del sistema TeX e nella documentazione di questo forum, prima di chiedere come si fa agli altri; questo lo possono fare i neofiti veri…:smile:
-
15 Febbraio 2017 alle 17:38 #109337
-
15 Febbraio 2017 alle 19:45 #109338::
alessandropagin” post=109634Ho letto la documentazione, mi sembra di capire che i comandi che hai citato permettano di “stirare” le dimensioni del mio operatore fino a raggiungere delle dimensioni fissate che indico io ma non fino a raggiungere le dimensioni di un altro operatore che indico io.
Giusto?
Più che dirgli di farlo alto 10 o alto 100 vorrei dirgli di farlo alto come \between (o qualsiasi altro simbolo, per intenderci).Insisto:`texdoc scalerel`
Ciao.
—
Gustavo
-
15 Febbraio 2017 alle 22:45 #109339
-
16 Febbraio 2017 alle 0:32 #109340::
Provo a percorrere una strada alla volta.Ho consultato la documentazione del package scalerel, ho usato quindi il codice
`\begin{math}\scalerel{\veewedge}{\between} \end{math}`
ed ho ottenuto un \veewedge della stessa altezza del \between ma non della stessa larghezza.Se volessi far coincidere anche le larghezze come dovrei fare?
-
17 Febbraio 2017 alle 20:21 #109341::
alessandropagin” post=109663[…] ho ottenuto un \veewedge della stessa altezza del \between ma non della stessa larghezza.
Se volessi far coincidere anche le larghezze come dovrei fare?
Così, per esempio.
`
% My standard header for TeX.SX answers:
\documentclass[a4paper]{article} % To avoid confusion, let us explicitly
% declare the paper format.\usepackage[T1]{fontenc} % Not always necessary, but recommended.
% End of standard header. What follows pertains to the problem at hand.\usepackage{amsmath,amssymb}
\usepackage{graphics}\makeatletter
\def\do#1{\@ifdefinable#1{\newdimen#1}}
\do\@Curr@between@width
\do\@Curr@between@totalheight\newcommand*\veewedge{\mathbin{\mathpalette\@veewedge\relax}}
\newcommand*\@veewedge[2]{%
\setbox\z@ \hbox{$\m@th #1\between$}%
% \typeout{wd = \the\wd\z@}%
% \typeout{ht = \the\ht\z@}%
% \typeout{dp = \the\dp\z@}%
\@Curr@between@width \wd\z@
\@Curr@between@totalheight \ht\z@
\advance \@Curr@between@totalheight \dp\z@
\hbox{% to have a box with actual depth
\lower \dp\z@ \hbox{%
\resizebox*{\@Curr@between@width}{\@Curr@between@totalheight}%
{\ooalign{$\m@th #1\vee$\cr$\m@th #1\wedge$\cr}}%
}%
}%
}\makeatother
\begin{document}
Inline math, comparison for vertical dimensions: normal size \(
{\between}{\veewedge} \), script size \( \scriptstyle {\between}{\veewedge} \),
scriptscript size \( \scriptscriptstyle {\between}{\veewedge}\).Now in display:
\begin{alignat*}{1}
\text{Vertical dimensions:}&\qquad{\between}{\veewedge} \\
\text{Horizontal dimensions:}&\qquad
\begin{aligned}[t]
x&\mathbin{\between}y\\x&\veewedge y
\end{aligned}
\end{alignat*}\end{document}
`Ciao.
—
Gustavo
-
20 Febbraio 2017 alle 17:40 #109342
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.