🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.dtp.tex
7 messages
7 total messages Started by =?UTF-8?B?Q2V6YX Fri, 14 Mar 2014 12:12
LaTeX wyrazenie regularne do zamiany znaków specjalnych
#17000
Author: =?UTF-8?B?Q2V6YX
Date: Fri, 14 Mar 2014 12:12
20 lines
516 bytes
Potrzeguję w tekscie zamienić znaki specjalne typu '\ & # %'
na odpowiedniki możliwe do wydruku. To chyba typowy problem, może ktoś
ma gotowe wyrazenie regularne?

Na razie próbuję tak (perl):

$opis_problemu =~ s/\\/\$\\backslash\$/g ;
$opis_problemu =~ s/([\&\$\%\#\_\{\}])/\\$1/g ;
$opis_problemu =~ s/~/\\~{}/g ;

Było by OK gdyby nie ten '$' dodawany w 1 linijce, w drugiej jest
zamieniany i lipa ):

A może jest inna metoda na wydruk '\' niż $\backslas$ ?



--
Cezary Grądys
czarekgr@wa.onet.pl
Re: LaTeX wyrazenie regularne do zamiany znaków specjalnych
#17001
Author: =?UTF-8?Q?Jaros
Date: Fri, 14 Mar 2014 13:10
53 lines
1546 bytes
Pan Cezary Gr±dys potrzebuje w tekscie zamieniæ znaki specjalne
typu '\ & # %' na odpowiedniki mo¿liwe do wydruku:

> To chyba typowy problem, mo¿e kto¶ ma gotowe wyrazenie regularne?
>
> Na razie próbujê tak (perl):
>
> $opis_problemu =~ s/\\/\$\\backslash\$/g ;
> $opis_problemu =~ s/([\&\$\%\#\_\{\}])/\\$1/g ;
> $opis_problemu =~ s/~/\\~{}/g ;
>
> By³o by OK gdyby nie ten '$' dodawany w 1 linijce, w drugiej jest
> zamieniany i lipa ):
>
> A mo¿e jest inna metoda na wydruk '\' ni¿ $\backslas$ ?

Zacznijmy od tego, ¿e nie s± to 'znaki specjalne' jakiego¶ jednego typu,
tylko znaki, które nale¿± do ró¿nych *kategorii*. I tak # ma kategoriê 6
(parameter character), znak % kategoriê 14 (comment character), znak &
kategoriê 4 (alignment tab), a znak \ kategoriê 0, czyli 'active", co
oznacza, ¿e tworzy on sekwencje b±d¼ znaki steruj±ce.

Z tymi trzema pierwszymi poradziæ sobie mo¿na ³atwo nadaj±c im kategoriê
11 (other), do której nale¿± na przyk³ad znaki interpunkcyjne. Piszemy:

\catcode`\&
\catcode`\#
\catcode`\%

i od tej pory nie mo¿emy przy ich pomocy tworzyæ tabel, makr i komentarzy,
ale za to drukuj± siê takie, jakie s±.

Mo¿na te¿ zaryzykowaæ polecenie

\catcode`\\

co sprawi, ¿e niczego ju¿ wiêcej nie zdefiniujemy. Czasem nie trzeba
wiêcej definicji, i to siê sprawdza. Je¶li nie, to mo¿na wcze¶niej
nadaæ zerow± kategoriê innemu znakowi, o którym wiemy, ¿e nie bêdzie
nigdy drukowany. Na przyk³ad:

\catcode`\|=0

sprawi, ¿e bêdzie mo¿na (i trzeba) pisaæ:

|def|foo{bar}

zamiast:

\def\foo{bar}

--
Jarek
Re: LaTeX wyrazenie regularne do zamiany =?ISO-8859-2?Q?znaków?= =?ISO-8859-2?Q?_specjalnych?
#17002
Author: =?ISO-8859-2?Q?C
Date: Fri, 14 Mar 2014 17:06
30 lines
1161 bytes
W dniu 14.03.2014 13:10, Jaros³aw Soko³owski pisze:

> Zacznijmy od tego, ¿e nie s± to 'znaki specjalne' jakiego¶ jednego typu,
> tylko znaki, które nale¿± do ró¿nych *kategorii*. I tak # ma kategoriê 6
> (parameter character), znak % kategoriê 14 (comment character), znak &
> kategoriê 4 (alignment tab), a znak \ kategoriê 0, czyli 'active", co
> oznacza, ¿e tworzy on sekwencje b±d¼ znaki steruj±ce.
>
> Z tymi trzema pierwszymi poradziæ sobie mo¿na ³atwo nadaj±c im kategoriê
> 11 (other), do której nale¿± na przyk³ad znaki interpunkcyjne. Piszemy:
>
> \catcode`\&
> \catcode`\#
> \catcode`\%
>
> i od tej pory nie mo¿emy przy ich pomocy tworzyæ tabel, makr i komentarzy,
> ale za to drukuj± siê takie, jakie s±.
>

Dziêki serdeczne, to siê mo¿e przyda, ale tu akurat mam to w tabeli.
Wpad³em na taki pomys³, ¿e zamieniê ten $ na tabulacjê i nie bedzie
przeszkadza³, a potem z powrotem tabulacjê na $. Trochê to nieelegancko,
ale powinno zadzia³aæ. Tabulacji raczej w tym tekscie nie bêdzie, bo
jest to czytane z pliku csv gdzie pola rozdzielone s± tabulacj±. Wiêc
jakby co problem wyst±pi wcze¶niej.


--
Cezary Gr±dys
czarekgr@wa.onet.pl
Re: LaTeX wyrazenie regularne do zamiany znaków specjalnych
#17003
Author: =?UTF-8?Q?Jaros
Date: Fri, 14 Mar 2014 18:27
45 lines
2168 bytes
Pan Cezary Gr±dys napisa³:

>> Zacznijmy od tego, ¿e nie s± to 'znaki specjalne' jakiego¶ jednego typu,
>> tylko znaki, które nale¿± do ró¿nych *kategorii*. I tak # ma kategoriê 6
>> (parameter character), znak % kategoriê 14 (comment character), znak &
>> kategoriê 4 (alignment tab), a znak \ kategoriê 0, czyli 'active", co
>> oznacza, ¿e tworzy on sekwencje b±d¼ znaki steruj±ce.
>>
>> Z tymi trzema pierwszymi poradziæ sobie mo¿na ³atwo nadaj±c im kategoriê
>> 11 (other), do której nale¿± na przyk³ad znaki interpunkcyjne. Piszemy:
>>
>> \catcode`\&
>> \catcode`\#
>> \catcode`\%
>>
>> i od tej pory nie mo¿emy przy ich pomocy tworzyæ tabel, makr i komentarzy,
>> ale za to drukuj± siê takie, jakie s±.
>
> Dziêki serdeczne, to siê mo¿e przyda, ale tu akurat mam to w tabeli.
> Wpad³em na taki pomys³, ¿e zamieniê ten $ na tabulacjê i nie bedzie
> przeszkadza³, a potem z powrotem tabulacjê na $. Trochê to nieelegancko,
> ale powinno zadzia³aæ. Tabulacji raczej w tym tekscie nie bêdzie, bo
> jest to czytane z pliku csv gdzie pola rozdzielone s± tabulacj±. Wiêc
> jakby co problem wyst±pi wcze¶niej.

Rolê tabulatora niekoniecznie musi pe³niæ ampersand (&), kategoriê 4
mo¿na nadaæ równie¿ innemu znakowi, na przyk³ad "|" i ³ykaæ tabele,
w których kolumny oddzielane s± oldskulowo znakiem kreski pionowej.
TeX nie jest systemem, w którym znaki alfabetu wej¶ciowego pe³ni±
z góry okre¶lon± funkcjê. To mo¿na zmieniaæ, mo¿na okre¶liæ co jest,
a co nie jest liter±, co jest tabulatorem, co zaznacza komentarz itd.
Jak komu¶ ¿al znaków ASCII na te specjalne zastosowania, mo¿e u¿yæ
znaków z drugiej po³ówki tabeli o¶miobitowyej i na przyk³ad komentarze
oznaczaæ przez §, a uwalniaj±c % jako normalnie drukowany znak.

Teraz dopiero zauwa¿y³em, ¿e w opisywanej sytuacji czytanie inputu
ze znakami o niedrukowalnych kategoriach, to tylko czê¶æ problemu.
Zdaje siê, ¿e problemem jest równie¿ drukowanie tych znaków.
Napisanie $\backslash$, gdy chcemy po prostu uzyskaæ "\", to chyba
najgorsze rozwi±zanie. Lepiej napisaæ \char92. W przypadku u¿ycia
$$, otrzymamy znak z zupe³nie innego fontu, przeznaczonego do sk³adu
wyra¿eñ matematycznych.

--
Jarek
Re: LaTeX wyrazenie regularne do zamiany =?ISO-8859-2?Q?znaków?= =?ISO-8859-2?Q?_specjalnych?
#17004
Author: =?ISO-8859-2?Q?C
Date: Tue, 18 Mar 2014 15:22
38 lines
1861 bytes
W dniu 14.03.2014 18:27, Jaros³aw Soko³owski pisze:

> Rolê tabulatora niekoniecznie musi pe³niæ ampersand (&), kategoriê 4
> mo¿na nadaæ równie¿ innemu znakowi, na przyk³ad "|" i ³ykaæ tabele,
> w których kolumny oddzielane s± oldskulowo znakiem kreski pionowej.
> TeX nie jest systemem, w którym znaki alfabetu wej¶ciowego pe³ni±
> z góry okre¶lon± funkcjê. To mo¿na zmieniaæ, mo¿na okre¶liæ co jest,
> a co nie jest liter±, co jest tabulatorem, co zaznacza komentarz itd.
> Jak komu¶ ¿al znaków ASCII na te specjalne zastosowania, mo¿e u¿yæ
> znaków z drugiej po³ówki tabeli o¶miobitowyej i na przyk³ad komentarze
> oznaczaæ przez §, a uwalniaj±c % jako normalnie drukowany znak.
>
> Teraz dopiero zauwa¿y³em, ¿e w opisywanej sytuacji czytanie inputu
> ze znakami o niedrukowalnych kategoriach, to tylko czê¶æ problemu.
> Zdaje siê, ¿e problemem jest równie¿ drukowanie tych znaków.
> Napisanie $\backslash$, gdy chcemy po prostu uzyskaæ "\", to chyba
> najgorsze rozwi±zanie. Lepiej napisaæ \char92. W przypadku u¿ycia
> $$, otrzymamy znak z zupe³nie innego fontu, przeznaczonego do sk³adu
> wyra¿eñ matematycznych.
>


Prawdziwym problemem jest to, ¿e jest to wydruk raportu z bazy danych i
tak naprawdê nie wiem co tam mo¿e zostaæ wpisane przez u¿ytkownika.
Zak³adam, ¿e tabulacji nie bêdzie, bo te dane wpisuja przez przegl±darkê
i tam tabulacja powoduje tylko przeskok do innego pola.
Pomys³ z wpisywaniem  \char92 jest chyba tym co potrzebujê.
A na marginesie, oryginalne wydruki z tego systemu nie zawieraj±
praktycznie polskich znaków (zamiast ± jest spacja, tylko ³ ko¶lawo
wychodzi), wiêc to ¿e co¶ bedzie trochê nie tak± czcionk± to naprawdê
ma³y problem. To bedzie po³ozone w szafie i le¿eæ pewnie przez 10 lat,
albo i d³u¿ej, nikt tego czyta³ nie bêdzie. Mo¿e w razie kontroli.
Jeszcze raz dziêki.


--
Cezary Gr±dys
czarekgr@wa.onet.pl
Re: LaTeX wyrazenie regularne do zamiany znaków specjalnych
#17005
Author: =?UTF-8?Q?Jaros
Date: Tue, 18 Mar 2014 17:47
36 lines
1781 bytes
Pan Cezary Gr±dys napisa³:

> Prawdziwym problemem jest to, ¿e jest to wydruk raportu z bazy danych i
> tak naprawdê nie wiem co tam mo¿e zostaæ wpisane przez u¿ytkownika.
> Zak³adam, ¿e tabulacji nie bêdzie, bo te dane wpisuja przez przegl±darkê
> i tam tabulacja powoduje tylko przeskok do innego pola.

Trochê siê gubiê w tym, kiedy o jak± tabulacjê chodzi. Czy o TeXow± (&),
czy o znaki tabulacji ASCII (\t). Znaki tabulacji TeX zazwyczaj traktuje
jak spacje, choæ i to mo¿na zmieniæ.

> Pomys³ z wpisywaniem  \char92 jest chyba tym co potrzebujê.

Ale ja bym to zrobi³ inaczej. Jak siê tworzy system, który ma drukowaæ
co¶ z baz danych, to najlepiej zrobiæ tak, ¿e wszystkie znaki stamt±d
pochodz±ce kopiowane s± na wyj¶cie jeden-do-jednego. Czyli nale¿± do
kategorii 11 (letter) lub 12 (other). Nale¿y zacz±æ od sporz±dzenia
listy legalnych znaków i filtrowaæ na wyj¶ciu bazy wszystko, co do tej
listy nie nale¿y. Czasem tylko mo¿e okazaæ siê konieczny dodatkowy znak
'active', ale nie musi to wcale byæ standardowy "\", zerow± kategoriê
mo¿na nadaæ czemu¶ uznanemu za 'nielegalne' -- np. jaki¶ ÷ lub ostatecznie
litera spoza alfabetu polskiego.

> A na marginesie, oryginalne wydruki z tego systemu nie zawieraj±
> praktycznie polskich znaków (zamiast ± jest spacja, tylko ³ ko¶lawo
> wychodzi), wiêc to ¿e co¶ bedzie trochê nie tak± czcionk± to naprawdê
> ma³y problem. To bedzie po³ozone w szafie i le¿eæ pewnie przez 10 lat,
> albo i d³u¿ej, nikt tego czyta³ nie bêdzie. Mo¿e w razie kontroli.

Pewnie u¿yty jest domy¶lny font CMR, w którym akurat ogonków nie ma.
Lepiej za³adowaæ co¶ innego -- najlepiej font obecny w drukarkach
i w acrobet readerze (Times, Helvetica). Poza tym LaTeX w takich
automatach przewa¿nie jest zbêdny -- wystarczy plain TeX.

--
Jarek
Re: LaTeX wyrazenie regularne do zamiany znaków specjalnych
#17006
Author: Przyjazny
Date: Thu, 20 Mar 2014 22:20
42 lines
2311 bytes
On 2014-03-18 14:22, Cezary Gr±dys <czarekgr@wa.onet.pl> wrote:
> W dniu 14.03.2014 18:27, Jaros³aw Soko³owski pisze:
>
>> Rolê tabulatora niekoniecznie musi pe³niæ ampersand (&), kategoriê 4
>> mo¿na nadaæ równie¿ innemu znakowi, na przyk³ad "|" i ³ykaæ tabele,
>> w których kolumny oddzielane s± oldskulowo znakiem kreski pionowej.
>> TeX nie jest systemem, w którym znaki alfabetu wej¶ciowego pe³ni±
>> z góry okre¶lon± funkcjê. To mo¿na zmieniaæ, mo¿na okre¶liæ co jest,
>> a co nie jest liter±, co jest tabulatorem, co zaznacza komentarz itd.
>> Jak komu¶ ¿al znaków ASCII na te specjalne zastosowania, mo¿e u¿yæ
>> znaków z drugiej po³ówki tabeli o¶miobitowyej i na przyk³ad komentarze
>> oznaczaæ przez §, a uwalniaj±c % jako normalnie drukowany znak.
>>
>> Teraz dopiero zauwa¿y³em, ¿e w opisywanej sytuacji czytanie inputu
>> ze znakami o niedrukowalnych kategoriach, to tylko czê¶æ problemu.
>> Zdaje siê, ¿e problemem jest równie¿ drukowanie tych znaków.
>> Napisanie $\backslash$, gdy chcemy po prostu uzyskaæ "\", to chyba
>> najgorsze rozwi±zanie. Lepiej napisaæ \char92. W przypadku u¿ycia
>> $$, otrzymamy znak z zupe³nie innego fontu, przeznaczonego do sk³adu
>> wyra¿eñ matematycznych.
>>
>
>
> Prawdziwym problemem jest to, ¿e jest to wydruk raportu z bazy danych i
> tak naprawdê nie wiem co tam mo¿e zostaæ wpisane przez u¿ytkownika.
> Zak³adam, ¿e tabulacji nie bêdzie, bo te dane wpisuja przez przegl±darkê
> i tam tabulacja powoduje tylko przeskok do innego pola.
> Pomys³ z wpisywaniem  \char92 jest chyba tym co potrzebujê.
> A na marginesie, oryginalne wydruki z tego systemu nie zawieraj±
> praktycznie polskich znaków (zamiast ± jest spacja, tylko ³ ko¶lawo
> wychodzi), wiêc to ¿e co¶ bedzie trochê nie tak± czcionk± to naprawdê
> ma³y problem. To bedzie po³ozone w szafie i le¿eæ pewnie przez 10 lat,
> albo i d³u¿ej, nikt tego czyta³ nie bêdzie. Mo¿e w razie kontroli.
> Jeszcze raz dziêki.

W³a¶ciwie czy s± jakie¶ przeciwwskazania do u¿ycia \verbatim z
pakietu verbatim? Je¿eli potrzeba, ¿eby to by³o zwyk³ym krojem to mo¿na
przedefiniowaæ \verbatim@font. Dzia³a w polach typu "p", w zwyk³ych da
siê niestety tylko skorzystaæ z \verb.

Ewentualnie je¿eli to nie jest mo¿liwe, to w dokumentacji tego¿ pakietu
jest do¶æ dok³adnie napisane co jak jest zrobione i dlaczego.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads