Auszeichnung des ersten Wortes nach Abschnittsbeginn

Redefinition von Makros, Definition eigener Befehle sowie neuer Umgebungen


die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Auszeichnung des ersten Wortes nach Abschnittsbeginn

Beitrag von die_nase »

Hallo zusammen,

ich habe eine Frage bezüglich der Auszeichnung des ersten Wortes nach dem Anfang eines neuen Abschnittes. Wie lässt sich allgemein einstellen, dass dieses Wort eine bestimmte Auszeichnung erhält, also kursiv oder fett?

Da ich leider nicht einmal einen Ansatz für eine mögliche Lösung habe, poste ich hier nur ein knappes MB, in der Hoffnung, dass ihr mir ein paar Tipps/Hinweise geben könnt.

Aussehen sollte es am Ende in etwa so:
\documentclass{scrartcl}
\usepackage{blindtext}

\begin{document}

\section{Abschnitt}
{\bfseries Lorem} ipsum dolor sit \ldots

\section{Abschnitt}
{\bfseries Lorem} ipsum dolor sit \ldots

\section{Abschnitt}
{\bfseries Lorem} ipsum dolor sit \ldots

\end{document}
Müsste man da \section umdefinieren? Generell würde es mich interessieren, ob und wie Latex Satzanfänge, die ersten Wörter nach Absätzen (also nach \par) und nach neuen Abschnitten erkennt.

MB:
\documentclass{scrartcl}
\usepackage{blindtext}

\begin{document}

\section{Abschnitt}
\blindtext

\section{Abschnitt}
\blindtext

\section{Abschnitt}
\blindtext

\end{document}
Viele Grüße

Besserwisser

Beitrag von Besserwisser »

Zuverlässig das erste Wort eines Absatzes zu erkennen, dürfte mit TeX eine aufwändige Geschichte werden. Erste Idee wäre natürlich, mit einem delimited argument zu arbeiten und als Begrenzung ein Leerzeichen zu verwenden. Aber, wie ist das dann, wenn der Absatz beispielsweise mit \automark{sec:Ein Problem} beginnt oder mit »Manchmal, wenn« oder tatsächlich mit einem Satz in Anführungszeichen oder mit Mathematik oder mit …

die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Beitrag von die_nase »

Hallo Besserwisser,

danke für Deine Antwort. Ich habe mich eben versucht ein bisschen zu informieren; es scheint doch ein recht kompliziertes Problem zu sein (..weshalb ich dafür wahrscheinlich auch keine Lösung in anderen Foren gefunden habe). Dann bleibt wohl nur eine händische Lösung ala Copy & Paste.

..oder hat jemand vielleicht noch jemand eine andere Idee?

Viele Grüße

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Beitrag von u_fischer »

Nun, sowas geht
\documentclass[a4paper,12pt]{article}
\makeatletter
\def\grabword#1 {\textbf{[#1]} }

\def\@afterheading{%
  \@nobreaktrue
  \everypar{%
    \if@nobreak
      \@nobreakfalse
      \clubpenalty \@M
      \if@afterindent \else
        {\setbox\z@\lastbox}%
      \fi
      \expandafter\@firstoftwo
    \else
      \clubpenalty \@clubpenalty
      \everypar{}%
      \expandafter\@secondoftwo
    \fi{\grabword}{}}}
\makeatother    
\begin{document}
\section{abc}
blblb blblb 

abc  abc bllb 

abc  abc bllb 
 
\end{document}
Aber ich würde es vorsichtig benutzen. Diese Tricks können schnell explodieren, wenn das erste "Wort" irgendwie seltsam ist.

die_nase
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 50
Registriert: So 3. Mai 2015, 21:05

Beitrag von die_nase »

Hallo Ulrike,

wow! Vielen Dank, Deine Lösung funktioniert super. Ich habe bis jetzt nur ein wenig experimentiert und bei normalem Text klappt es gut (Mathe geht auch, benötige ich jedoch nicht).

Um welche Art der "Programmierung" handelt es sich bei deiner Lösung? - Ist das tiefergehendes Tex? Hast Du evtl. noch ein, zwei Literaturtipps oder ein Stichwort zu diesem Thema?

Antworten