2009-11-09 16 views
14

chciałbym wyrazić następujące zdanie (source_location jest kursywa, to nie jest poprawnie renderowane):Latex: jak umieścić podział wiersza w matematyce

Każdy wpis ma listę krotki: < source_location, O/, trip_counter, występowanie, zabite (wyjaśnione później)>

Moje bieżące obejście tego jest:

$ \left\langle 
\textit{source\_location}, \textit{R/W}, \textit{trip\_counter}, 
\textit{occurrence}, \textit{killed} \text{(explained in the later)} 
\right\rangle $ 

używam papieru 2-kolumny. Ten < ..> jest zbyt długi, ale nie ma przerwy linii, ponieważ jest to matematyka. Jak w takim przypadku automatycznie (lub ręcznie) umieścić podział wiersza? Wygląda na to, że \left\langle i \right\rangle powinny być w jednej matematyce. Trudno jest więc złamać wiele matematyki.

$<$ i $>$ będzie alternatywą, ale mi się nie podoba.

Dzięki!

Odpowiedz

5

Dlaczego nie definiować nowe polecenie:

\newcommand{\tuple}[5]{$\langle$\textit{#1}, \textit{#2}, \textit{#3}, \textit{#4}, 
    \textit{#5} (explained in the latter)$\rangle$} 

Następnie użyj \tuple{sourcelocation}{R/W}{tripcounter}{occurrence}{killed}

+0

Dzięki Rob, spróbuję też. – minjang

0

Chciałbym użyć środowiska align * z AMSmath. Ponadto możesz po prostu dodać "\", aby przerwać linie? Powinien także pracować w środowiskach matematycznych. Alternatywnie możesz oddzielić równania.

+0

Dzięki, ale \ i \\ po prostu nie działa.Rozdzielanie równań byłoby opcją, ale \ left \ langle i \ right \ rangle nie pozwalają na oddzielne równanie. – minjang

1

Wygląda na to, że istnieje package that addresses that problem, called breqn. Możesz spróbować i dać nam znać (nie użyłem tego).

+2

breqn jest (świetnie) do łamania równań wyświetlania; pytanie dotyczy matematyki liniowej wewnątrz akapitu. –

+0

Masz rację. Dzięki. –

21

LaTeX zezwala inline matematyka przebić przez linie domyślnie, ale istnieje szereg ograniczeń. W szczególności, w twoim przypadku, używając \left...\right umieszczasz wszystko wewnątrz nieprzełączalnej grupy matematycznej, więc pierwszym krokiem jest zastąpienie ich zwykłym \langle...\rangle lub może \bigl\langle...\bigr\rangle.

To jednak nie wystarczy, aby umożliwić przełamanie linii; zwykle jest to dozwolone tylko po relacjach lub operatorach, a nie w interpunkcji takiej jak przecinek. (Myślę, że tak się dzieje, nie zatrzymałem się, żeby to sprawdzić.) Więc chcesz wskazać, gdzie mogą wystąpić dopuszczalne przerwy w linii, pisząc po każdym przecinku \linebreak[1].

W zależności od tego, jak często trzeba to robić, może być lepiej napisać polecenie, aby zawinąć "krotki" w ładne polecenie. Aby napisać to w źródle:

 
$ \mytuple{ source\_location, R/W, trip\_counter, occurrence, 
    killed\upshape (explained in the later) } $ 

oto definicja \mytuple że bierze wszystko powyższe pod uwagę:

 
\makeatletter 
\newcommand\mytuple[1]{% 
    \@tempcnta=0 
    \bigl\langle 
    \@for\@ii:=#1\do{% 
    \@insertbreakingcomma 
    \textit{\@ii} 
    }% 
    \bigr\rangle 
} 
\def\@insertbreakingcomma{% 
    \ifnum \@tempcnta = 0 \else\,,\ \linebreak[1] \fi 
    \advance\@tempcnta\@ne 
} 
\makeatother 
+0

Wielkie dzięki! Spróbuję tego! – minjang

+0

Doceniam twoją pomoc. Było to dla mnie bardzo przydatne, chociaż musiałem wybrać odpowiedź Roba. – minjang

+0

Bez obaw, tu nie ma polityki! Cóż, nie pomógł ci w tym, żeby przerwać matematykę, ale jego rozwiązanie działa równie dobrze, chyba że chcesz mieć więcej niż cztery przedmioty w swojej krotce :) –

-2

Użyj \ LINEBREAK wewnątrz wyrażenia matematyczne gdziekolwiek chcesz nową linię nawet między 2 nawiasami. To wymusi zerwanie linii.

Powiązane problemy