Kapitälchen in caption / Überschrift

Schriftbild, Absätze und Auflistungen einstellen


eduardinho
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mi 22. Aug 2012, 13:06

Kapitälchen in caption / Überschrift

Beitrag von eduardinho »

Hallo,

ich möchte/muss Kapitälchen für ein Wort in einer Bildunterschrift verwenden. Dafür würde ich eigentlich ja den Befehl \textsc{Name} verwenden.
Die Schriftart, die vorgegeben ist, Frontpage besitzt keine Kapitälchen. Ich gehe davon aus, dass das der Grund dafür ist.
Word faked in diesem Fall die Kapitälchen, was immerhin besser als nichts ist.

Hat hier jemand vielleicht eine Lösung wie ich denn nun Kapitälchen in eine Bildunterschrift oder in die Überschrift bekomme? Vielleicht auch mit einem Trick, dass ich für das eine Wort die Schriftart ändere oder ähnliches?

Danke für eure Hilfe.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Falsche Kapitälchen sollte man ja eigentlich meiden. Nun klingt es so, als hättest Du die widersprüchliche Vorgabe, eine Schrift ohne Kapitälchen zu verwenden, und dennoch letztere anzuwenden. In diesem Fall könnte evtl sowas gehen:
\documentclass{article}
\usepackage{relsize}

\newcommand\fakesc[1]{\relsize{-2}{\uppercase{#1}}}

\begin{document}

Ein Text und falsche \fakesc{kapitaelchen}

\end{document}
oder ohne extra Paket (von hier):
\documentclass{article}
\usepackage[T1]{fontenc}

\makeatletter
\newlength\fake@f
\newlength\fake@c
\newcommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\fontdimen8\fake@name}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
\makeatother


\begin{document}

Ein Text und falsche K\fakesc{apitaelchen}

\end{document}
Sieht in beiden Fällen natürlich eher besch…eiden aus :(
Grüße
Clemens
Paketauthor

eduardinho
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mi 22. Aug 2012, 13:06

Beitrag von eduardinho »

Hallo cgnieder,

vielen Dank für deine Hilfe. Wie du richtig sagst, ist jetzt nicht gerade eine optimale lösung, aber bringt mich auf jeden Fall weiter.

Interessant ist, dass bei der zweiten Variante ein Fehler angezeigt wird, es aber trotzdem ausgegeben wird.

Fehler: Undefined control sequence ...er Zyklenanzahl N.}

Weißt du wo da der Fehler liegen könnte?

Außerdem habe ich den Eindruck, dass die Buchstaben bei der ersten Variante etwas zu groß und bei der zweiten etwas zu klein waren. Kann man die Buchstabengröße dabei irgendwie variieren?

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

eduardinho hat geschrieben:Interessant ist, dass bei der zweiten Variante ein Fehler angezeigt wird, es aber trotzdem ausgegeben wird.

Fehler: Undefined control sequence ...er Zyklenanzahl N.}

Weißt du wo da der Fehler liegen könnte?
Bei meinem Code? Oder beim testen des Codes mit einem eigenen Beispiel? Falls letzteres dann poste doch ein Minimalbeispiel, das den Fehler reproduziert. (Hast Du »fontenc« geladen?)
eduardinho hat geschrieben:Außerdem habe ich den Eindruck, dass die Buchstaben bei der ersten Variante etwas zu groß und bei der zweiten etwas zu klein waren. Kann man die Buchstabengröße dabei irgendwie variieren?
Das wird u.a. von der verwendeten Schrift abhängen. Die erste Variante hat nur die Möglichkeit, ganzahlige Werte bei
\relsize{-2}
zu empfangen, ist da also recht unflexibel.

Bei der zweiten Variante kannst Du sowas versuchen:
\makeatletter
\newlength\fake@f
\newlength\fake@c
\newcommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\dimexpr\fontdimen8\fake@name*1.25\relax}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
\makeatother
Das mag aber nicht unbedingt funktionieren. Evtl müsste man noch eine weitere Variante verwenden. Allerdings kenne ich mich mit den Innereien von Fonts auch nicht wirklich aus.

Grüße
Clemens
Paketauthor

eduardinho
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mi 22. Aug 2012, 13:06

Beitrag von eduardinho »

und zwar geht es darum, wenn ich das in meinem Beispiel versuche.
Hier der dazugehörige Code
\documentclass[accentcolor=tud1b,12pt,colorbacktitle,index=totoc,bibliography=totoc]{tudreport}

\usepackage[T1]{fontenc}														% Zeichenbelegung der Schrift

\makeatletter
\newlength\fake@f
\newlength\fake@c
\newcommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\fontdimen9\fake@name}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
\makeatother 

\begin{document}										% Beginn Dokument
\begin{figure}[htb]
	\begin{center}
		\includegraphics[width=0.60\textwidth]{Bilder/schulte1}
		\caption{W\fakesc{ohler} Diagramm}

	\end{center}
\end{figure}
\end{document}
Grüße[/code]

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Ohne die zugehörige Klasse kann ich das nicht testen…
Clemens
Paketauthor

eduardinho
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mi 22. Aug 2012, 13:06

Beitrag von eduardinho »

hier sind alles dateien drin, die zur klasse tudreport gehören
Dateianhänge
tuddesign.rar
(75.86 KiB) 320-mal heruntergeladen

rais
Forum-Guru
Forum-Guru
Beiträge: 413
Registriert: Di 21. Sep 2010, 00:37

Beitrag von rais »

Hallo,
eduardinho hat geschrieben:und zwar geht es darum, wenn ich das in meinem Beispiel versuche.
das Argument zu \caption ist beweglich, \fakesc ist fragil definiert.
Das kannst Du auf verschiedene Weisen angehen:
Durch Verwenden des optionellen Arguments bei \caption, also
\caption[Wohler Diagramm]{W\fakesc{ohler} Diagramm}
dadurch wird nur das optionale Argument zum beweglichen Teil,
durch Voranstellen von \protect:
\caption{W\protect\fakesc{ohler} Diagramm}
oder Du machst diesen \fakesc robust:
\DeclareRobustCommand\fakesc[1]{%
  \begingroup%
  \xdef\fake@name{\csname\curr@fontshape/\f@size\endcsname}%
  \fontsize{\fontdimen9\fake@name}{\baselineskip}\selectfont%
  \uppercase{#1}%
  \endgroup%
}
MfG
Rainer
One of the joys of travel is visiting new towns and meeting new people---G.Khan (Robert Asprin, Another Fine Myth)

eduardinho
Forum-Anfänger
Forum-Anfänger
Beiträge: 25
Registriert: Mi 22. Aug 2012, 13:06

Beitrag von eduardinho »

Perfekt, jetzt funktioniert es.

Vielen Dank euch beiden!

dknof
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: So 29. Jul 2012, 13:30

Beitrag von dknof »

Hallo,

noch zwei Hinweise von mir:

1) Korrektur zur ersten Lösung:
\documentclass{article}
\usepackage{relsize}
\newcommand\fakesc[1]{\relsize{-2}{\uppercase{#1}}}
\begin{document}
Ein Text und falsche \fakesc{kapitaelchen}
\end{document}
Der Befehl müsste wie folgt lauten:
\newcommand\fakesc[1]{{\relsize{-2}\uppercase{#1}}}
\relsize ändert wie \bfseries die Größe ab der Stelle, der Befehl hat auch nur ein Argument. Damit hinterher wieder die normale Schriftgröße verwendet wird, muss der gesamte Inhalt des Befehls in eine Gruppe.

2) Das Aussehen ist wegen zwei Eigenschaften schlehter als mit \textsc: Die Dicke der Buchstaben passt nicht mehr zueinander. Währen bei \textsc{Test} die Buchstaben gleich dick sind wie bei \textnorma{Test}, sind sie bei \fakesc{Test} dünner. Außerdem fehlt ein Kerning, wenn Du z. B. \textsc{Vater} nachmachen möchtest. Da das V groß ist, musst Du V\fakesc{ater} verwenden, dann ist aber das Kerning zwischen V und a weg.

Gruß
Diether

Antworten