>> wybierz styl >> es :: ns :: bs

Weblog Tomasza Przechlewskiego [Zdjęcie T. Przechlewskiego] [[Ikona]]


scrum
random image [Photo gallery]
Zestawienie tagów
1-wire | 18b20 | 1wire | 2140 | 3rz | alsamixer | amazon | anniversary | antypis | apache | api | arm | astronomy | asus | atom.xml | awk | aws | balcerowicz | balta | bash | berlin | bibtex | bieszczady | biznes | blogger | blogging | blosxom | borne-sulinowo | breugel | bt747 | canon | cedewu | chello | chown | chujowetaśmy | cmentarz | contour | cron | css | csv | curl | d54250wykh | debian | dejavu | dhcp | dht22 | dia | docbook | dom | ds18b20 | dyndns | dynia | ebay | economy | ekonomia | elka | elm | emacs | emacs23 | english | ess | eu | excel | exif | exiftool | f11 | fc | fc11 | fc15 | fc5 | fc8 | fedora | fedora21 | fenix | ffmpeg | finepix | firefox | flickr | fontforge | fontspec | fonty | fop | foto | france | francja | fripp | fuczki | fuji | fuse | gammu | garmin | gawk | gazwyb | gdańsk | gdynia | geo | georgia | gft | git | github | gmail | gnokii | gnus | google | googlecl | googleearth | googlemaps | gphoto | gphoto2 | gps | gpsbabel | gpsphoto | gpx | gpx-viewer | greasemonkey | gruzja | grzyby | haldaemon | handbrake | historia | history | hitler | holocaust | holokaust | hpmini | humour | iblue747 | ical | iiyama | ikea | imap | inkscape | inne | internet | j10i2 | javascript | jhead | k800i | kajak | kamera | kleinertest | kml | kmobiletools | knuth | kod | kolibki | komorowski | konwersja | krutynia | kuchnia | kurski | latex | latex2rtf | latex3 | lcd | legend | lenny | lesund | lewactwo | liberation | linux | lisp | lisrel | litwa | logika | ltr | lwp | m2wś | mapsource | marvell | math | mathjax | mazury | mbank | mediolan | mencoder | mh17 | michalak | microsoft | monitor | mp4box | mplayer | ms | msc | msw | mtkbabel | museum | muzyka | mymaps | mysql | nanopi | natbib | navin | neo | neopi | netbook | niemcy | niemieckie zbrodnie | nikon | nowazelandia | nuc | nxml | oauth | oauth2 | obituary | okular | olympus | ooffice | ooxml | opera | otf | otftotfm | other | overclocking | panoramio | pdf | pdfpages | pdftex | pdftk | perl | photo | photography | picasa | picasaweb | pim | pine | pit | plotly | pls | plugin | po | politics | polityka | polsat | postęp | powerpoint | prelink | problem | propaganda | pstoedit | putin | python | r | radio | random | raspberry pi | refugees | relaxng | ridley | router | rower | rowery | rpi | rsync | rtf | ruby | rugby | russia | rwc | rwc2007 | rwc2011 | rzym | samba | sem | sheevaplug | sienkiewicz | signature | sks | skype | skytraq | smoleńsk | sqlite | srtm | ssl | statistics | stats | statystyka | stix | suwałki | svg | svn | swornegacie | szwajcaria | terrorism | tex | texgyre | texlive | thunderbird | tomato | tourism | tramp | trang | truetype | ttf | turystyka | tusk | tv | tv5monde | twitter | typetools | ubuntu | uchodźcy | udev | umap | unix | upc | updmap | ups | utf8 | varia | video | vienna | virb edit | vostro | wammu | wdc | wdfs | webcam | webdav | wh2080 | wiedeń | wikicommons | wilno | windows | windows8 | wine | wioślarstwo | word | wordpress | wrt54gl | ws1080 | wtyczka | ww2 | www | wybory | wybory2015 | włochy | xemex | xetex | xft | xhtml | xine | xml | xmllint | xsd | xslt | xvidtune | youtube | yum | zakopane | zakupy | zdf | łeba | świdnica
Pobrania via google: [[Ikona]]
Archiwum
Inne blogi
N. Walsh | Morten H. Frederiksen | B. Clementson | prawo.vagla.pl | F. Hecker | M. Olson | J. Tennison | J. Clark | M. Nottingham | M. Shuttleworth | T. Isakowicz-Zalewski | J. Anglim | José A. Ortega Ruiz Modern Perl
Inne tematyczne
Ashwin Amanna | wiesia.nets.pl | Wojt | rwm.org.pl | DataBlog | Revolutions | Learning R | A. Gelman | C. Nel | J. Vogelgesang | ubl.xml.org/ | J.D. Long |
O stronie
wykorzystywany jest blosxom plus następujące wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musiałem dopasować nieco do swoich potrzeb. Więcej o blosxom jest tutaj
Subskrypcja
RSS 1.0
LaTeX: how to highlight some bibliography entries by adding an asterisk before the entry?

Author-year citation style is assumed.

If a bibliography is prepared manually it is as easy as to precede each entry with say \bibAst command. Example:

\newcommand\bibAst{\leavevmode\hbox to0pt{\hss$^\ast$}}

\harvarditem[Bagozzi and Dholakia]{Bagozzi and
  Dholakia}{2006}{bagozzidholakia06}
\bibAst\textsc{Bagozzi, R.~P.,  {\small and} U.~M. Dholakia}  (2006): ``Open
  Source Software User Communities: A Study Of Participation In {L}inux {U}ser
  {G}roups,'' \emph{Management Science}, 52(7), 1099--1115.

If one insists on using BiBTeX one has to mark records which are to be highlighted. It can be done with an extra field (named highlight in the example below):

@Article{bagozzidholakia06,
  title	= "Open Source Software User Communities: A Study Of
   Participation In {L}inux {U}ser {G}roups",
  author	= "Bagozzi, Richard P. and Dholakia, Utpal M.",
  journal	= j-msci,
  pages		= "1099--1115",
  number	= "7",
  volume	= "52",
  year		= "2006",
  highlight     = "Y"
}

Fields unknown to BiBTeX's particular style are omitted, so highlight cause no harm when processed with standard BiBTeX style.

One need to modify BiBTeX style now. This is a two-step procedure. First one has to add highlight to the body of ENTRY function:

ENTRY
 {
  ...
  highlight
 }

Next one has to modify format.authors function. Exact form of a format.authors function is style-dependent. In case of apalike the code looks like:

%FUNCTION {format.authors}
%{ author empty$
%    { "" }
%    { author format.names }
%  if$
%}
% change to:
FUNCTION {format.authors}
{ author empty$
    { "" }
    { highlight empty$
       { author format.names }
       { "{\bibAst}" author format.names * }
       if$
    }
  if$
}

BTW: the meaning of some BiBTeX expressions are as follows: S1 S2 * denotes S1 S2 strings concatenation; L F1 F2 if$ denotes logical if (execute F1 if L is true otherwise execute F2).

The contents of highlight is irrelevant. Sole existence of highlight denotes that the record is highlighted.

NOTE: the style should be more elaborate if some BiBTeX entries starts with something other than authors names.

url | Tue, 26/03/2013 10:29 | tagi: , ,
Odsyłacze bibliograficzne w schemacie autor-rok

Używam pakietu natbib ograniczając się do poleceń: \citet, \citealt, \citep, \citealp, \citeyearpar oraz \citetext.

Poniższy hak powoduje, że odsyłacze wewnątrz \citet będą odzielone przecinkiem, a wewnątrz \citep -- średnikiem. (,,Standardowy'' natbib stosuje jeden ,,globalny'' znak separującego kolejne odsyłacze.)

\documentclass[a4paper]{article}
\usepackage{polski}
\usepackage[authoryear]{natbib} %%&---
%% http://tex.stackexchange.com/questions/3125/a-comma-separator-for-citet-and-a-semicolon-separator-for-citep-simultaneou
\usepackage{etoolbox}
\makeatletter
\newcommand\bibstyle@comma{\bibpunct(),a,,}
\newcommand\bibstyle@semicolon{\bibpunct();a,,}
\makeatother
\pretocmd\citet{\citestyle{comma}}\relax\relax
\pretocmd\citealt{\citestyle{comma}}\relax\relax
\pretocmd\citep{\citestyle{semicolon}}\relax\relax
\pretocmd\citealp{\citestyle{semicolon}}\relax\relax

\begin{document}
...

Sposoby użycia ilustrują poniższe przykłady:

Przeciętna wariancja wyodrębniona (\emph{average variance extracted}, AVE)
jest definiowana następująco~\citetext{por.~\citealp[s.~612]{HairetAl98};
\citealp{sztemberg-lewandowska2008}; \citealp[s.~1213--1214]{FornellLarcker81}}:

Przeciętna wariancja wyodrębniona (average variance extracted, AVE) jest definiowana następująco (por. Hair i inni, 1998, s. 612; Sztemberg-Lewandowska, 2008; Fornell i Larcker, 1981, s. 1213--1214):

Tendencje przedstawione przez Orlikowski i~Baroudiego potwierdzają inne przeglądy,
por.~\citet{AbareshiMartin2008,RungtusanathamChoiHollingworth2003,NewstedHuffMunro98}
oraz \citet{PinsonneaultKraemer1993}.

Tendencje przedstawione przez Orlikowski i Baroudiego potwierdzają także inne przeglądy, por. Abareshi i Martin (2008), Rungtusanatham i inni (2003), Newsted i inni (1998) oraz Pinsonneault i Kraemer (1993).

Model Akceptacji Technologii [...] i~akceptację systemów informacyjnych w~praktyce 
badawczej informatyki ekonomicznej~\citep{VenkateshEtAl03,VenkateshDavis00}.

Model Akceptacji Technologii (Technology Acceptance Model, TAM) jest najczęściej wykorzystywaną teorią objaśniającą wykorzystanie i akceptację systemów informacyjnych w praktyce badawczej informatyki ekonomicznej (Venkatesh i inni, 2003; Venkatesh i Davis, 2000).

Praktyka badawcza [...] oceniania w~pracach Hensleya~\citeyearpar{Hensley1999}
oraz Malhotry i~Grovera~\citeyearpar{MalhotraGrover1998}, a~w~obszarze
informatyki ekonomicznej w~pracach:
\citet{StraubBoudreauGefen2004,RaiLangWelker2002,BoudreauGefenStraub2001,Straub89}
oraz~\citet{NewstedHuffMunro98,GefenStraub2005} a~także \citet{Segars1997}

Praktyka badawcza ustalania trafności w dziedzinie nauk o zarządzaniu jest z kolei oceniania w pracach Hensleya (1999) oraz Malhotry i Grovera (1998), a w obszarze informatyki ekonomicznej w pracach: Straub i inni (2004), Rai i inni (2002), Boudreau i inni (2001), Straub (1989) oraz Newsted i inni (1998), Gefen i Straub (2005) a także Segars (1997).

url | Sun, 17/07/2011 21:48 | tagi: ,
Manipulowanie plikami bibtexa

Konwencję sobie przyjąłem, że pole tp:keywords zawiera moje słowa kluczowe. Czemu tak? Ano temu, że moja baza bibtexa zawiera wpisy skopiowane z różnych repozytoriów; wpisy te zawierają pole keywords, tyle że nie ma żadnych reguł odnośnie tego co jest zawartością tego pola. Zawartość pola tp:keywords jest (przynajmniej w założeniu) słownikiem ustalonym (controlled vocabulary) pojęć. Podobnie pole tp:comment zawiera mój, krótki opis zawartości pozycji bibliograficznej. W szczególności pola te pomagają posortować/wyciągnąć pozycje bibliograficzne, relewantne z punktu widzenia określonej dziedziny zastosowań. Używam do tego narzędzia bibtool:

bibtool -- 'select {tp:keywords "OSS" }' tph.bib 

Powyższe oznacza: wypisz wszystkie rekordy z pliku tph.bib, które zawierają napis OSS w polu tp:keywords. Napis "OSS" jest traktowany jako wyrażenie regularne (regex 0.12):

bibtool -- 'select {tp:keywords "OSS\|UTAUT" }' tph.bib 

Powyższe oznacza: wypisz wszystkie rekordy z pliku tph.bib, które zawierają napis OSS lub napis UTAUT w polu tp:keywords. Wyrażenie regularne może zawierać inne metaznaki: ., +, *, itd. Jest znak sumy (a lub b) ale nie ma iloczynu (a i b). Jeżeli chcemy wyciągnąć rekordy zawierająca łącznie pewne napisy, to można wykorzystać mechanizm potoku:

bibtool -- 'select {tp:keywords "#Prio" }' tph.bib |\
   bibtool -- 'select {tp:keywords "OSS" }' | \
   bibtool -- 'select {tp:keywords "SEM" }'

Powyższe oznacza: wypisz wszystkie rekordy z pliku tph.bib, które zawierają napisy OSS, SEM oraz #Prio (w dowolnym porządku) w polu tp:keywords. Słowo kluczowe #Prio to moja konwencja na oznaczenie ważnych wpisów. Innymi słowy powyższe oznacza: wypisz ważne pozycje literatury dotyczące (łącznie) OSS i SEM.

Do zamiany plików bibtexa na xhtml używam narzędzia bib2xhtml. Ten pakiet jest niestandardowy -- z tego co pamiętam -- trzeba go ściągnąć i zainstalować samodzielnie...

Moja baza bibtexa zawiera kilkaset wpisów, dotyczących różnych dziedzin i o różnym stopniu ważności (od merytorycznie istotnych do słabych; słabe też trzeba gromadzić--np. jako przykłady). Stąd powyższe pomysły, żeby trochę nad tym wszystkim zapanować...

Modyfikując bib2xhtml, który jest programem napisanym w Perlu, zmarnowałem trochę czasu usiłując dodać konwersję (brakujących) polskich znaków diakrytycznych. Otóż bib2xhtml zakłada iż plik jest kodowany w notacji LaTeXa (7 bitowe ASCII), przy czym nie są zaimplementowane znaki zawierające ogonek. Proste wpisanie:

s/\\k\{a\}/ą/g;

Nie chciało zadziałać. Po bliższym obejrzeniu skryptu się okazało, że każdy wiersz pliku jest wstępnie zamieniany poprzez wykonanie następującego polecenia:

  ## fragment jest wykonywany wew. pętli, `iterującej' po wszystkich wierszach pliku:
   {  local ($c, $l, $z) = (0, 0, ());
   s/([\{\}])/join("","\001",($1 eq "\{" ? $z[$l++]=$c++ : $z[--$l]),$1)/ge; 
   ## ge oznacza, globalnie+extended mode, dzięki czemu powyższe ma charakter pętli
   ## wykonywanej dla każdego znaku { oraz }
   }

W rezultacie każda sekwencja {...} zostanie zamieniona na \nnn{...\nnn}, gdzie \nnn jest znakiem o kodzie nnn. Przykładowo jeżeli wiersz zawiera:

{abc} {def} {ghi} jkl... => \001{abc\001} \002{def\002} \003{ghi\003} jkl...

Dzięki czemu każda para { ... } jest teraz jednoznacznie identyfikowana. Dokładnie nie wiem po co jest taka sztuczka robiona. Ale teraz zamiana przykładowo \k{a}, tj.~polskiego ą w notacji LaTeXa, wymaga zapisu:

s/\\k(\001\d+)\{a\1\}/ą/g;
url | Sat, 19/09/2009 11:18 | tagi: ,
Cytowanie według schematu autor-rok z użyciem Bibtexa i pakietu natbib

Przywołania bibliograficzne to odsyłacze do wykazu literatury [w odróżnieniu od przypisów bibliograficznych, czyli przypisów zawierających podstawowe elementy identyfikujące przywoływany dokument. Przypisy są ,,modne'' w tekstach humanistycznych i prawnych oraz wśród ,,akademickich moherów'' z innych branż]. W LaTeXu standardowym sposobem cytowania jest ,,poprzez numer'', pod którym dana pozycja jest umieszczona w zestawieniu literatury.

W wielu dziedzinach nauk obowiązującym zwyczajem jest oznaczanie przywołań przy pomocy umieszczonego w nawiasach okrągłych lub kwadratowych nazwiska autora/autorów oraz roku wydania, np. (Knuth 1985). Aby przestawić LaTeXa na taki sposób tworzenia przywołań bibliograficznych należy:

\usepackage{natbib}
\usepackage[breaklinks]{hyperref}
\bibliographystyle{papalike} %% spolonizywany style apalika.bst
\begin{document}  %% albo standardowy \bibliographystyle{plainnat} 

Bez breaklinks LaTeX nie złamie wiersza w obrębie przywołania, co w przypadku dużej ich liczby będzie skutkować dużą liczbą sterczących na prawym marginesie fragmentów nieprzeniesionego prawidłowo tekstu.

Polecenie \bibliographystyle{papalike} określa styl bibliograficzny. Tu jest problem, bo większość stylów nie jest spolonizowana. Wyżej podany papalike, to ,,na szybko'' spolszczony plik apalike (Dostępny tutaj). Teraz należy uruchomić poniższy wiersz (dla pewności dwa razy:-):

pdflatex plik.tex && bibtex plik 

Z rozpędu dodałem opcję definiowania przywołań bibliograficznych do wzmgr.

A jeżeli publikacja nie ma daty wydania, np. strona WWW bez daty publikacji, to zgodnie z zaleceniami APA: The initials n.d. should be listed if there is no date. Po polsku zamiast n.d. wstawiam bdw (brak daty wydania), np. (Ajzen, bdw).

Dopisane 28 Lutego 2009: Pakiet hyperref można wywołać z opcją backref, albo pagebackref co skutkuje tym, iż w spisie literatury pojawią się przy każdej tzw. pozycji literaturowej numery stron, na których owa pozycja jest przywoływana (przydatne na etapie pisania pracy oraz w przypadku dokumentu w wersji elektronicznej (przykład -- zobacz spis literatury w pliku mgr-main.pdf)).

Teraz uwaga: powyższe nastawy nie zawsze działają. Nie rozgryzłem tematu do końca ale: klasy Marcina Wolińskiego wydają się nie być kompatybilne z natbib. Kompilacja kończy się błędami `\inaccessible' na etapie przetwarzania spisu literatury. W google jest coś na rzeczy tutaj. Wprawdzie większość wątku jest mało konkretna, ale sugestia J. Kew wydaje się prawdopodobna: I think there's an incompatibility between your use of \leftmark in the header, and whatever (the bibliography style?) is supposed to be producing the \mark's.

Pakiet natbib testowany z innym tekstem spowodował też inny błąd: w przypadku podzielenia przywołania pomiędzy stronami link z strony poprzedniej nie kończy się na brzegu ostatniego wiersza ale obejmuje także ewentualne przypisy, ew. paginę dolną oraz paginę górną następnej strony (Oczywiście usunięcie breaklinks z listy opcji pakietu hyperref usunęłoby problem ale wprowadziło inny jednocześnie.)

Najśmieszniejsze, że mam dwa wydaje się identyczne dokumenty, w których w jednym taki błąd występuje a w drugim jest OK. Już nie jest śmiesznie -- dodałem więcej tekstu do dokumentu, który był OK i stał się KO (por. strona 17 w pliku mgr-main.pdf). Coś mi dzwoni, że tego typu efekt może wynikać z ograniczeń TeXa, który najpierw składa akapity a potem łamie strony. Skąd biedak ma wiedzieć, że akurat w tym wierszu skończy mu się strona... Anyway -- zadałem pytanie na GUST-l bo może się mylę.

Dopisane 2 Marca 2009: Limitation of pdfTeX napisał Heiko Oberdiek w odpowiedzi na moje pytanie na comp.text.tex. Niestety to potwierdza, że mi dobrze dzwoniło...

Dopisane 6 Kwietnia 2010: O jednej rzeczy w tym wszystkim zapomniałem. Mianowicie polecenie składające zawartość \cite{...} wygląda następująco (plik latex.ltx):

\def\@citex[#1]#2{\leavevmode
  \let\@citea\@empty
  \@cite{\@for\@citeb:=#2\do
    {\@citea\def\@citea{,\penalty\@m\ }%
     \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%
     \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
     \@ifundefined{b@\@citeb}{\hbox{\reset@font\bfseries ?}%
       \G@refundefinedtrue
       \@latex@warning
         {Citation `\@citeb' on page \thepage \space undefined}}%
       {\@cite@ofmt{\csname b@\@citeb\endcsname}}}}{#1}}

Ostatni wiersz jest istotny. Magiczne \@cite@ofmt jest zdefiniowane trochę dalej jako:

\let\@cite@ofmt\hbox

Co oznacza, że każde odesłanie bibliograficzne ,,jest brane'' w pudełko i nie ma szans, żeby się odsyłacz przełamał nawet z aktywną opcją breaklinks. Wystarcz jednak wpisać:

\let\@cite@ofmt\relax

Żeby odsyłacz nie był składany w pudełku (ze wszystkimi tego konsekwencjami, negatywnymi też). Albo mam za starego/błędnego hyperrefa, albo jest jakaś opcja, której nie znam albo jeszcze coś innego. U mnie samo wywołanie pakietu hyperref z opcją breaklinks nie przełamuje odsyłaczy, z wyżej opisanego powodu.

url | Fri, 27/02/2009 19:53 | tagi: , ,
Poprawianie plików PDF w edytorze Emacs

Opisany wcześniej skrypt uruchamiam ,,spod'' Emacsa działającego w trybie BibTeX. Konkretniej poniższa funkcja bibtex-adjust-pdf-filename pobiera wartości pól author, title, year oraz tp:keywords, a następnie przekazuje te wartości w postaci argumentów ww. skryptu uruchamianego jako polecenie systemowe. Mam nadzieję dzięki temu mieć większy porządek w przechowywanych dokumentach pobranych z różnych archiwów elektronicznych.

(defun bibtex-adjust-pdf-filename (file)
"Dla bieżącego rekordu bibtexa modyfikuje plik zawierający relewantny dokument PDF 
(dodaje co trzeba do słownika Info oraz modyfikuje nazwę). Oryginalna nazwa pliku
PDF jest podana z minibufora. Modyfikacja jest dokonywana przez zewnętrzny skrypt. 
Cała ta procedura jest po to żeby można łatwiej później odszukać plik na dysku...."
  (interactive "fNazwa pliku: ")
  (save-excursion
    (bibtex-beginning-of-entry)
    (let* ( (author (bibtex-text-in-field "author"))
	    (year (bibtex-text-in-field "year")) 
	    (keywords (bibtex-text-in-field "tp:keywords")) 
	    (title (bibtex-text-in-field "title")) 
	    (command (format "%s -rename -f \"%s\" -t \"%s\" -a \"%s\" -k \"%s\" -y \"%s\""
			  (executable-find "pdf_set_info.pl") ;; script name
			  (expand-file-name file) title author keywords year)) )
      (progn  (shell-command command)
	      (previous-line)
	      (beginning-of-line)
	      (insert (concat "%% patched with pdf_set_info.pl %%" ))))))

Przy okazji namiar na bloga anonimowego użytkownika Emacsa zawierającego parę ciekawych rzeczy.

url | Mon, 24/11/2008 17:23 | tagi: , ,