Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 27. 2. 2019 22:01:23

ZuzanaV
Člen
Registrace: 27. 2. 2019
Příspěvků: 1

Definování klávesových zkratek pro psaní speciálních znaků

Dobrý den,
je možné vytvořit si klávesové zkratky pro psaní některých speciálních znaků podobně jako je to možné ve wordu?
Často píši česko-francouzské dokumenty, a protože mě nebaví přepínat mezi dvěma rozloženími klávesnice nebo vkládat všechny speciální znaky neustálým klikáním nebo si pamatovat různé číselné kódy, tak jsem si ve wordu nastavila zkratky pro psaní těchto znaků, např.:
ALT + C pro ç
ALT + A pro à
ALT + E pro è
CTRL + ALT + A  pro â
CTRL + ALT + A  pro ê
atd.
Jde to nějak nadefinovat i v open office?
Děkuji.

Offline

#2 28. 2. 2019 07:24:41

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Definování klávesových zkratek pro psaní speciálních znaků

Nevím jestli to lze udělat ve Wordu přímo, ale v OpenOffice (tedy buď Libre Office, nebo Apache Open Office) je nutné vytvořit makro které se následně volá přiřazenou klávesovou zkratkou. To není problém, protože jednoduché makro lze nahrát záznamníkem. Jedná se o uživatelskou znalost - nikoliv programátorskou, ale vyžaduje to určité znalosti.


     Existují jiné cesty k vyvolání potřebných znaků tak jak uvádíte - nastavit si francouzskou klávesnici, nebo si najít znak pod levým Alt + číslo. Má to problém v orientaci. Přes to když už volíte své vlastní zkratky tak jde o duplicitní proces k těm standardním. Jde jen o to, že si své vlastní zkratky lépe pamatujete.


     Navrhuji 2 možnosti na principu makra. Jen tak pro orientaci jsem nahrál makro pro vkládání japonského "jenu" :

sub JaponskyJen
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Symbols"
args1(0).Value = "¥"
args1(1).Name = "FontName"
args1(1).Value = "Liberation Serif"
dispatcher.executeDispatch(document, ".uno:InsertSymbol", "", 0, args1())

rem ----------------------------------------------------------------------
rem dispatcher.executeDispatch(document, ".uno:InsertSymbol", "", 0, Array())

end sub

     Makro lze použít tak že se zkopíruje a přepíšou se 3 proměnné.
1. Název Makra, 2. vlastní znak a 3. font znaku
> Název makra > tak aby se dala navolit klávesová zkratka (viz poznámka)
> args1(0).Value = "¥" > podoba znaku
> args1(1).Value = "Liberation Serif" > font
     Problém může být s fontem který nemusí obsahovat potřebný znak. V této podobě například vloží font "Liberation Serif" klidně mezi zbytek textu který může být například Arial. Vypadá to ošklivě, ale většinou se to dá dodatečně přeformátovat na Arial.


     Přes to bych doporučoval jiný systém místo volání jednotlivých zkratek - tak jak požadujete. Jedná se o možnost napsat český zástupný znak, ten vysvítit (znak vybrán) a stisknout jedinou stejnou klávesovou zkratkou. Je možné také zautomatizovat rozpoznání fontu, takže by neměl být žádný problém.
     Je potřebné pouze uvést relace všech zástupných znaků například :
C = ç
A = à
E = è
AA = â
EE = ê


POZNÁMKA :
     Názvy maker nejsou podstatné, ale měly by vystihovat účel tak aby byla orientace při vlastním přiřazování klávesové zkratky. Názvy musí být v kuse a nemohou mít diakritiku. Nevím zda by mohla být použita v názvech francouzština, ale domnívám se že v některých případech ano. To se musí otestovat.
     Dále uvést zda to bude v rámci celého LibreOffice (ApacheOpenOffice), nebo jen v rámci Writer. Podle toho vytvořím knihovnu kterou si buď nainstalujete ručně, respektive pomocí importu knihovny nebo pomocí "Správce rozšíření". Následně si přiřadíte klávesovou zkratku podle svého uvážení.
     Ten přepis francouzských znaků může fungovat i pro ostatní moduly - tedy zejména Calc, nebo Impres, Draw a podobně. Je to spíš na Vás co se Vám víc líbí.
     Nahrát makra můžete sama, ale mohu udělat vzor na několik způsobů. Nevýhody jsou v tom, že když se aktualizuje systém - většinou se ztratí knihovna a to i v případě že se jedná o rozšíření. Když se to stane tak ji znovu naimportujete.

Editoval neutr (28. 2. 2019 07:34:49)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 28. 2. 2019 14:52:28

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 80

Re: Definování klávesových zkratek pro psaní speciálních znaků

Popíši to podrobněji.

Těmi makry to lze i bez toho konkrétního fontu, čistě vložit daný znak:

sub vlozitZnak1 'název makra
	dim document as object
	dim dispatcher as object
	document=ThisComponent.CurrentController.Frame
	dispatcher=createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name="Symbols"
	args1(0).Value="ç" 'který znak vložit
	dispatcher.executeDispatch(document, ".uno:InsertSymbol", "", 0, args1())
end sub

Toto zkopírovat do Nástroje/ Makra/ Správce maker/ LibreOffice Basic -> v levém sloupci vyberete Moje makra/ Standard/ a třeba Module1 a dáte tlačítko Upravit, otevře to editor Basicu a tam zkopírujete ten kousek kódu. Pro další znak musíte u kousku kódu přejmenovat akorát název, tedy např. vlozitZnak2, vlozitZnak3 atd. a do uvozovek v řádku args(1).Value="ç" dát ten jiný konkrétní vkládaný znak. Vypadalo by to třeba takto:

sub vlozitZnak2 'jiný název makra
	dim document as object
	dim dispatcher as object
	document=ThisComponent.CurrentController.Frame
	dispatcher=createUnoService("com.sun.star.frame.DispatchHelper")
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Name="Symbols"
	args1(0).Value="à" 'který jiný znak vložit
	dispatcher.executeDispatch(document, ".uno:InsertSymbol", "", 0, args1())
end sub

Klávesové zkratky se definují v Nástroje/ Přizpůsobit/ Klávesnice -> vyberete danou klávesovou zkratku a z levého dolního sloupce vyberete: Makra LibreOffice/ Moje makra/ Standard/ Module1 a v prostředním sloupci zvolíte např. vlozitZnak1 a kliknete na tlačítko Změnit, tím se k dané klávesové zkratce přiřadí ono makro. Pozor,   zkontrolujte si, zda se to skutečně změnilo, občas mi to nějak blblo když tam byla nějaká klávesová zkratka již definovaná, to jsem myslím musel ji napřed Smazat a teprve poté dát Změnit, anebo Změnit udělat 2x. Dokonce se dá kliknout na tlačítko Uložit a uložit si někam na disk soubor s daými klávesovými zkratkami, takže při případné přeinstalaci systému pak stačí tento soubor načíst a není třeba definovat zkratky znova.
Já tento způsob používám pro arabštinu, u níž je ta perlička, že na arabské klávesnici ani nejsou všechny potřebné arabské znaky (chybí 2, tzv. dýkový alif a wasla, přičemž wasla má ještě dvě formy a to spojení/nespojení s předešlým znakem) a buď se to musí šulit dle nespisovné arabštiny nebo právě vkládat přes speciální znaky :-). Jestli má francouzská klávesnice všechny francouzské znaky, tak je alespoň to výhoda :-).


Všeobecně se takto dá vytvořit i obsáhlejší makro přes Nástroje/ Makra/ Zaznamenat makro a takto vytvořenému makru pak lze opět přiřadit nějakou klávesovou zkratku.


No a druhá možnost kterou vám nabízí neutr přes makro jež by nahrazovalo zástupné znaky, by měla jít nadefinovat i přes automatické opravy: Nástroje/ Automatické opravy/ Nastavení automatických oprav/ Nahradit. Přes ty automatické opravy byste nemusela ty zástupné znaky označovat ani mačkat klávesovou zkratku pro vyvolání transformačního makra.


Co se týká OpenOffice tak to makro pro vkládání jednoho znaku zřejmě bude stejné a definování klávesových zkratek asi obdobné, zrovna v tak "jednoduché" věci asi nebude rozdíl.

Editoval kamlan (28. 2. 2019 16:55:58)

Offline

#4 28. 2. 2019 16:35:02

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Definování klávesových zkratek pro psaní speciálních znaků

pro kamlan

kamlan napsal(a)

No a druhá možnost kterou vám nabízí neutr přes makro jež by nahrazovalo zástupné znaky, by měla jít nadefinovat i přes automatické opravy: Nástroje/ Automatické opravy/ Nastavení automatických oprav/ Nahradit. Přes ty automatické opravy byste nemusela ty zástupné znaky označovat ani mačkat klávesovou zkratku pro vyvolání transformačního makra.

     Tento postup bych nedoporučoval. Autorka by si musela pamatovat nepoužívané znaky jako zástupné. (Je jich sice z 256-ti dost ale pak už si může pamatovat i čísla k levému altu - vzpoměňme že klasická klávesnice QWERTY mé 104 kláves a ty méně používané se musí přepínat. I tak některé znaky potřebují další 'druhý' systém přepnutí). Když použije běžné znaky tak se náhrada provede i v něchtěných případech.
     Automatické opravy by se musely postavit na celá slova. Myslím že by bylo vhodné automatické dokončování (automatický text) které by navrhlo alternativu pro slova které se odlišují pouze jedním či dvěma znaky od českých. V takovém případě už může přepínat z CS na FR klávesnici.
     Má to ale nevýhodu automatické opravy umožňují omezený počet oprav - bylo to 1000 výrazů ale myslím že nyní je to už trochu víc - někde četl jako požadavek nebo hotovou úpravu. Další věc je že je to stejná databáze pro Calc kde se dají nastavit některé opravy vzorců ap.


     Zabýval jsem se slovníky a tak vím že fránina je zdaleka nejobtížnější na překlady mezi jazyky v rámci Evropy. Samozřejmě na arabštinu nemá, ale "svobodné slovníky" s ní tvrdě zápolí.

Editoval neutr (28. 2. 2019 16:43:56)


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 28. 2. 2019 18:05:26

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 80

Re: Definování klávesových zkratek pro psaní speciálních znaků

To mi nedošlo že automatické opravy vlastně fungují na celá slova. Koukal jsem na francouzská písmena
https://cs.wikipedia.org/wiki/Francouzština
a napočítal jsem tuším 15 odlišných písmen oproti češtině. Na české klávesnici nakonec nejdou napsat jen 2 "ligatury" æ œ :-).


¨ ležatou dvojtečku cs klávesnice má; stříška ^ jde s pravým Altem tedy AltGr+3 (resp. AltGr+š neb jde o českou klávesnici, nemačkají se čísla na numerické klávesnici); a opačná čárka ` jde s AltGr+7 (AltGr+ý), tudíž â à ê ë è î ï ô û ü ù ÿ napsat jdou a na cs klávesnici jsem je takto napsal -> nejdříve diakritická klávesa a pak písmeno jako když se nejprve mačká čárka nebo háček a pak písmeno. Fachá i pro velká písmena  À Ê Ë È Î Ï Ô Û Ü Ù Ÿ jež jsem taky napsal s využitím klávesy ¨ nebo AltGr+3 nebo AltGr+7.
Pro ç lze použít AltGr+´ (AltGr+diakritická čárka -> dává to písmenu ten spodní ocásek; na EN klávesnici je diakritická čárka ´ rovnítkem = )
(Já už například roky vůbec nepoužívám anglickou klávesnici, neboť všechny en znaky jedu z český přes AltGr).


Pro æ œ by tedy mohly být 2 uvedená makra a 2 klávesové zkratky, a pro velká Æ Œ další 2, akorát navíc se Shiftem. Takže když se člověk naučí využít AltGr, tak mu na francouzštinu zřejmě mohou stačit jen 4 makra vkládajících písmena třeba přes Alt nebo Shift+Alt :-).

Editoval kamlan (2. 4. 2019 08:46:11)

Offline

#6 28. 2. 2019 18:48:16

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,930

Re: Definování klávesových zkratek pro psaní speciálních znaků

Jestli je jich pouze 15 - 20 tak bychom vystačili s PopUp okénkem - stisk klávesy - vyskočí PopUp s nabídkou a vybere se vybraný znak. Může to být jako Public makro, nebo funkce v "moje makra standard" a bude to fungovat pod celým LO/AOO.
     Uměl bych i klasický dialog s vertikálním posuvníkem ale když to není hned vše vidět tak je lepší princip zástupných (libovolných) znaků které jsou přístupné z CS klávesnice + Klávesová zkratka. Zástupné znaky mohou být samozřejmě dvojice a1=â, a2=à, e1=ê, e2=ë, e3=è,....., podobně A1=Â, A2=À, E1=Ê, E2=Ë, E3=È,.....


     Jde stejně asi o to, co bude autorce vyhovovat. Je možné také udělat vysloveně slovníkový typ makra včetně významů, větných určení a podobně. Je to trošku složitější ale za cenu časové prodlevy lze udělat i poměrně mnoho výrazů. 600 tisíc (EN svobodný slovník) už je obrovská porce, ale rozdělením na soubory prvého znaku, nebo prvých dvou je to dostatečné - do vteřiny na staré šunce. Už jsem to někde psal problém je v tom, že dnes je to do jisté míry přežitek pokud jsme připojení k internetu a navíc lze nainstalovat opravu pravopisu (pro Writer) pro vedlejší řeč. Je možné mít otevřený sešit kam písneme větu (výraz) a hned dáme přeložit + opravit.
     Je to srovnatelné - jen jiné operace. Zase to má své problémy ale dělat se s tím dá. Záleží spíš na lingvistické úrovni autora. Já takové věci mydlím přes rekurzivní překlady - dokolečka. Dlouho to nevydržím ale drobnější stručné věci si dovolím pomocí Google pustit. :-(


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#7 28. 2. 2019 19:46:52

kamlan
Člen
Registrace: 15. 9. 2016
Příspěvků: 80

Re: Definování klávesových zkratek pro psaní speciálních znaků

Pomocí okénka - byť nevyskakovacího - to umí doplněk TypoJTB
http://macrojtb.hys.cz/typoJTB.html
v daném odkazu ukázka jako Vložit speciální znak, v Menu TypoJTB jako Vložit zkratku. Stačí si tam nandat ty potřebné francouzské znaky.

Pro ta (ne)vyskakovací okénka je někdy trochu nevýhoda, že člověk musí přechňapnout na myš, to klávesové zkratky jsou mnohdy rychlejší i pohodlnější.

Editoval kamlan (28. 2. 2019 19:48:25)

Offline

Zápatí