PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Veranschaulichung des Textsatzes mit Boxen



fantex
20-04-2011, 15:59
Hallo zusammen!

Zur Veranschaulichung, daß TeX den Text aus Boxen zusammensetzt, möchte ich - wie es in einigen Büchern zu (La)TeX zu finden ist - diese Boxen, mit und ohne Glyphen gefüllt, darstellen. Gibt es dafür ein Paket/einen Befehl in LaTeX, das/der dieses übernehmen kann, oder muß ich das selbst bewerkstelligen, z. B. so:


\setlength{\fboxsep}{.0pt}

\fbox{\fbox{T}\fbox{e}\fbox{x}\fbox{t}\fbox{-}\fbox{B}\fbox{e}\fbox{i}\fbox{s}\fbox{p}\fbox{i}\ fbox{e}\fbox{l}}
?

Jens

Sepp99
23-04-2011, 08:20
Meinst Du so etwas:

%http://mrunix.de/forums/showthread.php?t=59656
\listfiles
\documentclass{scrartcl}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\def\boxI#1{{\fboxsep=1pt{\fbox{#1}}}}
\begin{document}
\boxI{T}\boxI{e}\boxI{x}\boxI{-}\boxI{B}\boxI{e}\boxI{i}\boxI{s}\boxI{p}\boxI{i}\ boxI{e}\boxI{l}\boxI{!}
\end{document}
Nähere Erklärungen siehe Link im Code.
Gruß, Sepp.-

rstuby
23-04-2011, 08:49
Na ja, das bringt ja kaum eine Vereinfachung gegenüber fantex' eigener Idee. Man muss immer noch jeden Buchstaben einzeln mit einem Befehl versehen, und kürzer ist er auch nicht.

Stefan_K
23-04-2011, 13:09
Hallo Jens,

hier gibt es ein paar Tipps und Links, auch auf ein Paket hierfür: How can I visualize boxes (http://tex.stackexchange.com/q/2083/213).

Viele Grüße,

Stefan

voss
23-04-2011, 15:15
Zur Veranschaulichung, daß TeX den Text aus Boxen zusammensetzt, möchte ich - wie es in einigen Büchern zu (La)TeX zu finden ist - diese Boxen, mit und ohne Glyphen gefüllt, darstellen. Gibt es dafür ein Paket/einen Befehl in LaTeX, das/der dieses übernehmen kann, oder muß ich das selbst bewerkstelligen, z. B. so:


\setlength{\fboxsep}{.0pt}

\fbox{\fbox{T}\fbox{e}\fbox{x}\fbox{t}\fbox{-}\fbox{B}\fbox{e}\fbox{i}\fbox{s}\fbox{p}\fbox{i}\ fbox{e}\fbox{l}}
?


das kannst du ohne Paket mit ConTeXt machen, was auf deinem System installiert sein sollte:


\starttext
\processisolatedchars{Einige Wörter mit \ConTeXt}\ruledhbox\par
\processisolatedchars{Einige Wörter mit \ConTeXt}\framed
\stoptext


Ausgabe:
http://perce.de/pub/zz.png

Herbert

voss
23-04-2011, 15:19
hier gibt es ein paar Tipps und Links, auch auf ein Paket hierfür: How can I visualize boxes (http://tex.stackexchange.com/q/2083/213).


was denn für ein Paket?

Herbert

fantex
23-04-2011, 17:48
Zuerst einmal vielen Dank für Eure Antworten!

Das, was Herbert Voß als Lösung zeigt, ist genau das, was ich möchte.

Ich denke, da die Beispiele, die ich in Boxen setzen möchte, nicht sehr umfangreich sind, werde ich es bei der Umsetzung mit den \fbox-Befehlen belassen.



ConTeXt ist in meiner MiKTeX-Installation nicht eingebaut und ich habe mich damit auch bisher noch nicht beschäftigt. Ist die Installation bzw. Einbindung von ConTeXt in MiKTeX kompliziert und welches sind die Vorteile von ConTeXt gegen über LaTeX?


Gruß, Jens

voss
23-04-2011, 18:14
ConTeXt ist in meiner MiKTeX-Installation nicht eingebaut und ich habe mich damit auch bisher noch nicht beschäftigt. Ist die Installation bzw. Einbindung von ConTeXt in MiKTeX kompliziert und welches sind die Vorteile von ConTeXt gegen über LaTeX?


nein, einfach im Paketmanager context auswählen, dann obiges Beispiel als "demo.tex" speichern und dann "context demo.tex" laufen lassen, was dann eine "demo.pdf" liefern sollte.

Herbert

fantex
23-04-2011, 19:42
Hallo Herbert,

vielen Dank für Deine Nachricht.

Leider kann bei mir der Befehl "context" nicht ausgeführt werden. In meinem MiKTex sind einige Pakete mit dem Namen "context-..." installiert (siehe angehängte .jpg-Datei). Eine Datei namens context.exe oder context.bat finde ich auch nirgendwo. Wird ConTeXt vielleicht in MiKTeX z. Z. nicht unterstütz?

Frohe Ostern und Gruß

Jens

P.S.: Kannst Du vielleicht einmal in diesen thread reinschauen?
http://www.mrunix.de/forums/showthread.php?t=70944

voss
23-04-2011, 22:38
Leider kann bei mir der Befehl "context" nicht ausgeführt werden. In meinem MiKTex sind einige Pakete mit dem Namen "context-..." installiert (siehe angehängte .jpg-Datei). Eine Datei namens context.exe oder context.bat finde ich auch nirgendwo. Wird ConTeXt vielleicht in MiKTeX z. Z. nicht unterstütz?
ich benutze Linux mit TeXLive, da geht es ohne weitere Installationen.



P.S.: Kannst Du vielleicht einmal in diesen thread reinschauen?
http://www.mrunix.de/forums/showthread.php?t=70944

siehe dortige Antwort.

Herbert

v_neises
24-04-2011, 08:28
Versuche es mal mit texexec demo.tex

fantex
24-04-2011, 09:42
Hallo!

Nein, auch texexec ist in meinem System unbekannt.

Jens

u_fischer
24-04-2011, 10:41
Das Miktexpaket heißt einfach "context". Es funktioniert aber nur mit miktex 2.9.

fantex
24-04-2011, 13:04
Das Miktexpaket heißt einfach "context". Es funktioniert aber nur mit miktex 2.9.

Vielen Dank für den Hinweis. Dann werde ich wohl mal upgraden.

Gruß

Jens

Stefan_K
24-04-2011, 14:42
Hallo Herbert,

was denn für ein Paket?

ConTeXt natürlich, wie dort ein Link mit der Wortwahl verweist und wie Hans Hagen es im verlinkten Text selbst bezeichnet, als Makro-Paket.

Viele Grüße,

Stefan

mechanicus
24-04-2011, 15:53
Hi,

eine Möglichkeit mit LaTeX
\documentclass{article}
\usepackage{calc}
\makeatletter
\newcommand*\myboxsys{}
\def\myboxsys#1{\scanword #1\@nil}
\def\scanword{\afterassignment\@check@end\let\char = }
\def\@check@end{%
\ifx\char\@nil%
\let\next=\relax%
\else%
\begingroup%
\fboxsep=1pt%
\fbox{%
\vline%
\@width 0pt%
\@height \ht\strutbox%
\@depth \dp\strutbox%
\char}%
\endgroup%
\let\next=\scanword%
\fi
\next%
}
\makeatother

\begin{document}
\myboxsys{Hallo}
\end{document}

Gruß
Marco

voss
24-04-2011, 22:09
eine Möglichkeit mit LaTeX


oder die andere Variante:

\documentclass{article}
\makeatletter
\def\myboxsys#1{\begingroup
\fboxsep=0pt\expandafter\scanwords#1 \@nil}
\def\scanwords#1 #2\@nil{%
\scanchars#1\@nil%
\ifx\relax#2\relax\endgroup\else\fbox{\space}\scan words#2\@nil\fi}

\def\scanchars#1#2\@nil{%
\fbox{#1}%
\ifx\relax#2\relax\else\scanchars#2\@nil\fi}
\makeatother

\begin{document}
\myboxsys{Jetzt kommt hier ein ganzer Satz}
\end{document}

Herbert

fantex
25-04-2011, 10:41
Hallo Herbert, hallo Marco,

vielen Dank für Eure Antworten und Eure Mühe.
Herberts Lösung ist genau das, was ich haben möchte. Super!

Habt Ihr Literaturtips zu (La)TeX -- vielleicht mit erklärten Beispielen --, mit deren Hilfe ich lernen kann, solchen Code nachzuvollziehen oder gar selbst zu erstellen?

Gruß

Jens

mechanicus
25-04-2011, 10:59
Herberts Lösung ist genau das, was ich haben möchte. Super!
Bei mir musst du nur \vline rausnehmen :p


\documentclass{article}
\usepackage{calc}
\makeatletter
\newcommand*\myboxsys{}
\def\myboxsys#1{\scanword #1\@nil}
\def\scanword{\afterassignment\@check@end\let\char = }
\def\@check@end{%
\ifx\char\@nil%
\let\next=\relax%
\else%
\begingroup%
\fboxsep=0pt%
\fbox{\char}%
\endgroup%
\let\next=\scanword%
\fi
\next%
}
\makeatother

\begin{document}
\myboxsys{Jetzt kommt hier ein ganzer Satz}
\end{document}

Gruß
Marco

mechanicus
25-04-2011, 11:03
Habt Ihr Literaturtips zu (La)TeX -- vielleicht mit erklärten Beispielen --, mit deren Hilfe ich lernen kann, solchen Code nachzuvollziehen oder gar selbst zu erstellen
Darauf warte ich auch. Ich würde mich freuen, wenn es soetwas gäbe. Natürlich gibt es gewisse Onlineliteratur, die den Code erklärt, aber in meinen Augen nicht benutzerfreundlich.

Gruß
Marco

fantex
25-04-2011, 11:57
Hallo Marco,

Du hast recht; ohne \vline liefert Dein Code ebenfalls das gewünschte Ergebnis (leider funktionieren Umlaute nicht, auch nicht in der Schreibweise "u. Ist aber gar nicht wichtig). Wie schon gesagt, kann ich solchen Code mangels Kenntnissen nicht nachvollziehen.


Darauf warte ich auch. Ich würde mich freuen, wenn es soetwas gäbe. Natürlich gibt es gewisse Onlineliteratur, die den Code erklärt, aber in meinen Augen nicht benutzerfreundlich.

Wo konntest Du denn Deine Kenntnisse erwerben?

Gruß
Jens

mechanicus
25-04-2011, 12:03
Du hast recht; ohne \vline liefert Dein Code ebenfalls das gewünschte Ergebnis (leider funktionieren Umlaute nicht, auch nicht in der Schreibweise "u. Ist aber gar nicht wichtig). Wie schon gesagt, kann ich solchen Code mangels Kenntnissen nicht nachvollziehen.

Das liegt aber nicht am Code. Lade mal inputenc sowie fontenc und dann funktioniert es.



Wo konntest Du denn Deine Kenntnisse erwerben?

Hier und da einige Dokumente lesen -- habe natürlich auch diverse Bücher (Mit Masse die von Herbert :cool: ). Aber im Schwerpunkt sehe ich das Forum. Schwierige Themen werden häufig auch beantwortet und dann gibt es auch noch nette Leute, die den Code erklären, so dass ein Reproduzieren möglich ist.

Irgendwann schaust du auch mal in den Quelltest diverser Pakete und verstehst auch diese.

Gruß
Marco

fantex
25-04-2011, 12:32
Ich habe

\usepackage[T1]{fontenc}
und

\usepackage[utf8x]{inputenc}
in der Präambel stehen. LaTeX gibt eine Fehlermeldung aus. Stelle ich die Inputcodierung z. B. auf Latin1 oder cp1252, gibt es keine Fehlermeldung, die Zeichen werden aber falsch dargestellt (für ein kleines ä bekomme ich ein großes A mit einer Tilde darüber, gefolgt von einem anderen komischen Zeichen).
Im normalen Fließtext werden die Umlaute korrekt gesetzt.
Aber wie gesagt: Ist gar nicht wichtig!

Danke nochmal und Gruß
Jens

Stefan_K
25-04-2011, 13:20
Hallo Jens,


LaTeX gibt eine Fehlermeldung aus.

im Allgemeinen lässt sich mehr sagen, wenn Du eine Fehlermeldung auch hier zitierst. ;)

Viele Grüße,

Stefan

rstuby
25-04-2011, 13:59
Fantex, welche Kodierung hast du im Editor eingestellt? Sie muss mit der bei inputenc übereinstimmen.

voss
25-04-2011, 15:51
Das liegt aber nicht am Code. Lade mal inputenc sowie fontenc und dann funktioniert es.


Da Ü intern umgesetzt wird dürfte es mit unserem Code nicht gehen.
denn die Umlaute sind ja aktive Zeichen. Da müssen wir mehr investieren :-)

Herbert

mechanicus
25-04-2011, 16:30
Da Ü intern umgesetzt wird dürfte es mit unserem Code nicht gehen.
denn die Umlaute sind ja aktive Zeichen. Da müssen wir mehr investieren :-)

oder mit newtoks arbeiten :rolleyes:

mechanicus
25-04-2011, 19:09
Hi,

es geht sogar einfacher. Es gibt ja für fast alles Pakete:

\setcounter{errorcontextlines}{999}
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{soul}
\makeatletter
\DeclareRobustCommand*\myboxsys{%
\def\SOUL@everytoken{\fboxsep0pt\fbox{\the\SOUL@to ken}}%
\def\SOUL@everyspace##1{\fboxsep0pt\fbox\space}%
\SOUL@}
\makeatother
\begin{document}
\myboxsys{Ber"ucksichtige mal Sonderzeichen: "u "o "a "s}

\end{document}

Da soul ebenfalls mit toks arbeitet, ist eine direkte Eingabe von Sonderzeichen nicht möglich.

Gruß
Marco

voss
25-04-2011, 19:53
es geht sogar einfacher. Es gibt ja für fast alles Pakete:
Da soul ebenfalls mit toks arbeitet, ist eine direkte Eingabe von Sonderzeichen nicht möglich.


sehr gut!

soul kann sowieso nicht mit UTF8 umgehen. Es könnte aber sein,
dass es mit latin1 und äöü direkt gehen könnte ...

Herbert

fantex
26-04-2011, 09:27
Hallo!

Fantex, welche Kodierung hast du im Editor eingestellt? Sie muss mit der bei inputenc übereinstimmen.
Ja, ich hatte die Kodierungen übereinstimmend eingestellt.

Mit Marcos letztem Beispiel gehen sogar Umlaute und das scharfe s. Super!
Vielen Dank nochmal an alle Beteiligten!

Gruß
Jens