Springen naar inhoud

Sub- en superscript uitbouwen in latex


  • Log in om te kunnen reageren

#1

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 14 maart 2011 - 16:19

Ik weet niet hoe vaak jullie met Latex moeten werken, maar persoonlijk vond (en vind) ik het wel jammer dat je in tekstmode niet gewoon "^" en "_" kunt gebruiken voor super- en subscript. Daarom was ik begonnen zoeken naar een oplossing, en iemand reikte mij een (oude) oplossing aan. Echter, ze werkt niet bij mij, en ik snap er niet zo heel veel van om te weten waar of wat er mis gaat. Daarom wou ik hier hulp vragen ;). Dit is de code

\makeatletter
\newcommand\textsubscript[1]{\@textsubscript{\selectfont#1}}
\def\@textsubscript#1{{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
\newcommand\textbothscript[2]{%
  \@textbothscript{\selectfont#1}{\selectfont#2}}
\def\@textbothscript#1#2{%
  {\m@th\ensuremath{%
	^{\mbox{\fontsize\sf@size\z@#1}}%
	_{\mbox{\fontsize\sf@size\z@#2}}}}}
\def\@super{^}\def\@sub{_}

\catcode`^\active\catcode`_\active
\def\@super@sub#1_#2{\textbothscript{#1}{#2}}
\def\@sub@super#1^#2{\textbothscript{#2}{#1}}
\def\@@super#1{\@ifnextchar_{\@super@sub{#1}}{\textsuperscript{#1}}}
\def\@@sub#1{\@ifnextchar^{\@sub@super{#1}}{\textsubscript{#1}}}
\def^{\let\@next\relax\ifmmode\@super\else\let\@next\@@super\fi\@next}
\def_{\let\@next\relax\ifmmode\@sub\else\let\@next\@@sub\fi\@next}
\makeatother
Hij heeft niets gezegd van extra packages nodig ofzo helaas. En voor hem is het ook al vrij lang geleden dat hij dit gedaan heeft :P. Zeker ligt het niet aan een te oude versie van Miktex ofzo. Ik werk met Miktex 2.9.

PS Ik heb wel al een tijdelijke oplossing bedacht, maar wou het graag nog beter :P. Dat is wat ik voorlopig heb:

\newcommand{\superscript}[1]{\ensuremath{^{\textrm{#1}}}}
\newcommand{\subscript}[1]{\ensuremath{_{\textrm{#1}}}}
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 14 maart 2011 - 17:54

PS Ik heb wel al een tijdelijke oplossing bedacht, maar wou het graag nog beter ;). Dat is wat ik voorlopig heb:

\newcommand{\superscript}[1]{\ensuremath{^{\textrm{#1}}}}
\newcommand{\subscript}[1]{\ensuremath{_{\textrm{#1}}}}

plagiaat?

#3

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 14 maart 2011 - 19:28

plagiaat?

Van beiden had ik geen idee ;). Ik had het aan iemand gevraagd en die gaf mij deze code. De ene optie werkte, maar vond ik nog vrij veel werk. De andere dus niet. Nu, los daarvan, vind ik plagiaat een zwaar woord, daar het antwoorden op een probleem zijn. Als ik het juist interpreteerde. En zeker die tweede is imo perfect zelf te bedenken.

Veranderd door Drieske, 14 maart 2011 - 19:29

Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#4

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 14 maart 2011 - 19:46

Ik denk dat je best eens gaat kijken naar de implementatie van de huidige ^ en _ in mathmode en dan het 'vertaalt'. Ik weet echter niet of die definities in tex macro's staan of hard coded in de tex interpreter zitten.
De tijdelijke oplossing zou ik gebruiken aangezien deze waarschijnlijk zeker nooit problemen gaat geven met volgende versies van LaTeX
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#5

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 14 maart 2011 - 19:47

Nu, los daarvan, vind ik plagiaat een zwaar woord, daar het antwoorden op een probleem zijn. Als ik het juist interpreteerde. En zeker die tweede is imo perfect zelf te bedenken.

Nou en? Jij doet alsof je iets bedacht hebt terwijl dat niet zo is. Je hebt gewoon iets overgenomen. Dat is plagiaat. Of jij dat een zwaar woord vindt, of het antwoorden zijn danwel dat je het zelf zou kunnen bedenken is totaal niet relevant. Gewoon niet doen alsof je iets zelf hebt bedacht.

#6

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 14 maart 2011 - 20:55

Nou en? Jij doet alsof je iets bedacht hebt terwijl dat niet zo is. Je hebt gewoon iets overgenomen. Dat is plagiaat. Of jij dat een zwaar woord vindt, of het antwoorden zijn danwel dat je het zelf zou kunnen bedenken is totaal niet relevant. Gewoon niet doen alsof je iets zelf hebt bedacht.

Waar heb ik gezegd dat ik iets bedacht heb? Ik heb gezegd dat ik een tijdelijke oplossing had. Deze was voor mij van een maat. Excuses als dat steeds moet vermeld worden. Dat had ik nerges zien staan. Van de eerste heb ik het btw wl aangegeven. Dat hij dat van ergens anders haalt, kan ik niet weten. En los daarvan zie ik niet in waarom ik hier iets zou posten waarvan ik zelf al weet dat het gewoon op internet staat. Dat tweede had ik gewoon kunnen weglaten, maar ik zet het hier toch. Om te tonen dat ik, dacht ik, al een oplossing had.

@jhnbk: Bedankt. Dan hou ik het daar gewoon op, want ben niet echt een techneut ;).
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#7

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 14 maart 2011 - 21:08

Waar heb ik gezegd dat ik iets bedacht heb?


PS Ik heb wel al een tijdelijke oplossing bedacht, maar wou het graag nog beter ;). Dat is wat ik voorlopig heb:

\newcommand{\superscript}[1]{\ensuremath{^{\textrm{#1}}}}
\newcommand{\subscript}[1]{\ensuremath{_{\textrm{#1}}}}


#8

Drieske

    Drieske


  • >5k berichten
  • 10217 berichten
  • Moderator

Geplaatst op 14 maart 2011 - 21:13

Ja, sorry voor de ongelukkige woordkeus dan. Het was iig nooit mijn intentie om plagiaat te plegen. ALS ik dat al zou willen doen, ga ik dat zeker niet op andere fora in het lang en breed bekend maken. Aangezien LateX code nooit openbaar wordt gemaakt bij het afgeven van een verslag (je moet enkel het pdf afgeven), zou niemand daar ooit achter kunnen komen, tenzij ik het erges anders zet da ik da gebruik. Maar bon, wat ik ook beweer, veel zal dat voor jou niet veranderen.
Zoek je graag naar het meest interessante wetenschapsnieuws? Wij zoeken nog een vrijwilliger voor ons nieuwspostteam.

#9

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 14 maart 2011 - 22:16

Bon. Dit gezegd zijnde houden we de discussie on topic graag!
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures