🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.dtp.tex
14 messages
14 total messages Started by AMX Mon, 12 Dec 2011 17:53
Późne rozwijanie definicji
#17109
Author: AMX
Date: Mon, 12 Dec 2011 17:53
29 lines
1592 bytes
Problem jest taki: chcę zdefiniować komendę altabstractname,
która powinno być rozwijane w zależności od języka dokumentu do
Streszczenie bądź Abstract.

W tej chwili jest to zrobione w oparciu o to, że pakiet polski
definiuje polecenie \polish, czyli:

\ifx\polish\@undefined
\newcommand{\altabstractname}{Streszczenie}
\else
\newcommand{\altabstractname}{Abstract}
\fi

Generalnie to działa, ale tylko wtedy jeśli plik z którego
wczytuję powyższe jest ładowany po pakiecie polski. 

Chciałbym to zrobić tak, aby nie było takiej zależności. Jak to
osiągnąć?

Będę dźwięczny za pomoc....

Problem streszczał

   AMX


-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17110
Author: Jarosław Sokołowski
Date: Mon, 12 Dec 2011 18:04
30 lines
1806 bytes
Pan AMX napisał:

> Problem jest taki: chcę zdefiniować komendę altabstractname,
> która powinno być rozwijane w zależności od języka dokumentu do
> Streszczenie bądź Abstract.
>
> W tej chwili jest to zrobione w oparciu o to, że pakiet polski
> definiuje polecenie \polish, czyli:
>
> \ifx\polish\@undefined
> \newcommand{\altabstractname}{Streszczenie}
> \else
> \newcommand{\altabstractname}{Abstract}
> \fi
>
> Generalnie to działa, ale tylko wtedy jeśli plik z którego
> wczytuję powyższe jest ładowany po pakiecie polski. 
>
> Chciałbym to zrobić tak, aby nie było takiej zależności. Jak to
> osiągnąć?
>
> Będę dźwięczny za pomoc....

A zmienna \language, ta której podstawowym przeznaczeniem jest wybór
właściwych wzorców przenoszenia wyrazów? Dla języka angielskiego
(amerykańskiego) ma ona wartość zero, a dla polskiego ma wetość
dodatnią (choć nie zawsze taką samą). To powinno wystarczyć.

-- 
Jarek
Re: Późne rozwijanie definicji
#17111
Author: AMX
Date: Mon, 12 Dec 2011 18:34
31 lines
2007 bytes
On Mon, 12 Dec 2011 18:04:18 +0000 (UTC), 
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:

>> Problem jest taki: chcę zdefiniować komendę altabstractname,
>> która powinno być rozwijane w zależności od języka dokumentu do
>> Streszczenie bądź Abstract.
>>
>> Generalnie to działa, ale tylko wtedy jeśli plik z którego
>> wczytuję powyższe jest ładowany po pakiecie polski. 
>>
>
> A zmienna \language, ta której podstawowym przeznaczeniem jest wybór
> właściwych wzorców przenoszenia wyrazów? Dla języka angielskiego
> (amerykańskiego) ma ona wartość zero, a dla polskiego ma wetość
> dodatnią (choć nie zawsze taką samą). To powinno wystarczyć.

To może jest bardziej uniwersalne niż korzystanie z \polish,
tylko nie rozwiązuje podstawowego problemu o który pytam. 

Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
_późniejsza_ zmiana wartości \language lub \polish skutkowały
właściwym rozwinięciem \altabstractname.

Rozwijał się

   AMX


-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17112
Author: Jarosław Sokołowski
Date: Mon, 12 Dec 2011 20:23
29 lines
2011 bytes
Pan AMX napisał:

>>> Problem jest taki: chcę zdefiniować komendę altabstractname,
>>> która powinno być rozwijane w zależności od języka dokumentu do
>>> Streszczenie bądź Abstract.
>>>
>>> Generalnie to działa, ale tylko wtedy jeśli plik z którego
>>> wczytuję powyższe jest ładowany po pakiecie polski. 
>>>
>>
>> A zmienna \language, ta której podstawowym przeznaczeniem jest wybór
>> właściwych wzorców przenoszenia wyrazów? Dla języka angielskiego
>> (amerykańskiego) ma ona wartość zero, a dla polskiego ma wetość
>> dodatnią (choć nie zawsze taką samą). To powinno wystarczyć.
>
> To może jest bardziej uniwersalne niż korzystanie z \polish,
> tylko nie rozwiązuje podstawowego problemu o który pytam. 
>
> Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
> _późniejsza_ zmiana wartości \language lub \polish skutkowały
> właściwym rozwinięciem \altabstractname.

No to trzeba język badać dopiero w trakcie rozwijania definicji.
Coś w rodzaju:

\def\altabstractname{\ifx\language0 ... \else ... \fi}

-- 
Jarek
Re: Późne rozwijanie definicji
#17113
Author: AMX
Date: Mon, 12 Dec 2011 20:42
30 lines
1913 bytes
On Mon, 12 Dec 2011 20:23:52 +0000 (UTC), 
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:
>
>>>> Generalnie to działa, ale tylko wtedy jeśli plik z którego
>>>> wczytuję powyższe jest ładowany po pakiecie polski. 
>>>>
>>>
>> Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
>> _późniejsza_ zmiana wartości \language lub \polish skutkowały
>> właściwym rozwinięciem \altabstractname.
>
> No to trzeba język badać dopiero w trakcie rozwijania definicji.
> Coś w rodzaju:
>
> \def\altabstractname{\ifx\language0 ... \else ... \fi}
>

Problem jest nieco szerszy. Potrzebuję w ten sposób
zdefiniować nie tylko \altabstractname ale również parę innych
komend. Więc chciałbym ominąć dla każdej \ifx tylko zrobić to w
jednym warunku. Czy da się to jakoś krótko i elegancko?


Poszerzał

   AMX

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17114
Author: Jarosław Sokołowski
Date: Mon, 12 Dec 2011 22:26
31 lines
2111 bytes
Pan AMX napisał:

>>>>> Generalnie to działa, ale tylko wtedy jeśli plik z którego
>>>>> wczytuję powyższe jest ładowany po pakiecie polski. 
>>>>>
>>>>
>>> Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
>>> _późniejsza_ zmiana wartości \language lub \polish skutkowały
>>> właściwym rozwinięciem \altabstractname.
>>
>> No to trzeba język badać dopiero w trakcie rozwijania definicji.
>> Coś w rodzaju:
>>
>> \def\altabstractname{\ifx\language0 ... \else ... \fi}
>
> Problem jest nieco szerszy. Potrzebuję w ten sposób
> zdefiniować nie tylko \altabstractname ale również parę innych
> komend. Więc chciałbym ominąć dla każdej \ifx tylko zrobić to w
> jednym warunku. Czy da się to jakoś krótko i elegancko?

Trochę się w tym wszystkim pogubiłem. Niebardzo wyobrażam sobie do
czego to, do jakichś dwujęzycznych manuskryptów? A elegancko, to by
było zdefiniować sobie alternatywne makro do definiowania, używane
mniej więcej tak:

\altnewcommand{\altabstractname}{Abstract}{Streszczenie}

W definicji makra oczywiście \ifx by było.

-- 
Jarek
Re: Późne rozwijanie definicji
#17115
Author: AMX
Date: Tue, 13 Dec 2011 06:41
45 lines
2586 bytes
On Mon, 12 Dec 2011 22:26:05 +0000 (UTC), 
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:

>>>> Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
>>>> _późniejsza_ zmiana wartości \language lub \polish skutkowały
>>>> właściwym rozwinięciem \altabstractname.
>>>
>>> No to trzeba język badać dopiero w trakcie rozwijania definicji.
>>> Coś w rodzaju:
>>>
>>> \def\altabstractname{\ifx\language0 ... \else ... \fi}
>>
>> Problem jest nieco szerszy. Potrzebuję w ten sposób
>> zdefiniować nie tylko \altabstractname ale również parę innych
>> komend. Więc chciałbym ominąć dla każdej \ifx tylko zrobić to w
>> jednym warunku. Czy da się to jakoś krótko i elegancko?
>
> Trochę się w tym wszystkim pogubiłem. Niebardzo wyobrażam sobie do
> czego to, do jakichś dwujęzycznych manuskryptów? 

Artykuł ,,dwujęzyczny''. Streszczenie zarowno po polsku jak i po
angielsku. Podpisy pod rysunkami, tabelami etc. w dwu wersjach.
No i teraz jeśli artykuł jest po polsku, to _najpierw_ streszczenie
a potem abstract, jeśli po angielsku to najpierw abstract a potem
streszczenie, i t.d.

> A elegancko, to by
> było zdefiniować sobie alternatywne makro do definiowania, używane
> mniej więcej tak:
>
> \altnewcommand{\altabstractname}{Abstract}{Streszczenie}
>
> W definicji makra oczywiście \ifx by było.
>

A tego to nie rozumiem (ale bladym świtem to ja niewiele
rozumiem)

Streszczał się 

   AMX

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17116
Author: Jarosław Sokołowski
Date: Tue, 13 Dec 2011 08:38
74 lines
4202 bytes
Pan AMX napisał:

>>>>> Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
>>>>> _późniejsza_ zmiana wartości \language lub \polish skutkowały
>>>>> właściwym rozwinięciem \altabstractname.
>>>>
>>>> No to trzeba język badać dopiero w trakcie rozwijania definicji.
>>>> Coś w rodzaju:
>>>>
>>>> \def\altabstractname{\ifx\language0 ... \else ... \fi}
>>>
>>> Problem jest nieco szerszy. Potrzebuję w ten sposób
>>> zdefiniować nie tylko \altabstractname ale również parę innych
>>> komend. Więc chciałbym ominąć dla każdej \ifx tylko zrobić to w
>>> jednym warunku. Czy da się to jakoś krótko i elegancko?
>>
>> Trochę się w tym wszystkim pogubiłem. Niebardzo wyobrażam sobie do
>> czego to, do jakichś dwujęzycznych manuskryptów? 
>
> Artykuł ,,dwujęzyczny''. Streszczenie zarowno po polsku jak i po
> angielsku. Podpisy pod rysunkami, tabelami etc. w dwu wersjach.
> No i teraz jeśli artykuł jest po polsku, to _najpierw_ streszczenie
> a potem abstract, jeśli po angielsku to najpierw abstract a potem
> streszczenie, i t.d.

Czyli nad tym, co najpierw a co potem, ma panować człowiek -- autor
czy redaktor. On też wie, czy artykuł jest po polsku czy angielsku
i na podstawie tej wiedzy ustala kolejność streszczenia i abstraktu.
Dobrze zrozumiałem?

Jeśli tak, to zabraliśmy się do tego, jak to mówią, od dupy strony.
Ja bym przy pisaniu czuł sie dobrze, gdybym miał dwa makra w rodzaju
\anstract i \streszczenie. I one poza zrobieniem nagłówków i podobnch
czynnościami, powinny również nadawać zmiennej \language właściwą
wartość.

>> A elegancko, to by było zdefiniować sobie alternatywne makro do
>> definiowania, używane mniej więcej tak:
>>
>> \altnewcommand{\altabstractname}{Abstract}{Streszczenie}
>>
>> W definicji makra oczywiście \ifx by było.
>
> A tego to nie rozumiem (ale bladym świtem to ja niewiele rozumiem)

LaTeX ma makro \newcomand służące do definiowania innych makr,
korzystające rzecz jasna z plainowego "\def". Jako pierwszy argument
podaje się definiowaną nazwę, a jako drugi -- rozwinięcie. Jeśli mamy
do zdefiniowania wiele makr, które mają dwa efektywne rozwinięcia,
zależące od zmiennej "\language", to dla wygody i przejrzystości
dobrze jest to robić takim makrem jak wyżej, gdzie jako dwa osobne
argumenty podane zostaną dwa efektywne rozwinięcia. A w środku będzie
znane już "\ifx\language0 ##2 \else ##3 \fi".

Znowu, gdybym ja to miał robić, to bym chciał mieć dwujęzyczne makra
do podpisywania rysunków i tabel. Coś w rodzaju:

\bicaption
{Cross section of Carlina acaulis stem}
{Przekrój przez łodygę Carlina acaulis}

Tutaj kolejność języków dobrze mieć z góry ustaloną, na przykład najpierw
angielski, potem polski. Wtedy ten sam rysunek z podpisem może być włączony
do artykułu polskiego albo angielskiego. Kolejność napisów "na wyjściu"
uzależniamy od globalnej (dla artykułu) zmiennej określającej użyty język
podstawowy.

Jarek

-- 
Jak dobrze wstać
Skoro świt
Jutrzenki blask
Duszkiem pić
Re: Późne rozwijanie definicji
#17117
Author: AMX
Date: Wed, 14 Dec 2011 20:13
74 lines
3906 bytes
On Tue, 13 Dec 2011 08:38:24 +0000 (UTC), 
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:


>>>>>> Muszę zdefiniować \altabstractname w taki sposób aby (ewentualna)
>>>>>> _późniejsza_ zmiana wartości \language lub \polish skutkowały
>>>>>> właściwym rozwinięciem \altabstractname.
>>>>>
>>>>> No to trzeba język badać dopiero w trakcie rozwijania definicji.
>>>>> Coś w rodzaju:
>>>>>
>>>>> \def\altabstractname{\ifx\language0 ... \else ... \fi}
>>>>
>>>> Problem jest nieco szerszy. Potrzebuję w ten sposób
>>>> zdefiniować nie tylko \altabstractname ale również parę innych
>>>> komend. Więc chciałbym ominąć dla każdej \ifx tylko zrobić to w
>>>> jednym warunku. Czy da się to jakoś krótko i elegancko?

Jak na razie zmajsterkowałem coś takiego:

%\def\language{0}
language=\language
\newcommand\choice[2]{\if\language0 #1 \else #2 \fi}
\newcommand\alaname{\choice{ala}{as}}

\alaname

To działa, ale okazuje się, że latex nie definiuje \language. 
Zadziałałoby gdyby oprzeć się na czymś co jest na pewno
ustawiane. Tylko doszedłem do wniosku, że nie do końca jest to
to, o co mi chodzi. Bo to prowadzi do drugiej definicji
\newcommand\altalaname{\choice{as}{ala}}


> Jeśli mamy do zdefiniowania wiele makr, które mają dwa
> efektywne rozwinięcia, zależące od zmiennej "\language", to dla
> wygody i przejrzystości dobrze jest to robić takim makrem jak
> wyżej, gdzie jako dwa osobne argumenty podane zostaną dwa
> efektywne rozwinięcia. A w środku będzie znane już
> "\ifx\language0 ##2 \else ##3 \fi".

BTW. Dlaczego podwójny #?

> Znowu, gdybym ja to miał robić, to bym chciał mieć dwujęzyczne makra
> do podpisywania rysunków i tabel. Coś w rodzaju:
>
> \bicaption
> {Cross section of Carlina acaulis stem}
> {Przekrój przez łodygę Carlina acaulis}
>
> Tutaj kolejność języków dobrze mieć z góry ustaloną, na przykład najpierw
> angielski, potem polski. Wtedy ten sam rysunek z podpisem może być włączony
> do artykułu polskiego albo angielskiego. Kolejność napisów "na wyjściu"
> uzależniamy od globalnej (dla artykułu) zmiennej określającej użyty język
> podstawowy.
>
> Jarek
>

Zacznijmy od początku. To ma być styl, który modyfikuje
standardowy article. Mają go używać inni, nie tylko ja, więc do
maksimum należy unikać nowych komend i zupełnie nowej składni.
Dla mnie \bicaption jest logiczne ale dla kogoś niekoniecznie.
Autor wie w jakim języku pisze, więc wie czy najpierw jest
abstract czy streszczenie. Latex będzie wiedział, jeśli makra
będzie rozwijał późno, kiedy już będzie znany język dokumentu. 

Zwinięty w pętelkę

   AMX

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17118
Author: Jarosław Sokołowski
Date: Wed, 14 Dec 2011 21:53
44 lines
3135 bytes
Pan AMX napisał:

>> "\ifx\language0 ##2 \else ##3 \fi".
>
> BTW. Dlaczego podwójny #?

Stosuje się je w definicjach lokalnych, czyli definicjach w definicjach.
Tu się taki zwierz może (choć nie musi) przydać.

> Zacznijmy od początku. To ma być styl, który modyfikuje
> standardowy article. Mają go używać inni, nie tylko ja, więc do
> maksimum należy unikać nowych komend i zupełnie nowej składni.
> Dla mnie \bicaption jest logiczne ale dla kogoś niekoniecznie.

No i to jest bardzo dobry początek. Trzeba zdefiniować co się chce
osiągnąć, a następnie jak to robić. I w końcu klarownie opisać,
by ktoś, kto ma tego używać pojął ideę w lot. Może być tak: "Styl
ten jest rozszerzeniem stylu article, służy do dodawania wstawek
w języku alternatywnym do tekstu pisanego w języku podstawowym.
Wstawki dodawane są za pomocą poleceń rozpoczynających się prefiksem
"\alt", będących odpowiednikiem poleceń standardowych, np. obok
polecenia \caption zostało udostępnione polecenie \altcaption.
Pełna lista poleceń alternatywnych znajduje się poniżej:...".

> Autor wie w jakim języku pisze, więc wie czy najpierw jest
> abstract czy streszczenie. Latex będzie wiedział, jeśli makra
> będzie rozwijał późno, kiedy już będzie znany język dokumentu. 

No właśnie: autor wie. Ale czy my musimy o wszystkim mówić LaTeXowi
i o wszystko go pytać? Czy wielką niedogodnościa by było użycie dwóch
plików ze stylami: altenglish.sty i altpolish.sty, ktorę dodają do
artykułu język angielski albo polski jako alternatywny? Jeśli napisze
się je porzadnie, czyli tak, że wszystkie napisy są zdefiniowanie na
początku, a dopiero później następują definicje \altwhatever (albo
nawet są inputowanie), to dodanie altfrench.sty albo altgerman.sty
będzie kwestią chwili.

Jarek

-- 
Nie angielskie, nie kreolskie,
Ale nasze, nasze polskie,
Nie austriackie, nie jakieś inne,
Ale rodzinne! Ale rodzinne!
Re: Późne rozwijanie definicji
#17119
Author: AMX
Date: Mon, 19 Dec 2011 21:56
73 lines
4239 bytes
On Wed, 14 Dec 2011 21:53:34 +0000 (UTC), 
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:


>
> No i to jest bardzo dobry początek. Trzeba zdefiniować co się chce
> osiągnąć, a następnie jak to robić. I w końcu klarownie opisać,
> by ktoś, kto ma tego używać pojął ideę w lot. Może być tak: "Styl
> ten jest rozszerzeniem stylu article, 

dokładniej, jest to dostosowanie stylu article do wymogów
(niekoniecznie najrozsądniejszych) wydawnictwa. W związku z tym,
oprócz dwujęzyczności mamy cały szereg elementów nieistotnych z
punktu widzenia rozważanago problemu.


> służy do dodawania wstawek
> w języku alternatywnym do tekstu pisanego w języku podstawowym.
> Wstawki dodawane są za pomocą poleceń rozpoczynających się prefiksem
> "\alt", będących odpowiednikiem poleceń standardowych, np. obok
> polecenia \caption zostało udostępnione polecenie \altcaption.
> Pełna lista poleceń alternatywnych znajduje się poniżej:...".
>
>> Autor wie w jakim języku pisze, więc wie czy najpierw jest
>> abstract czy streszczenie. Latex będzie wiedział, jeśli makra
>> będzie rozwijał późno, kiedy już będzie znany język dokumentu. 
>
> No właśnie: autor wie. Ale czy my musimy o wszystkim mówić LaTeXowi
> i o wszystko go pytać? Czy wielką niedogodnościa by było użycie dwóch
> plików ze stylami: altenglish.sty i altpolish.sty, ktorę dodają do
> artykułu język angielski albo polski jako alternatywny? Jeśli napisze
> się je porzadnie, czyli tak, że wszystkie napisy są zdefiniowanie na
> początku, a dopiero później następują definicje \altwhatever (albo
> nawet są inputowanie), to dodanie altfrench.sty albo altgerman.sty
> będzie kwestią chwili.

Jakkolwiek pierwotny zamiar dotyczył konkretnego wydawnictwa,
więc tworzenie czegoś bardziej uniwersalnego nie wydawało się
sensowen,  to powyższe nasunęło mi myśl, że problem jest jednak
nie taki bardzo jednostkowy. 

Ponieważ jest w tej chwili moda na język angielski, więc
stosunkowo często pojawia się problem podwójnych podpisów i dwu
streszczeń. Wydaje się, że ten problem warto wydzielić jako
osobny od formatowania całości i porządnie rozwiązać. 

Z założenia jednym z języków jest angielski a drugim narodowy.
Jeśli językiem tekstu jest język anagielski to pierwszy podpis
jest po angielsku i tytułuje się Figure/Table etc. Drugi jest w
języku narodowym i tytułuje się odpowiednio. 

Natomiast jeśli językiem tekstu jest język narodowy to kolejność
jest odwrócona.

Pytania są dwa:

1. W zależności od czego przełączać kolejność i jakich
mechanizmów użyć. Przyznaję, że na tym etapie jest to dla mnie
drugorzędne.

2. Jak elegancko przdefiniowywać nazwy. Bo to przedefininowannie
ma być cykliczne.

Kręcił się kółko

   AMX

PS. Przepraszam za duże opóźnienia ale jakoś doba nie chce w
żaden sposób się wydłużyć.

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17120
Author: Jarosław Sokołowski
Date: Mon, 19 Dec 2011 23:01
113 lines
6852 bytes
Pan AMX napisał:

>> No i to jest bardzo dobry początek. Trzeba zdefiniować co się chce
>> osiągnąć, a następnie jak to robić. I w końcu klarownie opisać,
>> by ktoś, kto ma tego używać pojął ideę w lot. Może być tak: "Styl
>> ten jest rozszerzeniem stylu article, 
>
> dokładniej, jest to dostosowanie stylu article do wymogów
> (niekoniecznie najrozsądniejszych) wydawnictwa. W związku z tym,
> oprócz dwujęzyczności mamy cały szereg elementów nieistotnych z
> punktu widzenia rozważanago problemu.

Wielką zaletą TeXa jest to, że Bogu można oddać co boskie, a cesarzowi
cesarskie. Wygląd publikacji może być taki, jak się wydawnictwu wydaje,
że być powinien. A *sposób opisu tekstu* w manuskrypcie -- to już inna
sprawa, która wydawcę nie powinna obchodzić. Te rzeczy trzeba umieć
oddzielić. Jeden dodatek do stylu article zmienia wygląd składu,
a drugi wzbogaca repertuar poleceń logicznego formatowania. Więc
nieistotnośc jest obustronna -- rozważany problem nie może wpływać
na zmiany formatowania czynione na potrzeby wydawcy.

>> służy do dodawania wstawek w języku alternatywnym do tekstu
>> pisanego w języku podstawowym. Wstawki dodawane są za pomocą
>> poleceń rozpoczynających się prefiksem "\alt", będących
>> odpowiednikiem poleceń standardowych, np. obok polecenia
>> \caption zostało udostępnione polecenie \altcaption. Pełna
>> lista poleceń alternatywnych znajduje się  poniżej:...".
>>
>>> Autor wie w jakim języku pisze, więc wie czy najpierw jest
>>> abstract czy streszczenie. Latex będzie wiedział, jeśli makra
>>> będzie rozwijał późno, kiedy już będzie znany język dokumentu. 
>>
>> No właśnie: autor wie. Ale czy my musimy o wszystkim mówić LaTeXowi
>> i o wszystko go pytać? Czy wielką niedogodnościa by było użycie dwóch
>> plików ze stylami: altenglish.sty i altpolish.sty, ktorę dodają do
>> artykułu język angielski albo polski jako alternatywny? Jeśli napisze
>> się je porzadnie, czyli tak, że wszystkie napisy są zdefiniowanie na
>> początku, a dopiero później następują definicje \altwhatever (albo
>> nawet są inputowanie), to dodanie altfrench.sty albo altgerman.sty
>> będzie kwestią chwili.
>
> Jakkolwiek pierwotny zamiar dotyczył konkretnego wydawnictwa,
> więc tworzenie czegoś bardziej uniwersalnego nie wydawało się
> sensowen, to powyższe nasunęło mi myśl, że problem jest jednak
> nie taki bardzo jednostkowy. 
>
> Ponieważ jest w tej chwili moda na język angielski, więc
> stosunkowo często pojawia się problem podwójnych podpisów i dwu
> streszczeń. Wydaje się, że ten problem warto wydzielić jako
> osobny od formatowania całości i porządnie rozwiązać. 

Ja to wymyśliłem naprędce, ale po przemyśleniu pomysł z prefiksem
"\alt" wydaje mi się takim porządnym rozwiązaniem.

> Z założenia jednym z języków jest angielski a drugim narodowy.
> Jeśli językiem tekstu jest język anagielski to pierwszy podpis
> jest po angielsku i tytułuje się Figure/Table etc. Drugi jest w
> języku narodowym i tytułuje się odpowiednio. 
>
> Natomiast jeśli językiem tekstu jest język narodowy to kolejność
> jest odwrócona.

To rozumiem, to dla mnie oczywiste. Dodam jeszcze, że widywałem
teksty, które w podpisach mają więcej niż jeden dodatkowy język.

> Pytania są dwa:
>
> 1. W zależności od czego przełączać kolejność i jakich
> mechanizmów użyć. Przyznaję, że na tym etapie jest to dla mnie
> drugorzędne.

Dla mnie w ogóle jest drugorzędne. Albo trzecio- lub czwartorzędne.
Jeśli nie całkiem bezrzędne. Jeśli do tej pory wyrażałem się niejasno,
to myśl swą powtórzę. Jest język podstawowy, w którym napisany został
artykuł. We wszelkich podpisach i opisach on zawsze występuje jako
pierwszy. Dodatki opisane przez "\alt-makra" zawsze będą na drugim
miejscu. Jeśli załaduję plik altpolish.sty, to w tym drugim, robionym
poleceniem \altsummary wystąpi tytuł "Streszczenie". A jeśl załaduję
altfrench.sty -- "Résumé".

Można iść dalej i sprytniej zdefiniować te alty dopuszczając dodatkowy
parametr. I tak na przykład można w manuskrypcie dodać \altsummary[pl]{...}
oraz \altsummary[fr]{...}, a na wydruku pojawi się tylko treść tego,
które było dopuszczone w preambule przez załadowanie altcośtam.sty
(jeśli nie chcemy drukować dodatków, ładujemy altnull.sty).

> 2. Jak elegancko przdefiniowywać nazwy. Bo to przedefininowannie
> ma być cykliczne.

Nie rozumiem o jaką cykliczność tu chodzi. Elegancką robotą to trzeba
będzie się wykazać, by \altcaption przykleiło się do rysunku czy
innej tabeli i poddało się LaTeXowym manipulacjom przy ustawianiu
'floats' na wydruku. Same napisy, to ja bym w tych makrach wywoływał
rozwijając polecenia w rodzaju \@ltcaptionname. A te na początku
pliku definiuje się jako \def\@ltcaptionname{Streszczenie} albo
\def\@ltcaptionname{Résumé}.

> Kręcił się kółko
>
>    AMX
>
> PS. Przepraszam za duże opóźnienia ale jakoś doba nie chce w żaden
> sposób się wydłużyć.

E tam, takie gadanie. W paleozoiku doba trwała 23 godziny. No i proszę,
jak nam się do tej pory poprawiło! A to jeszcze nie koniec, wydłuża się
cały czas. Zatem opóźnienia są wskazane, czas działa na naszą korzyć.
Im dłużej się będzie z robota zwlekać, tym więcej będzie później czasu,
gdy wszystko trzeba będzie w dwa dni odwalić. Ja sobie zawsze to tak
tłumaczę. I dobrze na tym wychodzę.

-- 
Jarek
Re: Późne rozwijanie definicji
#17121
Author: AMX
Date: Wed, 21 Dec 2011 13:53
23 lines
1770 bytes
On Mon, 19 Dec 2011 23:01:47 +0000 (UTC), 
Jarosław Sokołowski <jaros@lasek.waw.pl> wrote:

>> 2. Jak elegancko przdefiniowywać nazwy. Bo to przedefininowannie
>> ma być cykliczne.
>
> Nie rozumiem o jaką cykliczność tu chodzi.

\if\lang0
\def\abstractname{Abstract}
\def\altabstractname{Streszczenie}
\else
\def\abstractname{Streszczenie}
\def\altabstractname{Abstract}
\fi

To samo dotyczy pozostałych elementów.

   AMX

-- 
adres w rot13
Nyrxfnaqre Znghfmnx r-znk@b2.cy
Re: Późne rozwijanie definicji
#17122
Author: Jarosław Sokołowski
Date: Wed, 21 Dec 2011 15:13
62 lines
3079 bytes
Pan AMX napisał:

>>> 2. Jak elegancko przdefiniowywać nazwy. Bo to przedefininowannie
>>> ma być cykliczne.
>>
>> Nie rozumiem o jaką cykliczność tu chodzi.
>
> \if\lang0
> \def\abstractname{Abstract}
> \def\altabstractname{Streszczenie}
> \else
> \def\abstractname{Streszczenie}
> \def\altabstractname{Abstract}
> \fi

W praktyce powinno wystarczyć tylko tyle:

\if\lang0
\def\altabstractname{Streszczenie}
\else
\def\altabstractname{Abstract}
\fi

Zakładam, że "\abstractname" było znane LaTeXowi wcześniej, a teraz
musimy zdefiniować tylko "\altabstractname". To, czy "\abstractname"
ma rozwinięcie "Abstract" czy "Streszczenie" zależy od tego, czy jest
to goły LaTeX, czy z zaaplikowanym plikim polonizacyjnym.

> To samo dotyczy pozostałych elementów.

Te pozostałe elementy elegancko można opędzić tym samym \if-em:

\if\lang0
\def\altabstractname{Streszczenie}
\def\altwhatevername{Cokolwiek}
\else
\def\altabstractname{Abstract}
\def\altwhatevername{Whatever}
\fi

Albo inaczej, idąc w kierunku wcześniej przeze mnie sugerowanym:

\if\lang0
\input englishaltnames.sty
\else
\input polishaltnames.sty
\fi

I tu jest ten moment, w którym trzeba zdecydować, czy ten \if jest
w ogóle do czegoś potrzebny. Bo przecież wiadomo, że jak się pisze
po polsku (z dołączonym "polish.sty" czy co tam się do tego używa),
to trzeba dodać w preambule "englishaltnames.sty". A jak po angielsku,
to "polishaltnames.sty".

Można też kombinować w ten sposób, że pakiet co go teraz klecimy
będzie podczytywał w jakiś sprytny sposób polskie nazwy z pliku
polonizacyjnego, a przy polonizacji zapisywał na boku angielskie
oryginały. Potem można tymi nazwami (cyklicznie) żonglować. Tylko
czy warto?

-- 
Jarek
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