Skip to content

Dimensione delle equazioni simile a quella del testo

Queremos mostrarte la mejor respuesta que hemos encontrado en internet. Nosotros esperamos que te sea de utilidad y si deseas comentarnos cualquier detalle que nos pueda ayudar a perfeccionar nuestra información hazlo con libertad.

Soluzione:

Scrivere i propri appunti di classe è una situazione perfetta per utilizzare TikZ. Io ho un approccio piuttosto diverso dal tuo, ma hai già diverse risposte che ti seguono. Voglio solo illustrare un approccio diverso.

enter image description here

documentclass[12pt]{article}
usepackage{amsmath}

usepackage{tikz}
usetikzlibrary{calc}
usetikzlibrary{arrows.meta}
newcommandtikzmark[1]{tikz[remember picture,overlay]node (#1) {};}
newenvironment{mynote}[1][]
  {begin{tikzpicture}[remember picture,overlay,#1]}
  {end{tikzpicture}}

begin{document} 

I am doing some calculations here.
[
  int_SBcosalphahspace*{1mm}dS tikzmark{AL}=tikzmark{AR} Btikzmark{BL}cosalphatikzmark{BR}int_SdS
]

begin{mynote}

  path ($(AL.north)!0.5!(AR.north)$) 
        node (startA) {} -- ++(35:1in) 
        node[anchor=west,
             draw,
             rounded corners] 
            (noteA) 
            {footnotesize something happens with $cosalpha$};

  path ($(BL.south)!0.5!(BR.south)$) 
        node (startB) {} -- ++(180+35:1in) 
        node[anchor=east,
             draw,
             rounded corners] 
            (noteB) 
            {footnotesize $cosalpha$ is a constant};

  draw[arrows=-Stealth] 
       (noteA) to[out=180,in=60] 
       (startA);

  draw[arrows=-Stealth] 
       (noteB) to[out=0,in=180+60] 
       (startB);

end{mynote}

end{document}

Miglioramento dell'ambiente di cui sopra.

Se il testo segue l'approccio precedente. Ci sarà una classe potenziale con l'immagine tikz. Il seguente miglioramento all'ambiente riduce al minimo questo effetto:

newlengthmynotebottom
newlengthmyfirstlineheight
newenvironment{mynote}[2][]
  {%% #1 -- further keys to pass to the TikZ environment                           
   %% #2 -- the first line of text to follow the environment -- used to determine  
   %%       how much of an offeset is needed before starting with the text after   
   %%       this tikzpicture is completed.                                         
   settoheightmyfirstlineheight{#2}%%                                            
   %% we're not using overlays here since we'll lose all bounding box information  
   %% and we need that to determine where the bottom of the picture is.  To create 
   %% the effect of an overlay, I later *reset* the bounding box.                  
   begin{tikzpicture}[remember picture,#1]
     %% this node is originally kind of (not quite) placed where the first text    
     %% would have appeared.                                                       
     node[inner sep=0pt,anchor=west] (mynote/top/tmp) {phantom{#2}};
     pgfresetboundingbox
     node[inner sep=0pt] (mynote/top) at ($(mynote/top/tmp.north)+(0,0.5myfirstlineheight)$) {};
  }
  {%% node `mynote/top` may or may not be at the bottom of the picture.
   %% so create a node that will be at the bottom of the picture
   node[inner sep=0pt] (mynote/bottom) at (current bounding box.south) {};
   %% now find out how much space to add to the bottom of the picture
   pgfextracty{globalmynotebottom}{pgfpointanchor{mynote/bottom}{south}}
   %% uncomment these lines to see some of what was happening.
   % draw[orange!30] (current bounding box.north west) rectangle (current bounding box.south east);
   % draw[blue!30]   (mynote/bottom) -- (mynote/top);
   % draw (mynote/bottom) -- ++(0,-1mynotebottom) -- (mynote/top.south) -- (mynote/bottom.south);
   %% by resetting the bounding box at this point, I've basically emulated what 
   %% an overlay would have done without losing the information I needed to     
   %% calculate where the bottom of the picture is.                             
   pgfresetboundingbox
   end{tikzpicture}%%
   vspace{-1mynotebottom}%%
  }

che, se c'è del testo successivo, produce il seguente tipo di risultato senza che l'utente debba fare troppo lavoro. In pratica, il contenuto della prima riga del testo che segue l'ambiente deve essere inserito come secondo argomento non opzionale dell'ambiente:

I am doing some calculations here.
[
  int_SBcosalphahspace*{1mm}dS tikzmark{AL}=tikzmark{AR} Btikzmark{BL}cosalphatikzmark{BR}int_SdS
]

begin{mynote}{Lorem ipsum}
.....
end{mynote}

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut
purus elit, vestibulum ut, placerat ac, adipiscing vitae,
felis. Curabitur dictum gravida. 

per produrre

enter image description here

Processo di pensiero dietro l'aggiornamento

Come già detto, l'approccio originale può portare a una collisione tra testo e markup.

enter image description here

Non sono contento!!!

Naturalmente si può inserire manualmente la propria correzione verticale. Ma che rottura di scatole! Sarebbe bello se questo potesse essere fatto più al volo e richiedesse di modificare manualmente solo in caso di situazioni strane.

Allora, ho migliorato l'ambiente. Quello che vorrei fare è ottenere informazioni dal rettangolo di selezione. Ma il overlay impedisce di calcolare il rettangolo di selezione.

Prima idea: rimuovere il parametro overlay dall'ambiente. Tuttavia, questo da solo creerebbe un risultato indesiderato:

enter image description here

Quindi la chiave per emulare overlay senza invocarlo direttamente è reimpostare il rettangolo di selezione una volta che tutto è stato preparato. Poiché non è stata utilizzata alcuna sovrapposizione, ho accesso al rettangolo di selezione (prima di azzerarlo). Pertanto, so dove si trova la parte inferiore dell'immagine.

Naturalmente, questo solleva una questione spinosa. Cosa succede se la parte inferiore dell'immagine si trova al di sopra di un altro contenuto.
Se mi limito a trovare la parte inferiore del rettangolo di selezione, il mio miglioramento finisce per creare un diverso tipo di collisione tra testo e markup:

enter image description here

Questo è il motivo per cui all'inizio dell'articolo mynote inserisco un nodo che funge da segnalibro per ricordare l'altezza a cui l'immagine è stata originariamente creata. In questo modo ottengo un risultato visivamente più gradevole.

enter image description here

Utilizzo di un'esplicita hspace è raramente necessario. Probabilmente si vuole che il testo di spiegazione sia centrato sotto la freccia, quindi basta farlo con un comando array.

Ho definito un comando per evitare input complessi.

documentclass[a4paper,12pt]{article}
usepackage[utf8]{inputenc} % not required since 2018-04-01
usepackage[T1]{fontenc} % required for Spanish
usepackage[spanish]{babel}
usepackage{amsmath}

newcommand{explanation}[3][Big]{%
  underset{%
    begin{array}{@{}[email protected]{}}
    #1downarrow \
    makebox[0pt]{scriptsize #3}
    end{array}
  }{#2}%
}

begin{document}

I am doing some calculations here.
[
int_S Bcosalpha,dS
explanation[bigg]{=}{something happens with $cosalpha$}
Bcosalphaint_S,dS
]

end{document}

È anche possibile modificare la dimensione della freccia con l'argomento opzionale (default Big).

Si noti anche che per separare il differenziale, , (spazio sottile) è molto meglio di hspace{1mm}. Inoltre, la codifica T1 è raccomandata (meglio, richiesta) per lo spagnolo, altrimenti la sillabazione sarebbe molto problematica.

enter image description here

Penso che il costrutto dell'uso di text{...} sia inutilmente complicato. Si potrebbe semplicemente avere il testo al di fuori della modalità matematica e posizionare cosalpha come espressione matematica in linea. Se si modifica la dimensione del carattere per questa parte del testo, la dimensione del carattere dell'espressione matematica in linea si adatterà di conseguenza:

documentclass[a4paper,12pt]{article}
usepackage[spanish]{babel}
usepackage{amsmath}
usepackage[utf8]{inputenc}
begin{document} 
I am doing some calculations here.
[int_SBcosalpha,dSunderset{biggdownarrow} 
{=}Bcosalphaint_SdS]
parhspace*{4cm} {footnotesize something happens with $cosalpha$}
end{document}

enter image description here

Aquí puedes ver las comentarios y valoraciones de los lectores

Tienes la posibilidad dar visibilidad a este post si lograste el éxito.


Tags : /

Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.