diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/biblio |
Initial commit
Diffstat (limited to 'support/biblio')
27 files changed, 10379 insertions, 0 deletions
diff --git a/support/biblio/EXAMPLES/2sorts/2sorts.tex b/support/biblio/EXAMPLES/2sorts/2sorts.tex new file mode 100644 index 0000000000..c53a0a2b64 --- /dev/null +++ b/support/biblio/EXAMPLES/2sorts/2sorts.tex @@ -0,0 +1,169 @@ +\documentstyle[aps,manuscript]{revtex} + +\title{Comb copolymer brush with chemically different side chains} +\date{\today} +%----------------------------------------------- + +\newcommand{\vA}{v_{AA}} +\newcommand{\vB}{v_{BB}} +\newcommand{\vAB}{v_{AB}} +\newcommand{\vx}{v} +\newcommand{\mnu}{\nu} +\newcommand{\khi}{\chi} +\newcommand{\dd}{\partial} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +\maketitle +%-------------------------------------------------- + +\begin{abstract} +An investigation of side chain microphase separation +within a single comb copolymer molecule containing chemically different +$A$ and $B$ side chains has been carried out. Expressions for the +transition point $\chi_{AB}^*$ in a +good ($\chi_{AB}^* \sim N^{-3/8}$), +marginal ($\chi_{AB}^* \sim N^{-1/2}$), +$\theta$ ($\chi_{AB}^* \sim N^{-2/3}$), +and poor ($\chi_{AB}^* \sim N^{-1}$) +solvent are derived +both by a mean field calculation and by scaling arguments. +Properties of the system below and above the transition point are +described. +Some unusual ``bow-like'' conformations are predicted for a single +molecule in the microphase separated state in a good solvent. +\end{abstract} +%-------------------------------------------------- +\section{Introduction} + +The conformational characteristics of individual comb copolymers with a +high grafting density of side chains in solution has been addressed in a +series of theoretical papers +\cite{Birshtein,WangSafran,Fredrickson,Rouault1,3dFlex,3dRigid,Potemkin,2dComb} +to begin with the original work of +Birshtein et al \cite{Birshtein}. +Irrespective of the solvent quality, be it a good +solvent or a $\theta$-solvent, all theories predict a cylindrical +brush-like structure for sufficiently long side chains. The pertinent +parameters are the side chain grafting density, the side chain length, +the intrinsic stiffness of the backbone and the side chains (the +respective Kuhn segments) and the solvent quality with respect to the +side chains and the backbone. The conformation is characterized by a +number of quantities, the persistence length of the comb copolymer brush +being most important. For sufficiently long side chains the persistence +length is predicted to exceed the backbone length, thus resulting in a +characteristic cylindrical "bottle-brush" structure. Subsequent computer +simulations using a freely jointed hard sphere model essentially +confirmed this picture +\cite{Mika4,BrinkeIkkala,Rouault2,Mika1,Mika3,Mika2}. + +The experimental investigation of comb copolymers with a high grafting +density has assumed large proportions after the successful +polymerization of macromonomers, yielding degrees of polymerization +significantly exceeding the length of the macromonomer itself, by +Tsukahara and coworkers +\cite{Tsukahara2,Tsukahara3,Schmidt,Tsukahara0}. +Besides polymerization of macromonomers +alternative routes have been developed recently using grafting from a +macroinitiator prepared by either atom-transfer radical polymerization +\cite{Beers1} +or by living cationic polymerization +\cite{Schappacher}. +Using atom transfer +radical polymerization molecular brushes with block copolymer side +chains have been prepared as well. + +The experimental characterization of the comb copolymer brush +conformation in dilute solution is a highly nontrivial issue. It was +achieved recently by Schmidt and co-workers +\cite{Borner1,Wintermantel1,Wintermantel2,Wintermantel3,DziezokSheiko,Sheiko,GerleRoos,FischerGerleSchmidt} +using a combination +of light scattering experiments and theoretical modeling. Since the high +grafting density is supposed to lead to a stiff molecular structure, the +modeling has been based on the Kratky-Porod worm-like chain model. +For high molar mass polymacromonomers based on methacryloyl +end-functionalized oligo methacrylates ($M_n = 2410~g/mole$) in the good +solvent THF, the Kuhn statistical segment length, which is twice the +persistence length, turned out to be $120~nm$. For polymacromonomers +($M_n = 3624~g/mole$) consisting of polystyrene main and side chains this +value was $190~nm$ in the good solvent toluene and $120~nm$ in the +"$\theta$-solvent" cyclohexane. + +At the same time one of the most challenging problems in +the polymer physics is a description of a microphase +formation in copolymer systems. +Theoretically, self-organization in block copolymer systems has +attracted +a lot of attention during the last decades and a fairly complete picture +has emerged for the +relatively simple diblock copolymers. +\cite{Helfand1,Semenov,Leibler,FredricksonHelfand} +As a consequence, the interest gradually shifts towards more +complicated architectures such as comb or graft copolymers +\cite{Dobrynin1,Cruz1,Foster1,WernerFredrickson,Nap1}. +The discussion of structure formation in comb copolymers using the weak +segregation limit has been presented in some detail. Compared to diblock +copolymers the description is only slightly complicated by the fact that +the single chain correlation functions are more involved. Phase diagrams +of various comb copolymer systems have been published. Although +different in details, the general trends are the same as for diblock +copolymers. Of course, rather than the overall chain length, it is the +length of the "repeat unit" that determines the order-disorder +transition temperature as well as the characteristic length scale of the +ordered structures. + +The application of the weak segregation approach, however, requires a +relatively low +grafting density such that the distance between two +consecutive grafting points along the backbone is at least of the order +of the Flory radius of the side chains. If the grafting density of comb +copolymers is very high, the structure in the melt will usually involve +segregation between individual molecules. Even if the incompatibility +between backbone and side chains is high, the high grafting density may +well prevent segregation of several backbones. Furthermore, a high +grafting density combined with long side chains implies the volume +fraction of the backbone to be of the order of 0.1 or lower, not +necessarily the most interesting part of the melt phase diagram. + +Still, microphase separation may occur provided chemically different +side chains are used. In this case unfavorable interaction between the +side chains may lead to a micro domain +structure within a single molecule. The present paper is devoted to this +subject. +The main objective is to identify conditions for "microphase separation" +of side chains of two +different types within a single comb copolymer molecule under different +solvent conditions. + +The paper is organized as follows. The next section describes the +self-consistent field approach to a molecule with a straight +backbone and chemically different side chains. We show the possibility +of side chain separation +within the molecule and discuss the limits of the theory's +applicability. +The subsequent section is devoted to possible unusual behavior +of comb copolymer molecules with a flexible backbone and +microphase separated side chains. Then all results are summarized and +discussed in the last section. + +%------------------------------------------- +\section{Useful literature (not from the article)} +Very interesting and useful books on this subject (polymers) are +\cite{bookdeGennesScalingConcepts,GrosKhokh,bookCloizeaux} or more specific +books devoted to peculiarities if comb copolymers behavior +\cite{bookPlate,bookMcArdle}. +Still unpublished works, like \cite{FischerSchmidt}, can be very helpful too. + +Thesis \cite{thesisHyvarinen} is a good reading too! +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{references} + + +\end{references} + + + + + +\end{document}
\ No newline at end of file diff --git a/support/biblio/EXAMPLES/2sorts/2sorts_formats.tex b/support/biblio/EXAMPLES/2sorts/2sorts_formats.tex new file mode 100644 index 0000000000..d95505135d --- /dev/null +++ b/support/biblio/EXAMPLES/2sorts/2sorts_formats.tex @@ -0,0 +1,217 @@ +%% This is an example of a TeX file with formats +%% included into the header of the document. +%% To run it you have to do something like: +%% biblio.pl -o 2sorts_formats.1.tex -d refers.db 2sorts_formats.tex +%% or +%% biblio.pl -o 2sorts_formats.1.tex -d refers.db --nobibitem --uselist 2sorts_formats.tex +%% if you want a really well formatted citation list +%% and then +%% latex 2sorts_formats.1.tex +%% to get 2sorts_formats.1.dvi + +%%------------------------------------------------------ + +%% this is copyed from the template for Macromolecules +%% no ordering of the references is needed. Otherwise add line +%% '%ordering= AUTHORL' + +%begin{biblio} + +%cite_format={(%s)} +%ref_format=${^{%s}}$ + +%% normal article: +% ARTICLE [$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} {\bf $YEAR$}, {\it $VOL$}, $PAGE$.] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} $STATE$.] + +%% normal book +% BOOK [$AUTHOR0P~L,~F~M; $ {\it $TITLE$}; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$}, edited by $AUTHOR0I~E,~G~H;$; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book without editor +% INBOOK [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$}, p.$PAGE$ $PUBL$: $PLACE$, $YEAR$.] + +% EPRINT [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$} $INFO$, $YEAR$.] + +%% Thesis +% THESIS [$AUTHOR0P~L,~F~M; $ {\it $SORT$}; $UNIV$: $PLACE$, $YEAR$.] + +%end{biblio} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%REAL DOCUMENT STARTS HERE!!!! + +\documentstyle[aps,manuscript]{revtex} + +\title{Comb copolymer brush with chemically different side chains} +\date{\today} +%----------------------------------------------- + +\newcommand{\vA}{v_{AA}} +\newcommand{\vB}{v_{BB}} +\newcommand{\vAB}{v_{AB}} +\newcommand{\vx}{v} +\newcommand{\mnu}{\nu} +\newcommand{\khi}{\chi} +\newcommand{\dd}{\partial} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{document} + +\maketitle +%-------------------------------------------------- + +\begin{abstract} +An investigation of side chain microphase separation +within a single comb copolymer molecule containing chemically different +$A$ and $B$ side chains has been carried out. Expressions for the +transition point $\chi_{AB}^*$ in a +good ($\chi_{AB}^* \sim N^{-3/8}$), +marginal ($\chi_{AB}^* \sim N^{-1/2}$), +$\theta$ ($\chi_{AB}^* \sim N^{-2/3}$), +and poor ($\chi_{AB}^* \sim N^{-1}$) +solvent are derived +both by a mean field calculation and by scaling arguments. +Properties of the system below and above the transition point are +described. +Some unusual ``bow-like'' conformations are predicted for a single +molecule in the microphase separated state in a good solvent. +\end{abstract} +%-------------------------------------------------- +\section{Introduction} + +The conformational characteristics of individual comb copolymers with a +high grafting density of side chains in solution has been addressed in a +series of theoretical papers +\cite{Birshtein,WangSafran,Fredrickson,Rouault1,3dFlex,3dRigid,Potemkin,2dComb} +to begin with the original work of +Birshtein et al \cite{Birshtein}. +Irrespective of the solvent quality, be it a good +solvent or a $\theta$-solvent, all theories predict a cylindrical +brush-like structure for sufficiently long side chains. The pertinent +parameters are the side chain grafting density, the side chain length, +the intrinsic stiffness of the backbone and the side chains (the +respective Kuhn segments) and the solvent quality with respect to the +side chains and the backbone. The conformation is characterized by a +number of quantities, the persistence length of the comb copolymer brush +being most important. For sufficiently long side chains the persistence +length is predicted to exceed the backbone length, thus resulting in a +characteristic cylindrical "bottle-brush" structure. Subsequent computer +simulations using a freely jointed hard sphere model essentially +confirmed this picture +\cite{Mika4,BrinkeIkkala,Rouault2,Mika1,Mika3,Mika2}. + +The experimental investigation of comb copolymers with a high grafting +density has assumed large proportions after the successful +polymerization of macromonomers, yielding degrees of polymerization +significantly exceeding the length of the macromonomer itself, by +Tsukahara and coworkers +\cite{Tsukahara2,Tsukahara3,Schmidt,Tsukahara0}. +Besides polymerization of macromonomers +alternative routes have been developed recently using grafting from a +macroinitiator prepared by either atom-transfer radical polymerization +\cite{Beers1} +or by living cationic polymerization +\cite{Schappacher}. +Using atom transfer +radical polymerization molecular brushes with block copolymer side +chains have been prepared as well. + +The experimental characterization of the comb copolymer brush +conformation in dilute solution is a highly nontrivial issue. It was +achieved recently by Schmidt and co-workers +\cite{Borner1,Wintermantel1,Wintermantel2,Wintermantel3,DziezokSheiko,Sheiko,GerleRoos,FischerGerleSchmidt} +using a combination +of light scattering experiments and theoretical modeling. Since the high +grafting density is supposed to lead to a stiff molecular structure, the +modeling has been based on the Kratky-Porod worm-like chain model. +For high molar mass polymacromonomers based on methacryloyl +end-functionalized oligo methacrylates ($M_n = 2410~g/mole$) in the good +solvent THF, the Kuhn statistical segment length, which is twice the +persistence length, turned out to be $120~nm$. For polymacromonomers +($M_n = 3624~g/mole$) consisting of polystyrene main and side chains this +value was $190~nm$ in the good solvent toluene and $120~nm$ in the +"$\theta$-solvent" cyclohexane. + +At the same time one of the most challenging problems in +the polymer physics is a description of a microphase +formation in copolymer systems. +Theoretically, self-organization in block copolymer systems has +attracted +a lot of attention during the last decades and a fairly complete picture +has emerged for the +relatively simple diblock copolymers. +\cite{Helfand1,Semenov,Leibler,FredricksonHelfand} +As a consequence, the interest gradually shifts towards more +complicated architectures such as comb or graft copolymers +\cite{Dobrynin1,Cruz1,Foster1,WernerFredrickson,Nap1}. +The discussion of structure formation in comb copolymers using the weak +segregation limit has been presented in some detail. Compared to diblock +copolymers the description is only slightly complicated by the fact that +the single chain correlation functions are more involved. Phase diagrams +of various comb copolymer systems have been published. Although +different in details, the general trends are the same as for diblock +copolymers. Of course, rather than the overall chain length, it is the +length of the "repeat unit" that determines the order-disorder +transition temperature as well as the characteristic length scale of the +ordered structures. + +The application of the weak segregation approach, however, requires a +relatively low +grafting density such that the distance between two +consecutive grafting points along the backbone is at least of the order +of the Flory radius of the side chains. If the grafting density of comb +copolymers is very high, the structure in the melt will usually involve +segregation between individual molecules. Even if the incompatibility +between backbone and side chains is high, the high grafting density may +well prevent segregation of several backbones. Furthermore, a high +grafting density combined with long side chains implies the volume +fraction of the backbone to be of the order of 0.1 or lower, not +necessarily the most interesting part of the melt phase diagram. + +Still, microphase separation may occur provided chemically different +side chains are used. In this case unfavorable interaction between the +side chains may lead to a micro domain +structure within a single molecule. The present paper is devoted to this +subject. +The main objective is to identify conditions for "microphase separation" +of side chains of two +different types within a single comb copolymer molecule under different +solvent conditions. + +The paper is organized as follows. The next section describes the +self-consistent field approach to a molecule with a straight +backbone and chemically different side chains. We show the possibility +of side chain separation +within the molecule and discuss the limits of the theory's +applicability. +The subsequent section is devoted to possible unusual behavior +of comb copolymer molecules with a flexible backbone and +microphase separated side chains. Then all results are summarized and +discussed in the last section. + +%------------------------------------------- +\section{Useful literature (not from the article)} +Very interesting and useful books on this subject (polymers) are +\cite{bookdeGennesScalingConcepts,GrosKhokh,bookCloizeaux} or more specific +books devoted to peculiarities if comb copolymers behavior +\cite{bookPlate,bookMcArdle}. +Still unpublished works, like \cite{FischerSchmidt}, can be very helpful too. + +Thesis \cite{thesisHyvarinen} is a good reading too! +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{references} + + +\end{references} + + + + + +\end{document}
\ No newline at end of file diff --git a/support/biblio/EXAMPLES/2sorts/libtex b/support/biblio/EXAMPLES/2sorts/libtex new file mode 100755 index 0000000000..c33c392115 --- /dev/null +++ b/support/biblio/EXAMPLES/2sorts/libtex @@ -0,0 +1,32 @@ +JOURNAL="physreve" +PREFIX="../../" + +VLEVEL="1" #verbosity level +PROJECT="2sorts" +REFS="refers.db" +FORMATS=$PREFIX"formats/"$JOURNAL + + + +SUFFIX=".1" + +OUTTEX="$PROJECT$SUFFIX.tex" +OUTDVI="$PROJECT$SUFFIX.dvi" +TEXFILE="$PROJECT.tex" +DVIFILE="$PROJECT.dvi" + + +echo $OUTTEX + +if [ $JOURNAL = "physreve" ] +then + "$PREFIX"biblio.pl -v $VLEVEL -o $OUTTEX -d $REFS -f $FORMATS $TEXFILE +else + "$PREFIX"biblio.pl -v $VLEVEL -o $OUTTEX -d $REFS -f $FORMATS --nobibitem --uselist $TEXFILE +fi + + +latex $OUTTEX +latex $OUTTEX +mv $OUTDVI $DVIFILE +#rm *.aux *.log *~
\ No newline at end of file diff --git a/support/biblio/EXAMPLES/2sorts/refers.db b/support/biblio/EXAMPLES/2sorts/refers.db new file mode 100644 index 0000000000..fb2654ac9e --- /dev/null +++ b/support/biblio/EXAMPLES/2sorts/refers.db @@ -0,0 +1,1186 @@ +LABEL = thesisHyvarinen +TYPE = thesis +AUTHORL = Hyv\"arinen +AUTHORF = S. +SORT = Licentiate Thesis +UNIV = University of Helsinki +PLACE = Helsinki +YEAR = 1997 +TITLE = +URL = +---------- +LABEL = Brinke4 +TYPE = edbook +AUTHORP = |ten +AUTHORL = Ikkala|Brinke +AUTHORF = O.|G. +BOOKTITLE= Handbook of Advanced Electronic and Photonic Materials and Devices, Part 8 Conducting Polymers +AUTHORI = +AUTHORE = Nalwa +AUTHORG = Hari +AUTHORH = Singh +PAGE = 185 +PUBL = Academic Press +PLACE = +YEAR = 2000 +---------- +LABEL = bookMcArdle +TYPE = edbook +AUTHORL = Warner +AUTHORF = M. +AUTHORM = +TITLE = The physical principles of side chain polymer liquid crystals +BOOKTITLE= Side Chain Liquid Crystal Polymers +AUTHORI = +AUTHORE = McArdle +AUTHORG = C. +AUTHORH = B. +PUBL = Blackie +PLACE = Glasgow and London +YEAR = 1989 +PAGE = 7 +EPAGE = 29 +---------- +LABEL = bookdeGennesLiqCryst +TYPE = book +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +TITLE = The Physics of Liquid Crystals +PUBL = Clarendon Press +PLACE = Oxford +YEAR = 1974 +---------- +LABEL = bookdeGennesScalingConcepts +TYPE = book +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +TITLE = Scaling Concepts in Polymer Physics +PUBL = Cornell University Press +PLACE = Ithaca +YEAR = 1985 +PAGES = 325 +---------- +LABEL = bookPlate +TYPE = book +AUTHORL = Plate|Shibaev +AUTHORF = N. |V. +AUTHORM = A. |P. +TITLE = Comb-Shaped Polymers and Liquid Crystals +PUBL = Plenum Press +PLACE = New York and London +YEAR = 1987 +PAGES = 415 +---------- +LABEL = GrosKhokh +TYPE = book +AUTHORL = Grosberg|Khokhlov +AUTHORF = A. |A. +AUTHORM = Yu. |R. +TITLE = Statistical Physics of Macromolecules +PUBL = American Institute of Physics +PLACE = New York +YEAR = 1994 +---------- +LABEL = Landau +TYPE = book +AUTHORL = Landau|Lifshits +AUTHORF = L |E. +AUTHORM = D. |M. +TITLE = Statistical Physics +PUBL = Pergamon +PLACE = Oxford +YEAR = 1980 +---------- +LABEL = bookLipatovNesterov +TYPE = book +AUTHORL = Lipatov|Nesterov +AUTHORF = Y. |A. +AUTHORM = S. |E. +TITLE = Thermodynamics of Polymer Blends +PUBL = Technomic +PLACE = Lancaster, Basel +YEAR = 1997 +---------- +LABEL = bookCloizeaux +TYPE = book +AUTHORP = des +AUTHORL = Cloizeaux|Jannink +AUTHORF = J. |G. +TITLE = Polymers in Solutions: Their modelling and Structure +PUBL = Clarendon Press +PLACE = Oxford +YEAR = 1990 +PAGES = 896 +---------- +LABEL = LifshitzGrosbergKhokhlov1 +TYPE = article +AUTHORL = Lifshitz|Grosberg|Khokhlov +AUTHORF = I. |A. |A. +AUTHORM = M. |Yu. |R. +JOURNAL = Rev. Mod. Phys. +VOL = 50 +PAGE = 683 +EPAGE = 713 +YEAR = 1978 +TITLE = Some problems of the statistical physics of polymer chains with volume interaction +URL = RevModPhys_LifshitsGrosbergKhokhlov1978.pdf +---------- +LABEL = Vasilevskaya +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Vasilevskaya|Klochkov|Khalatur|Khokhlov|Brinke +AUTHORF = V. |A. |P. |A. |G. +AUTHORM = V. |A. |G. |R. | +TITLE = Microphase separation within comb-like copolymer with attractive side-chains: computer simulations +JOURNAL = Macromol. Theory and Simul. +VOL = 10 +PAGE = 389 +EPAGE = 394 +YEAR = 2001 +URL = vasilevskaya_attractive.pdf +---------- +LABEL = Helfand1 +TYPE = article +AUTHORL = Helfand|Wasserman +AUTHORF = E. |Z. +AUTHORM = |R. +TITLE = +JOURNAL = Macromolecules +VOL = 9 +PAGE = 879 +YEAR = 1976 +---------- +LABEL = Tsukahara0 +TYPE = edbook +AUTHORL = Tsukahara +AUTHORF = Y. +BOOKTITLE=Macromolecular Design: Concept and Practice +AUTHORI = +AUTHORE = Mishra +AUTHORG = M. +AUTHORH = +PAGE = 161 +EPAGE = 227 +PUBL = Polymer Frontiers International Inc. +PLACE = New York +YEAR = 1993 +---------- +LABEL = Schmidt +TYPE = article +AUTHORL = Tsukahara|Tsutsumi|Yamashita|Shimada +AUTHORF = Y. |K. |S. |S. +TITLE = +JOURNAL = Macromolecules +VOL = 23 +PAGE = 5201 +YEAR = 1990 +---------- +LABEL = Tsukahara2 +TYPE = article +AUTHORL = Tsukahara|Mizuno|Segawa|Yamashita +AUTHORF = Y. |K. |A. |Y. +TITLE = +JOURNAL = Macromolecules +VOL = 22 +PAGE = 1546 +EPAGE = 1552 +YEAR = 1989 +---------- +LABEL = Tsukahara3 +TYPE = article +AUTHORL = Tsukahara|Tsutsumi|Yamashita +AUTHORF = Y. |K. |Y. +TITLE = +JOURNAL = Macromolecules +VOL = 22 +PAGE = 2869 +EPAGE = 2871 +YEAR = 1989 +---------- +LABEL = Ballauff +TYPE = article +AUTHORL = Ballauff +AUTHORF = M. +AUTHORM = +TITLE = +JOURNAL = Angew. Chem. Int. Ed. Engl. +VOL = 28 +PAGE = 253 +YEAR = 1989 +---------- +LABEL = Antonietti +TYPE = article +AUTHORL = Antonietti|Henke|Th\"unemann +AUTHORF = M. |S. |A. +AUTHORM = | |F. +TITLE = Highly Ordered Materials with Ultra-Low Surface Energies. Polyelectrolyte-Surfactant Complexes with Fluorinated Surfactants +JOURNAL = Adv. Mater. +VOL = 8 +PAGE = 45 +YEAR = 1996 +---------- +LABEL = Thunemann +TYPE = article +AUTHORL = Th\"unemann|Lochaas +AUTHORF = A. |K. +AUTHORM = F. |H. +TITLE = PHYSISORPTION, INTERFACIAL FILMS, MEMBRANES - Self-Assembly of Perfluorodecanoic Acid with Cationic Copolymers: Ultra-Low Energy Surfaces and Mesomorphous Structures +JOURNAL = Langmuir +VOL = 14 +PAGE = 4898 +EPAGE = 4903 +YEAR = 1998 +---------- +LABEL = Semenov +TYPE = article +AUTHORL = Semenov +AUTHORF = A. +TITLE = +JOURNAL = Sov. Phys. JETP +PAGE = 733 +YEAR = 1985 +VOL = 61 +---------- +LABEL = LikhtmanSemenov +TYPE = article +AUTHORL = Likhtman|Semenov +AUTHORF = A.|A. +AUTHORM = E.|N. +JOURNAL = Macromolecules +PAGE = 7273 +EPAGE = 7278 +YEAR = 1997 +VOL = 30 +TITLE = Theory of Microphase Separation in Block Copolymer/Homopolymer Mixtures +URL = ma9702713.pdf +---------- +LABEL = RubinsteinSemenov +TYPE = article +AUTHORL = Rubinstein|Semenov +AUTHORF = M.|A. +AUTHORM = |N. +JOURNAL = Macromolecules +PAGE = 1058 +EPAGE = 1068 +YEAR = 2001 +VOL = 34 +TITLE = Dynamics of Entangled Solutions of Associating Polymers +URL = ma0013049.pdf +---------- +LABEL = Floudas +TYPE = article +AUTHORL = Floudas|Hadjichristidis|Stamm|Likhtman|Semenov +AUTHORF = G. |N. |M. |A. |A. +AUTHORM = | | |E. |N. +JOURNAL = J. of Chem. Phys. +PAGE = 3318 +EPAGE = 3328 +YEAR = 1997 +VOL = 106 +TITLE = Microphase separation in block copolymer-homopolymer blends: Theory and experiment +URL = JCP03318.pdf +---------- +LABEL = Leibler +TYPE = article +AUTHORL = Leibler +AUTHORF = L. +TITLE = +JOURNAL = Macromolecules +PAGE = 1602 +YEAR = 1980 +VOL = 13 +---------- +LABEL = FredricksonHelfand +TYPE = article +AUTHORL = Fredrickson|Helfand +AUTHORF = G. |E. +AUTHORM = H. | +TITLE = +JOURNAL = Macromolecules +PAGE = 697 +YEAR = 1987 +VOL = 87 +---------- +LABEL = Dobrynin1 +TYPE = article +AUTHORL = Dobrynin|Erukhimovich +AUTHORF = A.|I. +AUTHORM = V.|Y. +TITLE = Computer-aided comparative investigation of architecture influence of block copolymer phase diagrams +JOURNAL = Macromolecules +PAGE = 276 +EPAGE = 281 +YEAR = 1993 +VOL = 26 +---------- +LABEL = Cruz1 +TYPE = article +AUTHORL = Olvera de la Cruz|Sanchez +AUTHORF = M. |I. +TITLE = +JOURNAL = Macromolecules +PAGE = 2501 +YEAR = 1986 +VOL = 19 +---------- +LABEL = Foster1 +TYPE = article +AUTHORL = Foster|Jasnow|Balazs +AUTHORF = D. |D. |A. +AUTHORM = P. | |C. +TITLE = +JOURNAL = Macromolecules +PAGE = 3450 +YEAR = 1995 +VOL = 28 +---------- +LABEL = WernerFredrickson +TYPE = article +AUTHORL = Werner|Fredrickson +AUTHORF = A.|G. +AUTHORM = |H. +TITLE = Architectural Effects on the Stability Limits of $ABS$ Block Copolymers +JOURNAL = J. Polym. Sci. B: Polym. Phys. +PAGE = 849 +EPAGE = 864 +YEAR = 1997 +VOL = 35 +URL = JPolimSciB_v35p849y1997.pdf +---------- +LABEL = Nap1 +TYPE = article +AUTHORP = | |ten +AUTHORL = Nap|Kok|Brinke|Kuchanov +AUTHORF = R. |C. |G. |S. +AUTHORM = J. | | |I. +TITLE = Microphase separation at two length scales +JOURNAL = Eur. Phys. J. E +PAGE = 515 +EPAGE = 519 +YEAR = 2001 +VOL = 4 +---------- +LABEL = Brinke1 +TYPE = article +AUTHORL = Ruokolainen|M\"akinen|Torkkeli|M\"akel\"a|Serimaa|Brinke|Ikkala +AUTHORP = | | | | |ten | +AUTHORF = J.|R.|M.|T.|R.|G.|O. +TITLE = Switching supramolecular polymeric materials with multiple length scales +JOURNAL = Science +PAGE = 557 +EPAGE = 560 +YEAR = 1998 +VOL = 280 +URL = mika/Brinke1.pdf +---------- +LABEL = Brinke2 +TYPE = article +AUTHORP = |de |de | | |ten | +AUTHORL = M\"akinen|Moel|Odorico|Ruokolainen|Stamm|Brinke|Ikkala +AUTHORF = R.|K.|W.|J.|M.|G.|O. +TITLE = Communications - "Hairy Tubes": Mesoporous Materials Containing Hollow Self-Organized Cylinders with Polymer Brushes at the Walls +JOURNAL = Adv. Mater. +PAGE = 117 +EPAGE = 121 +YEAR = 2001 +VOL = 13 +URL = mika/Brinke2.pdf +---------- +LABEL = Brinke3 +TYPE = article +AUTHORL = Kosonen|Ruokolainen|Knaapila|Torkkeli|Jokela|Serimaa|Brinke|Bras|Monkman|Ikkala +AUTHORP = | | | | | |ten +AUTHORF = H.|J.|M.|M.|K.|R.|G.|W.|A.|O. +TITLE = Nanoscale Conducting Cylinders Based on Self-Organization of Hydrogen-Bonded Polyaniline Supramolecules +JOURNAL = Macromolecules +PAGE = 8671 +EPAGE = 8675 +YEAR = 2000 +VOL = 33 +URL = mika/Brinke3.pdf +---------- +LABEL = 3dFlex +TYPE = article +AUTHORP = | | |ten +AUTHORL = Subbotin|Saariaho|Ikkala|Brinke +AUTHORF = A. |M. |O. |G. +TITLE = Elasticity of comb copolymer cylindrical brushes +JOURNAL = Macromolecules +PAGE = 3447 +EPAGE = 3452 +YEAR = 2000 +VOL = 33 +URL = mika/3dFlex.pdf +---------- +LABEL = Birshtein +TYPE = article +AUTHORL = Birshtein|Borisov|Zhulina|Khokhlov|Yurasova +AUTHORF = T.|O.|Y.|A.|T. +AUTHORM = M.|V.|B.|R.|A. +TITLE = Conformations of comb-like macromolecules +JOURNAL = Polym. Sci. USSR +PAGE = 1293 +EPAGE = 1300 +YEAR = 1987 +VOL = 29 +---------- +LABEL = Fredrickson +TYPE = article +AUTHORL = Fredrickson +AUTHORF = G +AUTHORM = H. +TITLE = Surfactant-induced lyotropic behavior of flexible polymer solutions +JOURNAL = Macromolecules +PAGE = 2825 +YEAR = 1993 +VOL = 26 +---------- +LABEL = Rouault1 +TYPE = article +AUTHORL = Rouault|Borisov +AUTHORF = Y.|O. +AUTHORM = |V. +TITLE = Comb-Branched Polymers: Monte Carlo Simulation and Scaling +JOURNAL = Macromolecules +PAGE = 2605 +EPAGE = 2611 +YEAR = 1996 +VOL = 29 +URL = Rouault1.pdf +---------- +LABEL = Rouault2 +TYPE = article +AUTHORL = Rouault +AUTHORF = Y. +AUTHORM = +TITLE = From comb polymers to polysoaps: A Monte Carlo attempt +JOURNAL = Macromol. Theory Simul. +PAGE = 359 +EPAGE = 365 +YEAR = 1998 +VOL = 7 +URL = rouault_comb_copolymers_to_polysoaps.pdf +---------- +LABEL = Mika1 +TYPE = article +AUTHORP = | |ten +AUTHORL = Saariaho|Ikkala|Brinke +AUTHORF = M.|O.|G. +TITLE = Molecular bottle brushes in thin films: An off-lattice Monte Carlo study +JOURNAL = J. Chem. Phys. +PAGE = 1180 +EPAGE = 1187 +YEAR = 1999 +VOL = 110 +URL = mika/Mika1.pdf +---------- +LABEL = Mika2 +TYPE = article +AUTHORP = | | |ten +AUTHORL = Saariaho|Subbotin|Ikkala|Brinke +AUTHORF = M.|A.|O.|G. +TITLE = Comb copolymer cylindrical brushes containing semiflexible side chains: A Monte Carlo study +JOURNAL = Macromol. Rapid. Commun. +PAGE = 110 +EPAGE = 115 +YEAR = 2000 +VOL = 21 +URL = mika/Mika2.pdf +---------- +LABEL = Mika3 +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Saariaho|Subbotin|Szleifer|Ikkala|Brinke +AUTHORF = M.|A.|I.|O.|G. +TITLE = Effect of Side Chain Rigidity on the Elasticity of Comb Copolymer Cylindrical Brushes: A Monte Carlo Simulation Study +JOURNAL = Macromolecules +PAGE = 4439 +EPAGE = 4443 +YEAR = 1999 +VOL = 32 +URL = mika/Mika3.pdf +---------- +LABEL = Mika4 +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Saariaho|Ikkala|Szleifer|Erukhimovich|Brinke +AUTHORF = M.|O.|I.|I.|G. +TITLE = On lyotropic behavior of molecular bottle-brushes: A Monte Carlo computer simulation study +JOURNAL = J. Chem. Phys. +PAGE = 3267 +EPAGE = 3276 +YEAR = 1997 +VOL = 107 +URL = mika/JCP03267.pdf +---------- +LABEL = Ball +TYPE = article +AUTHORL = Ball|Marko|Milner|Witten +AUTHORF = R.|J.|S.|T. +AUTHORM = C.|F.|T.|A. +JOURNAL = Macromolecules +YEAR = 1991 +VOL = 24 +PAGE = 693 +---------- +LABEL = Lai +TYPE = article +AUTHORL = Lai|Witten +AUTHORF = H. |T. +AUTHORM = |A. +JOURNAL = Macromolecules +YEAR = 1991 +VOL = 24 +PAGE = 693 +---------- +LABEL = Odijk +TYPE = article +AUTHORL = Odijk +AUTHORF = T. +AUTHORM = +JOURNAL = J. Polym. Sci., Polym. Phys. Ed. +YEAR = 1977 +VOL = 15 +PAGE = 477 +---------- +LABEL = Skolnick +TYPE = article +AUTHORL = Skolnick|Fixmann +AUTHORF = J.|M. +AUTHORM = +JOURNAL = Macromolecules +YEAR = 1977 +VOL = 10 +PAGE = 944 +---------- +LABEL = Sheiko +TYPE = article +AUTHORL = Sheiko|Gerle|Fischer|Schmidt|M\"{o}ller +AUTHORF = S.|M.|F.|M.|M. +AUTHORM = S.| | | | +JOURNAL = Langmuir +YEAR = 1997 +VOL = 13 +PAGE = 5368 +EPAGE = 5372 +TITLE = Wormlike Polystyrene Brushes in Thin Films +---------- +LABEL = DziezokSheiko +TYPE = article +AUTHORP = +AUTHORL = Dziezok|Sheiko|Fischer|Schmidt|M\"oller +AUTHORF = P. |S. |K. |M. |M. +AUTHORM = |S +JOURNAL = Angew Chem. Int. Ed. Engl. +YEAR = 1997 +VOL = 36 +PAGE = 2812 +EPAGE = 2815 +TITLE = +URL = +---------- +LABEL = Spirali +TYPE = article +AUTHORL = Khalatur|Khokhlov|Prokhorova|Sheiko|M\"oller|Reineker|Shirvanyanz|Starovoitova +AUTHORF = P.|A.|S.|S.|M.|P.|D.|N. +AUTHORM = G.|R.|A.|S.| | |G.| +JOURNAL = Eur. Phys. J. E. +YEAR = 2000 +VOL = 1 +PAGE = 99 +EPAGE = 103 +TITLE = Unusual conformation of molecular cylindrical brushes strongly adsorbed on a flat solid surface +URL = Khalatur_EurPhysJ_E.pdf +---------- +LABEL = Potemkin +TYPE = article +AUTHORL = Potemkin|Khokhlov|Reineker +AUTHORF = I.|A.|P. +AUTHORM = I.|R.| +JOURNAL = Eur. Phys. J. E. +YEAR = 2001 +VOL = 4 +PAGE = 93 +EPAGE = 101 +TITLE = Stiffness and conformations of molecular bottle-brushes strongly adsorbed on a flat surface +URL = potemkin_e0065.pdf +---------- +LABEL = 2dComb +TYPE = article +AUTHORP = | |ten +AUTHORL = Stepanyan|Subbotin|Brinke +AUTHORF = R.|A.|G. +JOURNAL = Phys. Rev. E. +YEAR = 2001 +VOL = 63 +PAGE = 061805 +TITLE = Strongly adsorbed comb copolymers with rigid side chains +URL = PRE61805.pdf +---------- +LABEL = 3dRigid +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Subbotin|Saariaho|Stepanyan|Ikkala|Brinke +AUTHORF = A. |M. |R. |O. |G. +JOURNAL = Macromolecules +YEAR = 2000 +VOL = 33 +PAGE = 6168 +EPAGE = 6173 +TITLE = Cylindrical brushes of comb copolymer molecules containing rigid side chains +URL = bottrev.mml.pdf +---------- +LABEL = toroid +TYPE = article +AUTHORL = Vasilevskaya|Khokhlov|Kidoaki|Yoshikawa +AUTHORF = V.|A.|S.|K. +AUTHORM = V.|R.| | +JOURNAL = Biopolymers +YEAR = 1997 +VOL = 41 +PAGE = 51 +EPAGE = 60 +TITLE = Structure of collapsed Persistent macromolecule: toroid vs. spherical globule +URL = toroid.pdf +---------- +LABEL = FredricksonLiu +TYPE = article +AUTHORL = Fredrickson|Liu +AUTHORF = G.|A. +AUTHORM = H.|J. +JOURNAL = Macromolecules +YEAR = 1994 +VOL = 27 +PAGE = 2503 +EPAGE = 2511 +TITLE = Entropic corrections to the Flory-Huggins theory of polymer blends: architectural and conformational effects +RUSSIAN = Popravki k $\chi$ za schet vsyacheskih effectov, tipa arhitektury, gibkosti i t.p. +---------- +LABEL = LiuFredrickson +TYPE = article +AUTHORL = Liu|Fredrickson +AUTHORF = A.|G. +AUTHORM = J.|H. +JOURNAL = Macromolecules +YEAR = 1993 +VOL = 26 +PAGE = 2817 +EPAGE = 2824 +TITLE = Free energy functionals for semiflexible polymer solutions and blends +RUSSIAN = fazovoe povedenie s dvumya parametrami: $\chi$ i Maier-Saupe $w$. +---------- +LABEL = RaphaelFredricksonPincus +TYPE = article +AUTHORL = Rapha\"el|Fredrickson|Pincus +AUTHORF = E.|G.|P. +AUTHORM = |H.| +JOURNAL = J. Phys. II France +YEAR = 1992 +VOL = 2 +PAGE = 1811 +EPAGE = 1823 +TITLE = One long chain among shorter chains: the Flory approach revisited +RUSSIAN = Mozhet imeet otnoshenie k tomu, chto Subbotin hochet, chtoby ya delal. +---------- +LABEL = RaphaelPincusFredrickson +TYPE = article +AUTHORL = Rapha\"el|Pincus|Fredrickson +AUTHORF = E.|P.|G. +AUTHORM = | |H. +JOURNAL = Macromolecules +YEAR = 1993 +VOL = 26 +PAGE = 1996 +EPAGE = 2006 +TITLE = Conformation of star polymers in high molecular weight solvent +RUSSIAN = Mozhet imeet otnoshenie k tomu, chto Subbotin hochet, chtoby ya delal. Zdes' - chistyj scaling! +---------- +LABEL = FredricksonLeibler +TYPE = article +AUTHORL = Fredrickson|Leibler +AUTHORF = G.|L. +AUTHORM = H.| +JOURNAL = Macromolecules +YEAR = 1989 +VOL = 22 +PAGE = 1238 +EPAGE = 1250 +TITLE = Theory of block copolymer solutions: nonselective good solvent +URL = fredricksonleibler/fred.pdf +---------- +LABEL = JoannyLeiblerBall +TYPE = article +AUTHORL = Joanny|Leibler|Ball +AUTHORF = J.-F.|L.|R. +JOURNAL = J. Chem. Phys. +YEAR = 1984 +VOL = 81 +PAGE = 4640 +EPAGE = 4656 +TITLE = Is chemical mismatch important in polymer solutions? +URL = joannyleibler/joannyleibler.pdf +---------- +LABEL = SchaferKappeler +TYPE = article +AUTHORL = Sch\"afer|Kappeler +AUTHORF = L.|Ch. +JOURNAL = J. Physique +YEAR = 1985 +VOL = 46 +PAGE = 1853 +EPAGE = 1864 +TITLE = A renormalization group analysis of ternary polymer solutions +URL = +---------- +LABEL = IzmailovMyerson +TYPE = article +AUTHORL = Izmailov|Myerson +AUTHORF = A.|A. +AUTHORM = F.|S. +JOURNAL = Phys. Rev. E. +YEAR = 1990 +VOL = 60 +PAGE = 3211 +EPAGE = 3218 +TITLE = Thermodynamic and statistical studies of supersaturated ternary solutions +URL = PRE_v60p3211-3218y1999.pdf +---------- +LABEL = BartonMchugh +TYPE = article +AUTHORL = Barton|Mchugh +AUTHORF = B.|A. +AUTHORM = F.|J. +JOURNAL = J. of Pol. Science: Part B: Polymer Physics +YEAR = 1999 +VOL = 37 +PAGE = 1449 +EPAGE = 1460 +TITLE = Kinetics of Thermally Induced Phase Separation in Ternary Polymer Solutions. I. Modeling of Phase Separation Dynamics +URL = J_of_PolScience_v37p1449-1460y1999.pdf +---------- +LABEL = HongChouHuang +TYPE = article +AUTHORL = Hong|Chou|Huang +AUTHORF = Po-Da|Che-Min|Hsing-Tsai +JOURNAL = European Polymer Journal +YEAR = 2000 +VOL = 36 +PAGE = 2193 +EPAGE = 2200 +TITLE = Phase separation behavior in polyvinyl alcohol/ethylene glycol/water ternary solutions +URL = EurPolymJ_v36p2193-2200y200.pdf +---------- +LABEL = CurrieStuartBorisov +TYPE = article +AUTHORL = Currie|Cohen Stuart|Borisov +AUTHORF = E.|M.|O. +AUTHORM = P.K.|A.|V. +JOURNAL = Macromolecules +YEAR = 2001 +VOL = 34 +PAGE = 1018 +EPAGE = 1030 +TITLE = Phase separation in polymer solutions with annealed excluded volume interactions +URL = CurrieStuartBorisov.pdf +---------- +LABEL = DormidontovaErukhimovichKhokhlov +TYPE = article +AUTHORL = Dormidontova|Erukhimovich|Khokhlov +AUTHORF = E.|I.|A. +AUTHORM = E.|Ya.|R. +JOURNAL = Colloid Polym Sci +YEAR = 1994 +VOL = 272 +PAGE = 1486 +EPAGE = 1497 +TITLE = Phase diagram for microphase separation transition in poor polymer solutions +---------- +LABEL = BirshteinZhulinaMercurieva +TYPE = article +AUTHORL = Birshtein|Zhulina|Mercurieva +AUTHORF = T.|E.|A. +AUTHORM = M.|B.|A. +JOURNAL = Macromol. Theory Simul. +YEAR = 2000 +VOL = 9 +PAGE = 47 +EPAGE = 55 +TITLE = Amphiphilic polymer brush in a mixture of incompatible liquids +URL = brush/BirshteinZhulinaMercurieva.pdf +---------- +LABEL = KlushinBirshteinMercurieva +TYPE = article +AUTHORL = Klushin|Birshtein|Mercurieva +AUTHORF = L.|T.|A. +AUTHORM = I.|M.|A. +JOURNAL = Macromol. Theory Simul. +YEAR = 1998 +VOL = 7 +PAGE = 483 +EPAGE = 495 +TITLE = Microphase segregation in bridging polymeric brushes: Regular and singular phase diagrams +URL = brush/KlushinBirstein_MicrophaseSegregationInBrushes.pdf +---------- +LABEL = DjalaliHugenbergFischerSchmidt +TYPE = article +AUTHORL = Djalali|Hugenberg|Fischer|Schmidt +AUTHORF = R.|N.|K.|M. +JOURNAL = Macromol. Rapid. Commun. +YEAR = 1999 +VOL = 20 +PAGE = 444 +EPAGE = 449 +TITLE = Amphipolar core-shell cylindrical brushes +URL = brush/AmphipolarCore-ShellCylindricalBrushes.pdf +---------- +LABEL = RuckensteinLi +TYPE = article +AUTHORL = Ruckenstein|Li +AUTHORF = E.|B. +JOURNAL = J. Chem. Phys. +YEAR = 1997 +VOL = 107 +PAGE = 932 +EPAGE = 942 +TITLE = Steric interactions between two grafted polymer brushes +URL = brush/StericInteractionBetweenTwoGraftedPolBrushes.pdf +---------- +LABEL = Morse +TYPE = article +AUTHORL = Morse|Fredrickson +AUTHORF = D.|G. +AUTHORM = C.|H. +JOURNAL = Phys. Rev. Letters +YEAR = 1994 +VOL = 73 +PAGE = 3235 +EPAGE = 3238 +TITLE = Semiflexible polymers near interfaces +URL = semiflexible_polymers_near_interfaces_PRL_Fredricson.pdf +---------- +LABEL = Groh +TYPE = article +AUTHORL = Groh +AUTHORF = B. +JOURNAL = Phys. Rev. E +YEAR = 1999 +VOL = 59 +PAGE = 5606 +EPAGE = 5612 +TITLE = Vesicles in solutions of hard rods +URL = vesticles_in_rods.pdf +---------- +LABEL = Wilson +TYPE = article +AUTHORL = Wilson +AUTHORF = K. +AUTHORM = G. +JOURNAL = Rev. of Mod. Phys. +YEAR = 1975 +VOL = 47 +PAGE = 773 +EPAGE = 840 +TITLE = The renormalization group: Critical phenomena and the Kondo problem +URL = renorm/wilson/wilson.pdf +---------- +LABEL = Fisher +TYPE = article +AUTHORL = Fisher +AUTHORF = M. +AUTHORM = E. +JOURNAL = Rev. of Mod. Phys. +YEAR = 1998 +VOL = 70 +PAGE = 653 +EPAGE = 681 +TITLE = Renormalization group theory: Its basis and formulation in statistical physics +URL = renorm/fisherRMP000653.pdf +---------- +LABEL = Morrison +TYPE = article +AUTHORL = Morrison +AUTHORF = P. +AUTHORM = J. +JOURNAL = Rev. of Mod. Phys. +YEAR = 1998 +VOL = 70 +PAGE = 467 +EPAGE = 521 +TITLE = Hamiltonian description of the ideal fluid +URL = rmp/RMP000467.pdf +---------- +LABEL = Hogan +TYPE = article +AUTHORL = Hogan +AUTHORF = C. +AUTHORM = J. +JOURNAL = Rev. of Mod. Phys. +YEAR = 2000 +VOL = 72 +PAGE = 1149 +EPAGE = 1161 +TITLE = Why the universe is just so +URL = rmp/RMP001149.pdf +---------- +LABEL = Stanley +TYPE = article +AUTHORL = Stanley +AUTHORF = H. +AUTHORM = E. +JOURNAL = Rev. of Mod. Phys. +YEAR = 1999 +VOL = 71 +PAGE = S358 +EPAGE = S366 +TITLE = Scaling, universality, and renormalization: Three pillars of modern critical phenomena +URL = rmp/RMP00S358.pdf +---------- +LABEL = GennesRMP +TYPE = article +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +JOURNAL = Rev. of Mod. Phys. +YEAR = 1999 +VOL = 71 +PAGE = S374 +EPAGE = S382 +TITLE = Granular matter: a tentative view +URL = rmp/RMP00S374.pdf +---------- +LABEL = MatsenBates +TYPE = article +AUTHORL = Matsen|Bates +AUTHORF = M.|F. +AUTHORM = W.|S. +JOURNAL = J. Chem. Phys. +YEAR = 1997 +VOL = 106 +PAGE = 2436 +EPAGE = 2448 +TITLE = Block copolymer microstructures in the intermediate-segregation regime +URL = JCP02436.pdf +---------- +LABEL = GrosbergNguyen +TYPE = eprint +AUTHORL = Grosberg|Nguyen|Shklovskii +AUTHORF = A. |T.|B. +AUTHORM = Ya.|T.|I. +INFO = cond-mat/0105140 +YEAR = 2001 +TITLE = Low temperature physics at room temperature in water: Charge inversion in chemical and biological systems +URL = grosberg/01-05-04.pdf +---------- +LABEL = Pagonabarraga +TYPE = eprint +AUTHORL = Pagonabarraga|Cates +AUTHORF = I.|M. +AUTHORM = |E. +INFO = cond-mat/0104449 +YEAR = 2001 +TITLE = A practical density functional for polydisperse polymers +URL = pagonabarraga/shortpoly2.pdf +---------- +LABEL = VroegeLekkerkerker +TYPE = article +AUTHORL = Vroege|Lekkerkerker +AUTHORF = G.|H. +AUTHORM = J.|N.W. +JOURNAL = Reports on progress in physics +YEAR = 1992 +VOL = 55 +PAGE = 1241 +EPAGE = 1310 +TITLE = Phase transitions in lyotropic colloidal and polymer liquid crystals +URL = rp920803.pdf +---------- +LABEL = WangSafran +TYPE = article +AUTHORL = Wang |Safran +AUTHORF = Z.-G.|S. +AUTHORM = |A. +JOURNAL = J. Chem. Phys. +YEAR = 1988 +VOL = 89 +PAGE = 5323 +EPAGE = 5328 +TITLE = Size distribution for aggregates of associating polymers. II. Linear packing +URL = +---------- +LABEL = BrinkeIkkala +TYPE = article +AUTHORP = ten +AUTHORL = Brinke|Ikkala +AUTHORF = G. |O. +AUTHORM = +JOURNAL = TRIP +YEAR = 1997 +VOL = 5 +PAGE = 213 +EPAGE = 217 +TITLE = +URL = +---------- +LABEL = Beers1 +TYPE = article +AUTHORP = +AUTHORL = Beers|Scott|Mattyjaszewski|Sheiko|M\"oller +AUTHORF = K. |G. |K. |S. |M. +AUTHORM = L. |G. | |S. | +JOURNAL = Macromolecules +YEAR = 1998 +VOL = 31 +PAGE = 9413 +EPAGE = 9415 +TITLE = The Synthesis of Densely Grafted Copolymers by Atom Transfer Radical Polymerization +URL = ma981402i.pdf +---------- +LABEL = Borner1 +TYPE = article +AUTHORP = +AUTHORL = B\"orner|Beers|Matyjaszewski|Sheiko|M\"oller +AUTHORF = H. |K. |K. |S. |M. +AUTHORM = G. | | |S. | +JOURNAL = Macromolecules +YEAR = 2001 +VOL = 34 +PAGE = 4375 +EPAGE = 4383 +TITLE = Synthesis of Molecular Brushes with Block Copolymer Side Chains Using Atom Transfer Radical Polymerization +URL = ma010001r.pdf +---------- +LABEL = Schappacher +TYPE = article +AUTHORP = +AUTHORL = Schappacher|Billaud|Paulo|Deffieux +AUTHORF = M. |C. |C. |A. +AUTHORM = +JOURNAL = Macromol. Chem. Phys. +YEAR = 1999 +VOL = 200 +PAGE = 2377 +EPAGE = 2386 +TITLE = Synthesis, dimensions and solution properties of linear and macrocyclic poly(chloroethyl vinyl ether)-g-polystyrene comblike polymers +URL = schappacher.pdf +---------- +LABEL = Wintermantel1 +TYPE = article +AUTHORP = +AUTHORL = Wintermantel|Schmidt|Tsukahara|Kajiwara|Kohjiya +AUTHORF = M.|M.|Y.|K.|S. +AUTHORM = +JOURNAL = Macromol. Rapid. Commun. +YEAR = 1994 +VOL = 15 +PAGE = 279 +EPAGE = 284 +TITLE = +URL = +---------- +LABEL = Wintermantel2 +TYPE = article +AUTHORP = +AUTHORL = Wintermantel|Fischer|Gerle|Ries|Schmidt|Kajiwara|Urakawa|Wataoka +AUTHORF = M.|K.|M.|R.|M.|K.|H.|I. +AUTHORM = +JOURNAL = Angew Chem. Int. Ed. Engl. +YEAR = 1995 +VOL = 34 +PAGE = 1472 +EPAGE = 1474 +TITLE = +URL = +---------- +LABEL = Wintermantel3 +TYPE = article +AUTHORP = +AUTHORL = Wintermantel|Gerle|Fischer|Schmidt|Wataoka|Urakawa|Kajiwara|Tsukahara +AUTHORF = M.|M.|K.|M.|I.|H.|K.|Y. +AUTHORM = +JOURNAL = Macromolecules +YEAR = 1996 +VOL = 29 +PAGE = 978 +EPAGE = 983 +TITLE = Molecular Bottlebrushes +URL = ma950227s.pdf +---------- +LABEL = GerleRoos +TYPE = article +AUTHORP = +AUTHORL = Gerle|Fischer|Roos|M\"uller|Schmidt|Sheiko|Prokhorova|M\"oller +AUTHORF = M. |K. |S. |A. |M. |S. |S. |M. +AUTHORM = | | |H.~E. | |S. +JOURNAL = Macromolecules +YEAR = 1999 +VOL = 32 +PAGE = 2629 +EPAGE = 2637 +TITLE = Main Chain Conformation and Anomalous Elution Behavior of Cylindrical Brushes As Revealed by GPC/MALLS, Light Scattering, and SFM +URL = ma9816463.pdf +---------- +LABEL = FischerGerleSchmidt +TYPE = article +AUTHORP = +AUTHORL = Fischer|Gerle|Schmidt +AUTHORF = K.|M.|M. +AUTHORM = +JOURNAL = Proc. ACS PMSE Anaheim +YEAR = 1999 +VOL = 30 +PAGE = 133 +EPAGE = 134 +TITLE = +URL = +---------- +LABEL = FischerSchmidt +TYPE = article0 +AUTHORP = +AUTHORL = Fischer|Schmidt +AUTHORF = K.|M.|M. +AUTHORM = +JOURNAL = Macromol Rapid Commun +YEAR = 2001 +VOL = +PAGE = +EPAGE = +TITLE = +URL = +STATE = in press +---------- +LABEL = Sheiko2 +TYPE = article +AUTHORP = +AUTHORL = Sheiko +AUTHORF = S. +AUTHORM = S. +JOURNAL = Advances Polym. Sci. +YEAR = 2000 +VOL = 151 +PAGE = 61 +EPAGE = 174 +TITLE = +URL = +---------- +%LABEL=kukuku +%TYPE=preprint +%AUTHORL=kukuauth +%TITLE=Microphase separation within comb-like copolymer with attractive side-chains: computer simulations1 +%JOURNAL= Macromol. Theory and Simul1. +%YEAR =1995 +%VOL =4 +%---------- +EOF + + + + + + + + diff --git a/support/biblio/EXAMPLES/hairy/hairy.tex b/support/biblio/EXAMPLES/hairy/hairy.tex new file mode 100644 index 0000000000..0c3a89d23c --- /dev/null +++ b/support/biblio/EXAMPLES/hairy/hairy.tex @@ -0,0 +1,895 @@ +\documentstyle[aps,preprint]{revtex} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\newcommand{\lbl}[1]{\label{#1}} +\newcommand{\reff}[1]{eq~\ref{#1}} + + +\newcommand{\be}[1]{ \begin{equation} \lbl{#1} } +\newcommand{\ee}{\end{equation}} + +\newcommand{\bea}[1]{ \begin{eqnarray} \lbl{#1} } +\newcommand{\eea}{\end{eqnarray}} + +\newcommand{\dd}{\partial} + +\newcommand{\vk}{\bf k} +\newcommand{\vb}{\bf b} + + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{document} + +\title{Phase equilibria in associating rodlike and flexible chains} + +\date{\today} + +\author{R. Stepanyan$^{\dagger}$, + A. Subbotin$^{\dagger ,\sharp}$, + O. Ikkala$^{\ddagger}$, + G. ten Brinke$^{\dagger}$} + +\address{$^{\dagger }$ +Department of Polymer Science and Material Science Center,\\ +University of Groningen, Nijenborgh 4, 9747 AG Groningen, The Netherlands;} + +\address{$^{\sharp }$ +Institute of Petrochemical Synthesis, Russian Academy of\\ +Sciences, Moscow 119991, Russia;} + +\address{$^{\ddagger }$ +Department of Engineering Physics and Mathematics, \\ +Helsinki University of Technology, P.O. Box 2200,\\ +FIN-02015 HUT, Espoo, Finland} + +\date{\today} + +\maketitle + +\begin{abstract} +Abstract goes here +\end{abstract} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage + +\section{Introduction} + +Introduction...... + +\cite{MB1091,BF525,bookdeGennesScalingConcepts,Leibler}. +%----------------------------------------------------------------- + +\section{The model and the free energy of the reference system} + +Let us consider a melt consisting of rigid rods of length $L$ and diameter +$d$ and flexible coils consisting of $N$ beads of volume $\nu$ and statistical +segment of length $a$. The coil size is $R_c = a \sqrt{N}$. We will assume that +each rod contains $M$ associating groups (an average distance between two +succesive groups is $b=L/M \ll R_c$) which can form bonds with the +associating end of the coil (FIGURE). It is assumed that each coil has only one +associating end. The energy of association between rod and coil equals +to $-\epsilon $. The concentration of rods in the melt is $c$ and their volume +fraction is $f=(\pi /4)Ld^2c$. + +The interactions between rods and coils can be introduced in the +following way. It is well known that rods and polymer coils in the +molten state are practically incompartible and separate on the nematic phase +consisting of rods and isotropic phase consisting of the flexible +polymers \cite{Flory:MML:11:1138,AbeBallauff}. +Let us consider the interface between the nematic and isotropic phases +(FIGURE fig.1) +which is assumed to be sharp so that the polymer segments can not +penetrate into the nematic phase, and introduce the interfacial tension +$\gamma$ corresponding to planar orientation of rods at the interface +($k_B \equiv 1$) +% +\be{eq0} +\gamma =(w+sT)/d^2 +\ee +% +where $w$ is the energetic part of the surface energy and $s$ is the +entropic part +(here $T$ is temperature, ??we will also assume that $s \sim 1$??). +According to the defenition \reff{eq0} if a rod penetrates into the polymer +melt its energy loss approximatly equals +% +\be{eq01} +\mu _r\simeq 2Ld\gamma =\frac{2L}d\left( w+sT\right) +\ee +The free energy of the isotropic phase with small amount of rigid rods +therefore is given by + +\be{eq02} +{\cal F}_I^{*} = +T V c +\ln \left( \frac{f}{e} \right) + +T V \frac{1-f}{N\nu} +\ln \left( \frac{1-f}{e} \right) + +V c \frac{2L}{d} \left( w+sT \right) +\ee +% +Here we omitted interaction between the rods. $V$ is the volume of the +system. In \reff{eq02} the first two terms imply the translational +energy of the rods and coils correspondingly and the last term is the energy of +rods. + +The coils can also penetrate into the nematic phase where they become +stretched. In order to write the free energy of the nematic phase with small +amount of coils we introduce a chemical potential of the coil in the +nematic phase $\mu _c$ which includes both energetic and entropic +parts and limits to infinity, + +\be{eq05} +\mu _c/T\rightarrow \infty +\ee +for arbitrary $T$. As we will see below it means that the coils +practically do not penetrate in the nematic phase. + +The free energy of the nematic phase contains also a term connected with +orientational ordering of rods. The last one can be estimated as +\cite{KhokhlovTBOA,SemenovKhokhlov} +$T \ln ( 4 \pi /\Omega )$, +where $\Omega$ is the characteristic fluctuation angle, +$\Omega \simeq 2\pi (d/L)^2$. Thus the free energy is given by +% +\be{eq03} +{\cal F}_N^{*}= +T V c \ln \left( \frac{f}{e} \right) + +T V \frac{1-f}{N\nu} +\ln \left( \frac{1-f}e \right) + +2 T V c \ln \left( \frac{L}{d} \right) + +V \frac{1-f}{N\nu} \mu _c +\ee +The phase equilibrium between the nematic and isotropic phases can be found +in a usuall way by equating the chemical potentials and osmotic pressures in +both phases. +% +\begin{eqnarray} +\mu_I^{*} & = & \mu _N^{*}; \quad +\mu _{I,N}^{*} = \frac{1}{V} \frac{\dd {\cal F}_{I,N}^{*}}{\dd c} + \nonumber\\ +% +P_I &=&P_N; \quad +P_{I,N}=\frac{1}{V} +\left( + c \, \frac{\dd {\cal F}_{I,N}^{*}}{\dd c} - {\cal F}_{I,N}^{*} +\right) +\lbl{eq04} +\end{eqnarray} +Considering limit \reff{eq05}, solution of these equations is given by +% +\be{eq06} +f_N \simeq 1,\quad +f_I \simeq + \left( \frac{L}{d} \right) ^2 + \exp \left( -\frac{2L}{d}\left( \frac wT+s \right) + \right) \ll 1 +\ee + +\section{Nematic-isotropic liquid phase coexistence: effect of association} +% +In this section we study the influence of association between rods and +coils on the macrophase separation described above. +We start from the free energy of association between +rods and coils, ${\cal F}_{bond}$, assuming that they are +ideal (without excluded volume). Let us introduce the probability of bond +$p$. The total number of bonds in the system is $VMcp$ and +equals to the number of associated coils. +Therefore the number of free coils in the system is +$(V/N\nu)(1-f-f\kappa pN)$, where $\kappa \equiv \nu/(\pi b d^2/4)$. The free +energy of bonds can be written through the partition function $Z_{bond}$ as +\cite{SemenovRubinstein1,Erukhimovich:Gel} +% +\be{eq3} +{\cal F}_{bond}=-T\ln Z_{bond} +\ee +where +% +\be{eq4} +Z_{bond} = + P_{comb} + \left( \frac{v_b}V \right)^{V M c p} + \exp \left( \frac{\epsilon \, V M c p}{T} \right) +\ee +and $P_{comb}$ is the number of different ways to bond rods and coils +for a fixed probability of bond $p$; $v_b$ is a bond volume. If we denote +the number of rods in the system as ${\cal N}_r=Vc$, and the number of coils +as ${\cal N}_c=V(1-f)/N\nu$ then the number of ways to choose ${\cal N}_rMp$ +coils for bonds formation is a binomial coefficient +% +\be{eq5} +C_{{\cal N}_c}^{{\cal N}_rMp}=\frac{{\cal N}_c!}{({\cal N}_rMp)!({\cal N}_c-% +{\cal N}_rMp)!} +\ee +% +On the other hand there are +% +\be{eq6} +\frac{({\cal N}_rM)!}{({\cal N}_rM(1-p))!} +\ee +different ways to select ${\cal N}_rMp$ bonds from ${\cal N}_rM$ +associating groups. Therefore + +\be{eq7} +P_{comb} = C_{{\cal N}_c}^{{\cal N}_rMp} + \frac{ ({\cal N}_rM)! }{ ({\cal N}_rM(1-p))! } +\ee +and the free energy of bonds is given by +% +\begin{eqnarray} +{\cal F}_{bond} & = & +VMcp +\left[ + T \ln \left( \frac{N\nu}{v_b} \right) - \epsilon +\right] + +TVcM +\left[ + p\ln p + (1-p) \ln (1-p) +\right] \nonumber\\ +% + & & + +TV \frac{\left( 1-f-f\kappa Np\right) }{N\nu} + \ln \left( \frac{1-f-f\kappa Np}{e} \right) - +TV \frac{(1-f)}{N\nu} + \ln \left( \frac{1-f}{e} \right) +\lbl{eq8} +\end{eqnarray} + +Thus the free energy of the isotropic phase can be presented as the following +% +\be{eq9} +{\cal F}_I = {\cal F}_I^{*} + {\cal F}_{bond} + {\cal F}_{el} +\ee +% +where ${\cal F}_{el}$ is the elastic free energy of the side chains +of the hairy +rod when the density of association is high enough. We approximate it +by \cite{3dFlex,2sorts} + +\be{eq10} +{ \cal F}_{el}= +\left[ + \begin{array}{cl} + TVc\frac{3\kappa d^2}{32a^2}Mp^2\ln \left( \kappa Np\right) ,\quad & + p>\frac{1}{\kappa N} \\ + 0, \quad & + \textrm{otherwise} + \end{array} +\right. +\ee +Hence the final expression for the free energy of the isotropic phase is +given by (per volume of one rod $(\pi /4)Ld^2)$ +% +\begin{eqnarray} +\frac{F_I(f,p)}T &=& + f\frac{2L}{d} \left( \frac wT+s \right) + +Mfp\left[ \ln \left( \frac{N\nu}{v_b}\right) -\frac \epsilon T \right] + +fM\left[ p\ln p+(1-p)\ln (1-p)\right] \nonumber\\ +&& + +f\ln \left( \frac fe \right) + +M \frac{\left( 1-f-f \kappa Np \right) }{N\kappa } + \ln \left( \frac{1-f-f\kappa Np}{e} \right) \nonumber\\ +&& + +f\frac{3\kappa d^2}{32a^2} Mp^2 + \ln \left( \kappa Np \right) H\left( p-\frac 1{\kappa N}\right) +\lbl{eq11} +\end{eqnarray} +% +where +% +$$ +H(x)= +\left[ + \begin{array}{cl} + 1,\quad & x \geq 0 \\ + 0,\quad & x < 0 + \end{array} +\right. +$$ +is the Heavyside's function. +Similarly, the free energy of the nematic phase is +% +\begin{eqnarray} +\frac{F_N(f,p)}T &=& + 2 f \ln \left( \frac Ld \right) + +M\frac{1-f}{N\kappa }\frac{\mu _c}T + +Mfp\left[ \ln \left( \frac{N\nu}{v_b}\right) + -\frac \epsilon T\right] + +fM\left[ p\ln p+(1-p)\ln (1-p)\right] \nonumber\\ +&& + +f\ln \left( \frac fe\right) + +M\frac{\left( 1-f-f\kappa Np\right) }{ N\kappa } + \ln \left( \frac{1-f-f\kappa Np}e\right) +\lbl{eq12} +\end{eqnarray} +% +% +The probability of bonding in both phases can be found from the minimization +of the corresponding free energies +% +\be{eq13} +\frac{\dd F_I}{\dd p}=0; +\quad +\frac{\dd F_N}{\dd p}=0 +\ee +% +and is given by ($N^* \equiv N \nu / v_b$) +% +\be{eq14} +p= \frac{1}{2\kappa Nf} +\left[ + 1-f+\kappa Nf-\epsilon /(TN^{*})- + \sqrt{ + \left(1-f+\kappa Nf-\epsilon /(TN^{*}) \right) ^2 + -4\kappa Nf(1-f) + } +\right] +\ee +for the nematic phase and for the isotropic phase when $p<\frac 1{\kappa N}$. +%Here $N^{*}\equiv N\nu/v_b.$ +For $p>\frac 1{\kappa N}$ the probability of +bonding in the isotropic phase obeys +% +\be{eq15} + \ln + \left[ + \frac{ pN^{*}e^{-\epsilon /T} } + { \left( 1-p\right) \left(1-f_I-f_I\kappa Np\right) } + \right] + +\frac{3\kappa d^2p}{16a^2}\ln \left( \kappa Npe\right) + = 0 +\ee +% +and for a small volume fraction of rods, $f_I \ll 1$, is approximately given by +% +\be{eq24} +p \simeq \frac 1{ 1 + N^{*} e^{-\epsilon^{*}/T}}, +\quad +\epsilon ^{*} = \epsilon - + \frac{3\kappa d^2T}{32a^2} \, + \frac{1}{1+N^{*}e^{-\epsilon /T}} + \ln \left( \frac{\kappa N}{1+N^{*} e^{-\epsilon /T}} \right) +\ee +% +Phase equilibrium between the isotropic and nematic phases can be found in a +standard way from the equilibrium equations +% +\begin{eqnarray} +\frac{\dd F_I}{\dd f_I} &=& \frac{\dd F_N}{\dd f_N} +\nonumber \\ +f_I\frac{\dd F_I}{\dd f_I}-F_I &=& f_N\frac{\dd F_N}{\dd f_N}-F_N +\lbl{eq16} +\end{eqnarray} +using eqs.~\ref{eq11},\ref{eq12} together with \reff{eq14} and \reff{eq24}. +When the probability of bonding in the +isotropic phase $p_I<\frac 1{\kappa N}$ +(or equivalently $\frac{\epsilon}{T} < \ln \frac{\nu}{\kappa v_b}$), +expression \reff{eq14} can be used giving the volume fraction of rods +% +\begin{eqnarray} +f_N & \simeq & 1, + \nonumber\\ +f_I & \simeq & + \left( \frac Ld \right) ^2 + \exp + \left( + -\frac{2L}{d} + \left( \frac wT+s\right) + +\frac M{1+N^{*}e^{-\epsilon /T}} + \left( \frac \epsilon T-\ln N^{*}\right) + \right) \ll 1 +\lbl{eq17} +\end{eqnarray} +% +However, if +$p_I>\frac 1{\kappa N}$ +(or $\frac \epsilon T>\ln \frac \nu{\kappa v_b}$), +the volume fraction of rods in the nematic phase +is still close to the unity whereas $f_I$ obeys the equation +% +\be{eq18} +\ln f_I +- Mp_I \ln \left( 1-f_I-f_I\kappa Np_I \right) +\simeq +2 \ln \left( \frac L d\right) ++ \frac M{N\kappa} - \frac{2Ls}{d} +-Mp_I\ln N^{*} ++\frac{1}{T} \left( Mp_I\epsilon -\frac{2Lw}d \right) +\ee +where $p_I$ has to be determined from \reff{eq15}. +Obviously, for $T \to 0$ $p_I \to 1$ and therefore the last term +in eq.\ref{eq17} becomes dominant. Depending on its sign two +characteristical assymptotics can be distinguished +% +\begin{eqnarray} +f_I \to 0 \qquad\qquad\textrm{if }\quad M\epsilon <\frac{2Lw}d +\nonumber\\ +f_I \to \frac 1{1+N\kappa } \quad\textrm{if }\quad M\epsilon >\frac{2Lw}d +\label{eq19} +\end{eqnarray} +Thus for $\epsilon /w>2b/d$ rods and coils become partially compartible. +This fact has a clear physical meaning. Negative sign of +$-\epsilon + \frac{2Lw}{Md}$ corresponds to the negative ``total'' energy +($\epsilon$-part plus $\gamma$-part) +due to attaching of a coil to a rod, i.e. making it favorable to keep +\emph{all} coils bonded (for $T\to 0$, of course). +Further on we consider only the case $\epsilon /w>2b/d$, +where a region of compatibility of rods and coils exists. + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{Phase equilibria between nematic, isotropic liquid and microphases} + +There are two mechanisms of attraction between hairy rods, namely due to +incompartibility of the rods and coils and due to nonhomogeneous +distribution of the free polymer coils which is created by the hairy rods. +These mechanisms ultimately result in formation hexagonal and lamellar +structures in the blend. Moreover we can separate two different hexagonal +phases. In one of the phases (we call it H1) the mechanism connected with +nonhomogeneous distribution of the free polymers is dominant and the +''cylinders'' contain only one rod per unit cell $(Q=1)$. In the second +phase (H2) the surface term becomes important so that rods attract each +other and the cylinders contain $Q>1$ rods per unit cell (fig.2FIGURE). With +decreasing temperature the cylinders first adopts elipsoidal form and +finally transform to the lamellar phase. + +\subsection{Separation of the hexagonal phase H1} + +Let us start with calculation of the interaction energy between the +cylinders in the hexoganal phases (H1, H2). It is connected with +nonhomogeneous distribution of the free polymer coils and is given by (per +cylinder of unit length) + +\be{eq20} +U_H(Q)= +\frac{N\nu(Qp)^2}{2b} +\left[ + \frac 2{\sqrt{3} \, \ell ^2} + \sum_{\{ \vb \}} + \frac{h^2(\frac{a^2N{\vk}^2}6)}{g(\frac{a^2N{\vk}^2}6)} + -\frac 1{4\pi ^2} + \int d{\vk}\frac{h^2(\frac{a^2N{\vk}^2}6)}{g(\frac{a^2N{\vk}^2}6)} +\right] +\ee +where $\ell $ is the period of the structure, $\{ \vb \}$ are the vectors +of the reciprocal lattice, +$$h(u) =\frac 1u\left( 1-e^{-u}\right) $$ +$$g(u) =\frac 2{u^2}\left( u-1+e^{-u}\right)$$ + +After calculation of the sum and integral in eq.\ref{eq20} we find the +interaction energy per volume $(\pi /4)Ld^2$ + +\be{eq21} +U_H(Q)=-\frac 3{32}\frac{\kappa MQp^2fd^2}{a^2N} + \left[ + 3.457 + +\ln \left( \frac{a^2Nf}{Qd^2}\right) + \right] +\ee +Thus the free energy of H1 phase is given by +% +\begin{eqnarray} +\frac{F_{H1}}T &=& + f\frac{2L}{d} \left( \frac wT+s\right) +- Mfp\left[ \frac \epsilon T - \ln N^{*} \right] ++ fM\left[ p\ln p+(1-p)\ln (1-p) \right] ++ 2f\ln \left( \frac Ld \right) +\nonumber \\ +&& ++ M\frac{\left( 1-f-f\kappa Np\right) }{N\kappa } + \ln \left( \frac{1-f-f\kappa Np}e\right) ++ f\frac{3\kappa d^2}{32a^2}Mp^2\ln \left( \kappa Np\right) +\nonumber \\ +&& +- \frac{3}{32} \frac{\kappa Mp^2fd^2}{a^2N} + \left[ 3.457+\ln \left( \frac{a^2Nf}{d^2}\right) \right] +\lbl{eq22} +\end{eqnarray} +Here we approximated the loss of the orientational energy of rod by the term +$2Tf\ln \left( \frac Ld\right) $, and omitted the loss of it translational +entropy because it is relatively small. Phase equilibrium between isotropic +phase and H1 phase can be found from the equilibrium equations +% +\begin{eqnarray} + \frac{\dd F_I}{\dd f_I} =\frac{\dd F_{H1}}{\dd f_{H1}}, + &\quad& + \frac{\dd F_I}{\dd p_I}=\frac{\dd F_{H1}}{\dd p_{H1}}=0 +\nonumber\\ + f_I\frac{\dd F_I}{\dd f_I}-F_I + &=& + f_{H1}\frac{\dd F_{H1}}{\dd f_{H1}}-F_{H1} +\lbl{eq23} +\end{eqnarray} +and the probability of bonding and the binodal lines are +% +\begin{eqnarray} + & p_1 \simeq & p_{H1}\simeq 1, +\nonumber \\ + & f_{H1}^{(1)} \simeq & \frac 3{16}\frac{d^2}{a^2 N}, +\nonumber \\ + & f_I \simeq & + \left( \frac Ld\right) ^2 + \exp \left( -\frac 3{16}\frac{d^2p^2\kappa M}{a^2}\right) \simeq 0 +\lbl{eq26} +\end{eqnarray} + +Similarly the phase equilibrium between the nematic and H1 phases follow +from equations +% +\begin{eqnarray} + \frac{\dd F_N}{\dd f_N} =\frac{\dd F_{H1}}{\dd f_{H1}}, + &\quad& + \frac{\dd F_N}{\dd p_N}=\frac{\dd F_{H1}}{\dd p_{H1}}=0 +\nonumber\\ + f_N\frac{\dd F_N}{\dd f_N}-F_N + &=& + f_{H1}\frac{\dd F_{H1}}{\dd f_{H1}}-F_{H1} +\lbl{eq25} +\end{eqnarray} +% +and solution is given by +% +\begin{eqnarray} +& p_N \simeq &0, \quad p_{H1}\simeq 1, \nonumber \\ +& f_N \simeq &1, \nonumber\\ +& f_{H1}^{(2)} \simeq &\frac 1{1+\kappa N} + \left[ + 1-\exp + \left( + -\frac{\epsilon}{T} + +\frac{2bw}{Td} + +\frac{2bs}d+\ln N^{*} + +\frac{3\kappa d^2}{32a^2}\ln \left( \kappa N\right) + \right) + \right] +\lbl{eq251} +\end{eqnarray} +The critical temperature $(\epsilon /T)_c$ can be obtained from the +intersection of the curves $f_{H1}^{(1)}$ and $f_{H1}^{(2)}$, and obeys the +following equation +% +\be{eq27} +(\epsilon /T)_c = + \frac{1}{1-\frac{2bw}{\epsilon d}} + \left( \frac{2bs}d+\ln + N^{*}+\frac{3\kappa d^2}{32a^2} \ln \left( \kappa N \right) + \right) +\ee +where the probability of bonding $p_c\simeq 1.$ Thus the hexagonal H1 phase +is stable for $f_{H1}^{(1)}<f<f_{H1}^{(2)}$; for $f_I<f<f_{H1}^{(1)}$ the +system separates on the isotropic and H1 phase and for $f_{H1}^{(1)}<f<f_N$ +it separates on the H1 and nematic phase. + +\subsection{Separation of the hexagonal phase H2} + +Let us follow along the binodal line $f_{H1}^{(1)}(T)$ decreasing the +temperature. At some temperature H1 phase becomes unstable with respect to +separation of the isotropic phase and the hexagonal H2 phase. The +corresponding triple point can be obtained from the system of equations + +\begin{eqnarray} +\frac{\dd F_I}{\dd f_I} +=\frac{\dd F_{H1}}{\dd f_{H1}} +=\frac{\dd F_{H2}}{\dd f_{H2}} \, , +\qquad +\frac{\dd F_I}{\dd p_I} +=\frac{\dd F_{H1}}{\dd p_{H1}} +=\frac{\dd F_{H2}}{\dd p_{H2}} +=0 +\nonumber \\ +f_I\frac{\dd F_I}{\dd f_I}-F_I +=f_{H1}\frac{\dd F_{H1}}{\dd f_{H1}}-F_{H1} +=f_{H2}\frac{\dd F_{H2}}{\dd f_{H2}}-F_{H2} +\lbl{eq23a} +\end{eqnarray} +% +where the free energy of the H2 phase for $Q<\sqrt{N}$ is given by +% +\begin{eqnarray} +\frac{F_{H2}}T +&=& + f\frac Ld\left( \frac wT+s\right) \left( 1+\frac 2Q\right) + +Mfp\left[ \ln N^{*}-\frac \epsilon T\right] + +fM\left[ p\ln p+(1-p)\ln (1-p)\right] +\nonumber \\ +&& + +2f\ln \left( \frac Ld\right) + +M\frac{\left( 1-f-f\kappa Np\right) }{\kappa N} + \ln \left( \frac{1-f-f\kappa Np}e\right) + +f\frac{3d^2\kappa Q}{32a^2}Mp^2\ln \left( \kappa Np\right) +\nonumber \\ +&& + -\frac 3{32}\frac{\kappa MQp^2fd^2}{a^2N} + \left[ 3.457+\ln \left( \frac{a^2Nf}{Qd^2}\right) \right] +\lbl{eq28} +\end{eqnarray} +and the number of rods $Q$ in the cross-section of the cylinder can be +calculated from the minimum condition $\dd F_{H2}/\dd Q=0$, +% +\be{eq28a} +Q \simeq +\sqrt{ + \frac{64ba^2}{3\kappa p^2d^3 \ln \left( \kappa N \right) } + \left( \frac wT+s \right) +} +\ee +Solution of the eqs.~\ref{eq23a} is given by +% +\begin{eqnarray} +&& p_I \simeq p_{H1} \simeq p_{H2}\simeq 1 \nonumber \\ +&& Q_1 \simeq 2+\sqrt{2}, +\quad +f_I\simeq 0, +\quad +f_{H1}^{(1)} \simeq \frac 3{16} \frac{d^2}{a^2N}, +\quad +f_{H2}^{(1)} \simeq \frac 3{16}\frac{Q_1d^2}{a^2N} +\lbl{eq28b} +\end{eqnarray} +and the critical temperature is + +\be{eq23e} +\frac w{T_{c1}} \simeq -s+\frac{3\kappa d^3 Q_1^2}{64 b a^2} + \ln \left( \kappa N \right) +\ee + +Similarly we the binodal line $f_{H1}^{(1)}(T)$ finishes at the triple point +which can be found from the system of equations + +\begin{eqnarray} +&&\frac{\dd F_N}{\dd f_N} = +\frac{\dd F_{H1}}{\dd f_{H1}} = +\frac{\dd F_{H2}}{\dd f_{H2}}, +\quad +\frac{\dd F_N}{\dd p_N} = +\frac{\dd F_{H1}}{\dd p_{H1}} = +\frac{\dd F_{H2}}{\dd p_{H2}} =0 +\nonumber \\ +&&f_N\frac{\dd F_N}{\dd f_N}-F_N = +f_{H1}\frac{\dd F_{H1}}{\dd f_{H1}}-F_{H1}= +f_{H2}\frac{\dd F_{H2}}{\dd f_{H2}}-F_{H2} +\lbl{eq23c} +\end{eqnarray} +% +and is characterized by +% +\begin{eqnarray} +&& +p_N \simeq 0, +\quad +p_{H1} \simeq p_{H2} \simeq 1 +\nonumber\\ +&& +Q_1^{^{\prime }} \simeq Q_1\simeq 2+\sqrt{2}, \quad f_N \simeq 1, +\nonumber \\ +&& +f_{H1}^{(2)}\simeq \frac 1{1+\kappa N}\left[ 1-\exp \left( -\frac \epsilon {% +T_{c1}}+\frac{2bw}{T_{c1}d}+\frac{2bs}d+\ln N^{*}+\frac{3d^2\kappa }{32a^2}% +\ln \left( \kappa N\right) \right) \right] +\nonumber\\ +&& +f_{H2}^{(2)}\simeq \frac 1{1+\kappa N}\left[ 1-\exp \left( -\frac \epsilon {% +T_{c1}}+\left( \frac{2bw}{T_{c1}d}+\frac{2bs}d\right) \left( 1+\frac 2{Q_1}% +\right) +\ln N^{*}+\frac{3d^2\kappa Q_1}{32a^2}\ln \left( \kappa N\right) +\right) \right] +% +\lbl{eq23d} +\end{eqnarray} + +In the first approximation the corresponding critical temperature coinside +with the critical temperature \reff{eq23e}. Note, the small difference +between these critical temperatures, which we do not consider here, result +in a small area of phase separation between H1 and H2 phases. + +The phase equilibrium between the isotropic and the hexagonal H2 phase can +be found based on the equations +% +\begin{eqnarray} +&& + \frac{\dd F_I}{\dd f_I} =\frac{\dd F_{H2}}{\dd f_{H2}}, + \quad + \frac{\dd F_I}{\dd p_I} = \frac{\dd F_{H2}}{\dd p_{H2}} =0 +\nonumber\\ +&& + f_I\frac{\dd F_I}{\dd f_I}-F_I = f_{H2}\frac{\dd F_{H2}}{\dd f_{H2}}-F_{H2} +\lbl{eq231} +\end{eqnarray} +and for $1\ll Q<\sqrt{N\text{ }}$ the probability of bonding and the binodal +lines are given by + +\begin{eqnarray} + && p_I \simeq p_{H2}\simeq 1, +\nonumber\\ + && f_I \simeq 0,\quad +\nonumber \\ + && f_{H2}^{(1)} \simeq + \frac 1{1+\kappa N} + \left[ + 1-\exp \left( -\frac 3{16}\frac{Qd^2}{a^2N}\right) + \right] +\lbl{eq28b1} +\end{eqnarray} +% +where $Q$ defined by \reff{eq28a}. Similarly the equilibrium between the +nematic and the hexagonal H2 phase obeys equations +% +\begin{eqnarray} +&& + \frac{\dd F_N}{\dd f_N} = \frac{\dd F_{H2}}{\dd f_{H2}}, + \quad + \frac{\dd F_N}{\dd p_N} = \frac{\dd F_{H2}}{\dd p_{H2}}=0 +\nonumber \\ +&& + f_N\frac{\dd F_N}{\dd f_N}-F_N = f_{H2}\frac{\dd F_{H2}}{\dd f_{H2}}-F_{H2} +\lbl{eq232} +\end{eqnarray} +and the corresponding probabilities and binodals are +% +\begin{eqnarray} +&& + p_N \simeq 0,\quad p_{H2}\simeq 1, +\nonumber \\ +&& + f_N \simeq 1, +\nonumber \\ +&& + f_{H2}^{(2)} \simeq \frac 1{1+\kappa N} + \left[ + 1-\exp \left( -\frac{\epsilon}{T} + +\left( \frac{2bw}{Td}+\frac{2bs}d \right) \left( 1+\frac{2}{Q} \right) + +\ln N^{*}+\frac{3d^2\kappa Q}{32a^2} \ln \left( \kappa N\right) \right) + \right] +\lbl{eq28b21} +\end{eqnarray} + +With further decreasing temperature the number of rods in the cross-section $% +Q$ becomes larger than $\sqrt{N}$ and the cylinders become elongated in one +direction. + +\subsection{Separation of the lamellar phase} + +The free energy of the lamellar phase is +% +\begin{eqnarray} +\frac{F_L}T &=& + f\frac Ld\left( \frac wT+s\right) + +Mfp\left[ \ln N^{*}-\frac \epsilon T\right] + +fM\left[ p\ln p+(1-p)\ln (1-p)\right] +\nonumber \\ +&& + +2f\ln \left( \frac Ld\right) + +M\frac{\left( 1-f-f\kappa Np\right) }{\kappa N} + \ln \left( \frac{2h^{*}}\xi \frac{1-f-f\kappa Np}e\right) + +f\frac{ 3\pi ^2d^2\kappa ^2}{32a^2}NMp^3 +\nonumber \\ +&& + -0.227f^{*}M \left( \frac{p^2a^2}{\kappa ^2d^2N}\right) ^{1/3} + -1.312M \frac{(f-f^{*})}{f^{*}} + \left( \frac{p^2d^2}{\kappa a^2N^2}\right) ^{1/3} +% +\lbl{eq29} +\end{eqnarray} +where +% +$$ +h^{*}=\frac{\pi d}2\left( 1+\kappa Np \right) ; +\quad +\xi =\frac a{6\pi } \left( \frac{aN}{\kappa pd}\right) ^{1/3} +$$ +% +The phase equilibrium between the isotropic and the lamellar phase can be +found from the equations +% +\begin{eqnarray} +&& + \frac{\dd F_I}{\dd f_I} =\frac{\dd F_L}{\dd f_L}, + \quad + \frac{\dd F_I}{\dd p_I}=\frac{\dd F_L}{\dd p_L} +\nonumber \\ +&& + f_I\frac{\dd F_I}{\dd f_I}-F_I = f_L\frac{\dd F_L}{\dd f_L}-F_L +\lbl{eq2311} +\end{eqnarray} +and the probability of bonding and the binodals are given by +% +\begin{eqnarray} +&& + p_I \simeq p_L\simeq 1, +\nonumber\\ +&& + f_I \simeq 0, +\nonumber \\ +&& + f_L^{(1)} \simeq \frac{1}{1+\kappa N} + \left[ + 1-\frac \xi {2h^{*}} + \exp \left( -1.312\left( \frac{\kappa ^2d^2N}{a^2}\right) ^{1/3}\right) + \right] +\label{eq28b2} +\end{eqnarray} +Similarly the equilibrium between the nematic and the lamellar phase obeys +equations +% +\begin{eqnarray} +&& + \frac{\dd F_N}{\dd f_N} = \frac{\dd F_L}{\dd f_L}, + \quad + \frac{\dd F_N}{\dd p_N} = \frac{\dd F_L}{\dd p_L} +\nonumber \\ +&& + f_N \frac{\dd F_N}{\dd f_N}-F_N = f_L\frac{\dd F_L}{\dd f_L}-F_L +\lbl{eq2321} +\end{eqnarray} +and the corresponding probabilities and binodals are +% +\begin{eqnarray} +&& + p_N \simeq 0, + \quad + p_L\simeq 1, +\nonumber\\ +&& + f_N \simeq 1, + \quad +\nonumber \\ +&& + f_L^{(2)} \simeq \frac{1}{1+\kappa N} + \left[ + 1-\exp \left( -\frac \epsilon T + +\frac{2bw}{Td}+\frac{2bs}d+\ln N^{*} + +\frac{3\pi ^2d^2\kappa ^2N}{32a^2}\right) + \right] +\lbl{eq28b3} +\end{eqnarray} + +\section{Discussion} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpage +{\bf Literature} + + +Relevant literature + +\cite{SemenovKhokhlov,SemenovRubinstein1,Erukhimovich:Gel} + +\cite{AndrikopoulosVlassopoulosVoyiatzis,Benmouna} + +\cite{KhalaturKhokhlov1,KhalaturKhokhlov2} + +\cite{SemenovNyrkovaKhokhlov,3dFlex} + +\cite{Angerman:PhaseAssocDiblock,Dormidontova:PhaseHbondBrush} + +Theory: + +\cite{Ballauff:CompatHairyRodsCoils,Ballauff:PhaseHairyRodsCoils} + +Lattice: + +\cite{SemenovBlockHomo,Leibler,bookChaikinLubensky,bookKorn} + + +Hairy rods: + +Experiment: + +\cite{SteuerRehahnBallauff,AdamSpiess,SteuerHorthBallauff} + +\cite{GaldaKistnerMartinBallauff,PetekidisVlassopoulosFytas2} + +\cite{PetekidisVlassopoulosFytas1} + + +\begin{references} + +\end{references} + +\end{document} diff --git a/support/biblio/EXAMPLES/hairy/libtex b/support/biblio/EXAMPLES/hairy/libtex new file mode 100755 index 0000000000..54db38c841 --- /dev/null +++ b/support/biblio/EXAMPLES/hairy/libtex @@ -0,0 +1,51 @@ +PREFIX="../../" +VLEVEL="1" #verbosity level +PROJECT="hairy" +REFS=refers.db +# FORMATS=$PREFIX"formats/physreve_with_title" +FORMATS=$PREFIX"formats/macromolecules" +ABBR=$PREFIX"formats/abbr.tex" + +SUFFIX=".1" + +BIBLIO=$PREFIX"biblio.pl" +LATEX="latex" +DVIPS="dvips" +PSTOPS="pstops" + +RM="rm -f" + +OUTTEX="$PROJECT$SUFFIX.tex" +OUTDVI="$PROJECT$SUFFIX.dvi" +TEXFILE="$PROJECT.tex" +DVIFILE="$PROJECT.dvi" +PSFILE="$PROJECT.ps" +PS2FILE="$PROJECT.2.ps" + +echo $OUTTEX + +$RM $PSFILE $PS2FILE $OUTDVI $PROJECT$SUFFIX.aux 2> /dev/null + +$BIBLIO -v $VLEVEL -o $OUTTEX -d $REFS -f $FORMATS -a $ABBR --movepoint --nobibitem --uselist $TEXFILE +# $BIBLIO -v $VLEVEL -o $OUTTEX -d $REFS -f $FORMATS -a $ABBR $TEXFILE +$LATEX $OUTTEX +$LATEX $OUTTEX + +if [ -e $OUTDVI ] +then + mv $OUTDVI $DVIFILE +else + echo File $OUTDVI not found!!! +fi + +if [ -e $DVIFILE ] +then + echo MAKING POSTSCRIPT + touch $DVIFILE + $DVIPS -o $PSFILE $DVIFILE + $PSTOPS "2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)" $PSFILE $PS2FILE +else + echo NO DVI FILE FOUND +fi + +$RM *.log *~ 2> /dev/null diff --git a/support/biblio/EXAMPLES/hairy/refers.db b/support/biblio/EXAMPLES/hairy/refers.db new file mode 100644 index 0000000000..509a339644 --- /dev/null +++ b/support/biblio/EXAMPLES/hairy/refers.db @@ -0,0 +1,1948 @@ +%LABEL = SuccesvolSolliciteren +%TYPE = book +%AUTHORP = +%AUTHORL = Wams +%AUTHORF = Bert +%TITLE = Succesvol Solliciteren! (Het sollicitatiestandaardwerk voor Nederland. Alles over het gehele sollicitatieproces.) +%PAGES = 240 +%PUBL = SIWU +%PLACE = Enschede +%YEAR = 2001 +%---------- +LABEL = bookKorn +TYPE = book +AUTHORL = Korn|Korn +AUTHORF = G. |Th. +AUTHORM = A. |M. +TITLE = Mathematical handbook for scientists and engineers : definitions, theorems, and formulas for reference and review +PAGES = 1130 +PUBL = McGraw-Hill Book Co +PLACE = New York +YEAR = 1968 +---------- +LABEL = bookChaikinLubensky +TYPE = book +AUTHORP = +AUTHORL = Chaikin|Lubensky +AUTHORF = P.|T. +AUTHORM = M.|C. +TITLE = Principles of condensed matter physics +PAGES = 700 +PUBL = Cambridge Univ. Press +PLACE = Cambridge +YEAR = 1995 +---------- +LABEL = bookSpinGlassTheory +TYPE = book +AUTHORP = +AUTHORL = Mezard|Parisi|Virasoro +AUTHORF = M.|G.|M. +AUTHORM = | |A. +TITLE = Spin Glass Theory and Beyond +PAGES = +PUBL = World Scientific Publishing Co Pte Ltd +PLACE = Singapore +YEAR = 1987 +---------- +LABEL = Brinke4 +TYPE = edbook +AUTHORP = |ten +AUTHORL = Ikkala|Brinke +AUTHORF = O.|G. +BOOKTITLE= Handbook of Advanced Electronic and Photonic Materials and Devices, Part 8 Conducting Polymers +AUTHORI = +AUTHORE = Nalwa +AUTHORG = Hari +AUTHORH = Singh +PAGE = 185 +PUBL = Academic Press +PLACE = +YEAR = 2000 +---------- +LABEL = AbeBallauff +TYPE = edbook +AUTHORL = Abe|Ballauff +AUTHORF = A.|M. +BOOKTITLE= Liquid Crystallinity in Polymers, Chapter 4 The Flory Lattice Model +%%%: Principles and Fundamental Properties +AUTHORI = +AUTHORE = Ciferri +AUTHORG = A. +AUTHORH = +PAGE = 131 +EPAGE = 167 +PUBL = VCH Publishers +PLACE = New York +YEAR = 1991 +---------- +LABEL = KhokhlovTBOA +TYPE = edbook +AUTHORL = Khokhlov +AUTHORF = A. +AUTHORM = R. +BOOKTITLE= Liquid Crystallinity in Polymers, Chapter 3 Theories Based on the Onsager Approach +%%%: Principles and Fundamental Properties +AUTHORI = +AUTHORE = Ciferri +AUTHORG = A. +AUTHORH = +PAGE = 97 +EPAGE = 129 +PUBL = VCH Publishers +PLACE = New York +YEAR = 1991 +---------- +LABEL = bookMcArdle +TYPE = edbook +AUTHORL = Warner +AUTHORF = M +AUTHORM = +TITLE = +BOOKTITLE= Side Chain Liquid Crystal Polymers +AUTHORI = +AUTHORE = McArdle +AUTHORG = C. +AUTHORH = B. +PUBL = Blackie +PLACE = Glasgow and London +YEAR = 1989 +---------- +LABEL = bookdeGennesLiqCryst +TYPE = book +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +TITLE = The Physics of Liquid Crystals +PUBL = Clarendon Press +PLACE = Oxford +YEAR = 1974 +---------- +LABEL = bookdeGennesScalingConcepts +TYPE = book +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +TITLE = Scaling Concepts in Polymer Physics +PUBL = Cornell University Press +PLACE = Ithaca +YEAR = 1985 +---------- +LABEL = bookPlate +TYPE = book +AUTHORL = Plate|Shibaev +AUTHORF = N. |V. +AUTHORM = A. |P. +TITLE = Comb-Shaped Polymers and Liquid Crystals +PUBL = Plenum Press +PLACE = New York and London +YEAR = 1987 +---------- +LABEL = GrosKhokh +TYPE = book +AUTHORL = Grosberg|Khokhlov +AUTHORF = A. |A. +AUTHORM = Yu. |R. +TITLE = Statistical Physics of \mml +PUBL = American Institute of Physics +PLACE = New York +YEAR = 1994 +---------- +LABEL = Landau +TYPE = book +AUTHORL = Landau|Lifshits +AUTHORF = L |E. +AUTHORM = D. |M. +TITLE = Statistical Physics +PUBL = Pergamon +PLACE = Oxford +YEAR = 1980 +---------- +LABEL = bookLipatovNesterov +TYPE = book +AUTHORL = Lipatov|Nesterov +AUTHORF = Y. |A. +AUTHORM = S. |E. +TITLE = Thermodynamics of Polymer Blends +PUBL = Technomic +PLACE = Lancaster, Basel +YEAR = 1997 +---------- +LABEL = bookCloizeaux +TYPE = book +AUTHORP = des +AUTHORL = Cloizeaux|Jannink +AUTHORF = J. |G. +TITLE = Polymers in Solutions: Their modelling and Structure +PUBL = Clarendon Press +PLACE = Oxford +YEAR = 1990 +---------- +LABEL = LifshitzGrosbergKhokhlov1 +TYPE = article +AUTHORL = Lifshitz|Grosberg|Khokhlov +AUTHORF = I. |A. |A. +AUTHORM = M. |Yu. |R. +JOURNAL = \rmp +VOL = 50 +PAGE = 683 +EPAGE = 713 +YEAR = 1978 +TITLE = Some problems of the statistical physics of polymer chains with volume interaction +URL = RevModPhys_LifshitsGrosbergKhokhlov1978.pdf +---------- +LABEL = Vasilevskaya +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Vasilevskaya|Klochkov|Khalatur|Khokhlov|Brinke +AUTHORF = V. |A. |P. |A. |G. +AUTHORM = V. |A. |G. |R. | +TITLE = Microphase separation within comb-like copolymer with attractive side-chains: computer simulations +JOURNAL = \mts +VOL = 10 +PAGE = 389 +EPAGE = 394 +YEAR = 2001 +URL = vasilevskaya_attractive.pdf +---------- +LABEL = Helfand1 +TYPE = article +AUTHORL = Helfand|Wasserman +AUTHORF = E. |Z. +AUTHORM = |R. +TITLE = +JOURNAL = \mml +VOL = 9 +PAGE = 879 +YEAR = 1976 +---------- +LABEL = Tsukahara0 +TYPE = edbook +AUTHORL = Tsukahara +AUTHORF = Y. +BOOKTITLE=Macromolecular Design: Concept and Practice +AUTHORI = +AUTHORE = Mishra +AUTHORG = M. +AUTHORH = +PAGE = 161 +EPAGE = 227 +PUBL = Polymer Frontiers International Inc. +PLACE = New York +YEAR = 1993 +---------- +LABEL = Schmidt +TYPE = article +AUTHORL = Tsukahara|Tsutsumi|Yamashita|Shimada +AUTHORF = Y. |K. |S. |S. +TITLE = +JOURNAL = \mml +VOL = 23 +PAGE = 5201 +YEAR = 1990 +---------- +LABEL = Tsukahara2 +TYPE = article +AUTHORL = Tsukahara|Mizuno|Segawa|Yamashita +AUTHORF = Y. |K. |A. |Y. +TITLE = +JOURNAL = \mml +VOL = 22 +PAGE = 1546 +EPAGE = 1552 +YEAR = 1989 +---------- +LABEL = Tsukahara3 +TYPE = article +AUTHORL = Tsukahara|Tsutsumi|Yamashita +AUTHORF = Y. |K. |Y. +TITLE = +JOURNAL = \mml +VOL = 22 +PAGE = 2869 +EPAGE = 2871 +YEAR = 1989 +---------- +LABEL = Ballauff +TYPE = article +AUTHORL = Ballauff +AUTHORF = M. +AUTHORM = +TITLE = +JOURNAL = \ang +VOL = 28 +PAGE = 253 +YEAR = 1989 +---------- +LABEL = Antonietti +TYPE = article +AUTHORL = Antonietti|Henke|Th\"unemann +AUTHORF = M. |S. |A. +AUTHORM = | |F. +TITLE = Highly Ordered Materials with Ultra-Low Surface Energies. Polyelectrolyte-Surfactant Complexes with Fluorinated Surfactants +JOURNAL = \advm +VOL = 8 +PAGE = 45 +YEAR = 1996 +---------- +LABEL = Thunemann +TYPE = article +AUTHORL = Th\"unemann|Lochaas +AUTHORF = A. |K. +AUTHORM = F. |H. +TITLE = PHYSISORPTION, INTERFACIAL FILMS, MEMBRANES - Self-Assembly of Perfluorodecanoic Acid with Cationic Copolymers: Ultra-Low Energy Surfaces and Mesomorphous Structures +JOURNAL = \lang +VOL = 14 +PAGE = 4898 +EPAGE = 4903 +YEAR = 1998 +---------- +LABEL = Semenov +TYPE = article +AUTHORL = Semenov +AUTHORF = A. +TITLE = Contribution to the theory of microphase layering in block-copolymer melts. +JOURNAL = \jetp +PAGE = 733 +YEAR = 1985 +VOL = 61 +---------- +LABEL = LikhtmanSemenov +TYPE = article +AUTHORL = Likhtman|Semenov +AUTHORF = A.|A. +AUTHORM = E.|N. +JOURNAL = \mml +PAGE = 7273 +EPAGE = 7278 +YEAR = 1997 +VOL = 30 +TITLE = Theory of Microphase Separation in Block Copolymer/Homopolymer Mixtures +URL = ma9702713.pdf +---------- +LABEL = RubinsteinSemenov +TYPE = article +AUTHORL = Rubinstein|Semenov +AUTHORF = M.|A. +AUTHORM = |N. +JOURNAL = \mml +PAGE = 1058 +EPAGE = 1068 +YEAR = 2001 +VOL = 34 +TITLE = Dynamics of Entangled Solutions of Associating Polymers +URL = ma0013049.pdf +---------- +LABEL = Floudas +TYPE = article +AUTHORL = Floudas|Hadjichristidis|Stamm|Likhtman|Semenov +AUTHORF = G. |N. |M. |A. |A. +AUTHORM = | | |E. |N. +JOURNAL = \jcp +PAGE = 3318 +EPAGE = 3328 +YEAR = 1997 +VOL = 106 +TITLE = Microphase separation in block copolymer-homopolymer blends: Theory and experiment +URL = JCP03318.pdf +---------- +LABEL = Leibler +TYPE = article +AUTHORL = Leibler +AUTHORF = L. +TITLE = Theory of Microphase Separation in Blok Copolymers +JOURNAL = \mml +PAGE = 1602 +YEAR = 1980 +VOL = 13 +---------- +LABEL = FredricksonHelfand +TYPE = article +AUTHORL = Fredrickson|Helfand +AUTHORF = G. |E. +AUTHORM = H. | +TITLE = +JOURNAL = \mml +PAGE = 697 +YEAR = 1987 +VOL = 87 +---------- +LABEL = Dobrynin1 +TYPE = article +AUTHORL = Dobrynin|Erukhimovich +AUTHORF = A.|I. +AUTHORM = V.|Y. +TITLE = Computer-aided comparative investigation of architecture influence of block copolymer phase diagrams +JOURNAL = \mml +PAGE = 276 +EPAGE = 281 +YEAR = 1993 +VOL = 26 +---------- +LABEL = Cruz1 +TYPE = article +AUTHORL = Olvera de la Cruz|Sanchez +AUTHORF = M. |I. +TITLE = +JOURNAL = \mml +PAGE = 2501 +YEAR = 1986 +VOL = 19 +---------- +LABEL = Foster1 +TYPE = article +AUTHORL = Foster|Jasnow|Balazs +AUTHORF = D. |D. |A. +AUTHORM = P. | |C. +TITLE = +JOURNAL = \mml +PAGE = 3450 +EPAGE = 3462 +YEAR = 1995 +VOL = 28 +TITLE = Macrophase and Microphase Separation in Random Comb Copolymers +---------- +LABEL = WernerFredrickson +TYPE = article +AUTHORL = Werner|Fredrickson +AUTHORF = A.|G. +AUTHORM = |H. +TITLE = Architectural Effects on the Stability Limits of $ABS$ Block Copolymers +JOURNAL = \jpsb +PAGE = 849 +EPAGE = 864 +YEAR = 1997 +VOL = 35 +URL = JPolimSciB_v35p849y1997.pdf +---------- +LABEL = Nap1 +TYPE = article +AUTHORP = | |ten +AUTHORL = Nap|Kok|Brinke|Kuchanov +AUTHORF = R. |C. |G. |S. +AUTHORM = J. | | |I. +TITLE = Microphase separation at two length scales +JOURNAL = \epje +PAGE = 515 +EPAGE = 519 +YEAR = 2001 +VOL = 4 +---------- +LABEL = Brinke1 +TYPE = article +AUTHORL = Ruokolainen|M\"akinen|Torkkeli|M\"akel\"a|Serimaa|Brinke|Ikkala +AUTHORP = | | | | |ten | +AUTHORF = J.|R.|M.|T.|R.|G.|O. +TITLE = Switching supramolecular polymeric materials with multiple length scales +JOURNAL = \science +PAGE = 557 +EPAGE = 560 +YEAR = 1998 +VOL = 280 +URL = mika/Brinke1.pdf +---------- +LABEL = Brinke2 +TYPE = article +AUTHORP = |de |de | | |ten | +AUTHORL = M\"akinen|Moel|Odorico|Ruokolainen|Stamm|Brinke|Ikkala +AUTHORF = R.|K.|W.|J.|M.|G.|O. +TITLE = Communications - "Hairy Tubes": Mesoporous Materials Containing Hollow Self-Organized Cylinders with Polymer Brushes at the Walls +JOURNAL = \advm +PAGE = 117 +EPAGE = 121 +YEAR = 2001 +VOL = 13 +URL = mika/Brinke2.pdf +---------- +LABEL = Brinke3 +TYPE = article +AUTHORL = Kosonen|Ruokolainen|Knaapila|Torkkeli|Jokela|Serimaa|Brinke|Bras|Monkman|Ikkala +AUTHORP = | | | | | |ten +AUTHORF = H.|J.|M.|M.|K.|R.|G.|W.|A.|O. +TITLE = Nanoscale Conducting Cylinders Based on Self-Organization of Hydrogen-Bonded Polyaniline Supramolecules +JOURNAL = \mml +PAGE = 8671 +EPAGE = 8675 +YEAR = 2000 +VOL = 33 +URL = mika/Brinke3.pdf +---------- +LABEL = 3dFlex +TYPE = article +AUTHORP = | | |ten +AUTHORL = Subbotin|Saariaho|Ikkala|Brinke +AUTHORF = A. |M. |O. |G. +TITLE = Elasticity of comb copolymer cylindrical brushes +JOURNAL = \mml +PAGE = 3447 +EPAGE = 3452 +YEAR = 2000 +VOL = 33 +URL = mika/3dFlex.pdf +---------- +LABEL = Birshtein +TYPE = article +AUTHORL = Birshtein|Borisov|Zhulina|Khokhlov|Yurasova +AUTHORF = T.|O.|Y.|A.|T. +AUTHORM = M.|V.|B.|R.|A. +TITLE = Conformations of comb-like macromolecules +JOURNAL = \polsciussr +PAGE = 1293 +EPAGE = 1300 +YEAR = 1987 +VOL = 29 +---------- +LABEL = Fredrickson +TYPE = article +AUTHORL = Fredrickson +AUTHORF = G +AUTHORM = H. +TITLE = Surfactant-induced lyotropic behavior of flexible polymer solutions +JOURNAL = \mml +PAGE = 2825 +YEAR = 1993 +VOL = 26 +---------- +LABEL = Rouault1 +TYPE = article +AUTHORL = Rouault|Borisov +AUTHORF = Y.|O. +AUTHORM = |V. +TITLE = Comb-Branched Polymers: Monte Carlo Simulation and Scaling +JOURNAL = \mml +PAGE = 2605 +EPAGE = 2611 +YEAR = 1996 +VOL = 29 +URL = Rouault1.pdf +---------- +LABEL = Rouault2 +TYPE = article +AUTHORL = Rouault +AUTHORF = Y. +AUTHORM = +TITLE = From comb polymers to polysoaps: A Monte Carlo attempt +JOURNAL = \mts +PAGE = 359 +EPAGE = 365 +YEAR = 1998 +VOL = 7 +URL = rouault_comb_copolymers_to_polysoaps.pdf +---------- +LABEL = Mika1 +TYPE = article +AUTHORP = | |ten +AUTHORL = Saariaho|Ikkala|Brinke +AUTHORF = M.|O.|G. +TITLE = Molecular bottle brushes in thin films: An off-lattice Monte Carlo study +JOURNAL = \jcp +PAGE = 1180 +EPAGE = 1187 +YEAR = 1999 +VOL = 110 +URL = mika/Mika1.pdf +---------- +LABEL = Mika2 +TYPE = article +AUTHORP = | | |ten +AUTHORL = Saariaho|Subbotin|Ikkala|Brinke +AUTHORF = M.|A.|O.|G. +TITLE = Comb copolymer cylindrical brushes containing semiflexible side chains: A Monte Carlo study +JOURNAL = \mrc +PAGE = 110 +EPAGE = 115 +YEAR = 2000 +VOL = 21 +URL = mika/Mika2.pdf +---------- +LABEL = Mika3 +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Saariaho|Subbotin|Szleifer|Ikkala|Brinke +AUTHORF = M.|A.|I.|O.|G. +TITLE = Effect of Side Chain Rigidity on the Elasticity of Comb Copolymer Cylindrical Brushes: A Monte Carlo Simulation Study +JOURNAL = \mml +PAGE = 4439 +EPAGE = 4443 +YEAR = 1999 +VOL = 32 +URL = mika/Mika3.pdf +---------- +LABEL = Mika4 +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Saariaho|Ikkala|Szleifer|Erukhimovich|Brinke +AUTHORF = M.|O.|I.|I.|G. +TITLE = On lyotropic behavior of molecular bottle-brushes: A Monte Carlo computer simulation study +JOURNAL = \jcp +PAGE = 3267 +EPAGE = 3276 +YEAR = 1997 +VOL = 107 +URL = mika/JCP03267.pdf +---------- +LABEL = Ball +TYPE = article +AUTHORL = Ball|Marko|Milner|Witten +AUTHORF = R.|J.|S.|T. +AUTHORM = C.|F.|T.|A. +JOURNAL = \mml +YEAR = 1991 +VOL = 24 +PAGE = 693 +---------- +LABEL = Lai +TYPE = article +AUTHORL = Lai|Witten +AUTHORF = H. |T. +AUTHORM = |A. +JOURNAL = \mml +YEAR = 1991 +VOL = 24 +PAGE = 693 +---------- +LABEL = Odijk +TYPE = article +AUTHORL = Odijk +AUTHORF = T. +AUTHORM = +JOURNAL = \jpsb +YEAR = 1977 +VOL = 15 +PAGE = 477 +---------- +LABEL = Odijk1 +TYPE = article +AUTHORL = Odijk +AUTHORF = T. +AUTHORM = +JOURNAL = \mml +YEAR = 1986 +VOL = 19 +PAGE = 2313 +EPAGE = 2329 +TITLE = Theory of Lyotropic Polymer Liquid Crystals +---------- +LABEL = Skolnick +TYPE = article +AUTHORL = Skolnick|Fixmann +AUTHORF = J.|M. +AUTHORM = +JOURNAL = \mml +YEAR = 1977 +VOL = 10 +PAGE = 944 +---------- +LABEL = Sheiko +TYPE = article +AUTHORL = Sheiko|Gerle|Fischer|Schmidt|M\"{o}ller +AUTHORF = S.|M.|F.|M.|M. +AUTHORM = S.| | | | +JOURNAL = \lang +YEAR = 1997 +VOL = 13 +PAGE = 5368 +EPAGE = 5372 +TITLE = Wormlike Polystyrene Brushes in Thin Films +---------- +LABEL = DziezokSheiko +TYPE = article +AUTHORP = +AUTHORL = Dziezok|Sheiko|Fischer|Schmidt|M\"oller +AUTHORF = P. |S. |K. |M. |M. +AUTHORM = |S +JOURNAL = \ang +YEAR = 1997 +VOL = 36 +PAGE = 2812 +EPAGE = 2815 +TITLE = +URL = +---------- +LABEL = Spirali +TYPE = article +AUTHORL = Khalatur|Khokhlov|Prokhorova|Sheiko|M\"oller|Reineker|Shirvanyanz|Starovoitova +AUTHORF = P.|A.|S.|S.|M.|P.|D.|N. +AUTHORM = G.|R.|A.|S.| | |G.| +JOURNAL = \epje +YEAR = 2000 +VOL = 1 +PAGE = 99 +EPAGE = 103 +TITLE = Unusual conformation of molecular cylindrical brushes strongly adsorbed on a flat solid surface +URL = Khalatur_EurPhysJ_E.pdf +---------- +LABEL = Potemkin +TYPE = article +AUTHORL = Potemkin|Khokhlov|Reineker +AUTHORF = I.|A.|P. +AUTHORM = I.|R.| +JOURNAL = \epje +YEAR = 2001 +VOL = 4 +PAGE = 93 +EPAGE = 101 +TITLE = Stiffness and conformations of molecular bottle-brushes strongly adsorbed on a flat surface +URL = potemkin_e0065.pdf +---------- +LABEL = 2dComb +TYPE = article +AUTHORP = | |ten +AUTHORL = Stepanyan|Subbotin|Brinke +AUTHORF = R.|A.|G. +JOURNAL = \pre +YEAR = 2001 +VOL = 63 +PAGE = 061805 +TITLE = Strongly adsorbed comb copolymers with rigid side chains +URL = PRE61805.pdf +---------- +LABEL = 3dRigid +TYPE = article +AUTHORP = | | | |ten +AUTHORL = Subbotin|Saariaho|Stepanyan|Ikkala|Brinke +AUTHORF = A. |M. |R. |O. |G. +JOURNAL = \mml +YEAR = 2000 +VOL = 33 +PAGE = 6168 +EPAGE = 6173 +TITLE = Cylindrical brushes of comb copolymer molecules containing rigid side chains +URL = bottrev.mml.pdf +---------- +LABEL = toroid +TYPE = article +AUTHORL = Vasilevskaya|Khokhlov|Kidoaki|Yoshikawa +AUTHORF = V.|A.|S.|K. +AUTHORM = V.|R.| | +JOURNAL = \bio +YEAR = 1997 +VOL = 41 +PAGE = 51 +EPAGE = 60 +TITLE = Structure of collapsed Persistent macromolecule: toroid vs. spherical globule +URL = toroid.pdf +---------- +LABEL = FredricksonLiu +TYPE = article +AUTHORL = Fredrickson|Liu +AUTHORF = G.|A. +AUTHORM = H.|J. +JOURNAL = \mml +YEAR = 1994 +VOL = 27 +PAGE = 2503 +EPAGE = 2511 +TITLE = Entropic corrections to the Flory-Huggins theory of polymer blends: architectural and conformational effects +RUSSIAN = Popravki k $\chi$ za schet vsyacheskih effectov, tipa arhitektury, gibkosti i t.p. +---------- +LABEL = LiuFredrickson +TYPE = article +AUTHORL = Liu|Fredrickson +AUTHORF = A.|G. +AUTHORM = J.|H. +JOURNAL = \mml +YEAR = 1993 +VOL = 26 +PAGE = 2817 +EPAGE = 2824 +TITLE = Free energy functionals for semiflexible polymer solutions and blends +RUSSIAN = fazovoe povedenie s dvumya parametrami: $\chi$ i Maier-Saupe $w$. +---------- +LABEL = RaphaelFredricksonPincus +TYPE = article +AUTHORL = Rapha\"el|Fredrickson|Pincus +AUTHORF = E.|G.|P. +AUTHORM = |H.| +JOURNAL = \jpfrance +%% J. Phys. II France +YEAR = 1992 +VOL = 2 +PAGE = 1811 +EPAGE = 1823 +TITLE = One long chain among shorter chains: the Flory approach revisited +RUSSIAN = Mozhet imeet otnoshenie k tomu, chto Subbotin hochet, chtoby ya delal +---------- +LABEL = RaphaelPincusFredrickson +TYPE = article +AUTHORL = Rapha\"el|Pincus|Fredrickson +AUTHORF = E.|P.|G. +AUTHORM = | |H. +JOURNAL = \mml +YEAR = 1993 +VOL = 26 +PAGE = 1996 +EPAGE = 2006 +TITLE = Conformation of star polymers in high molecular weight solvent +RUSSIAN = Mozhet imeet otnoshenie k tomu, chto Subbotin hochet, chtoby ya delal. Zdes' - chistyj scaling! +---------- +LABEL = FredricksonLeibler +TYPE = article +AUTHORL = Fredrickson|Leibler +AUTHORF = G.|L. +AUTHORM = H.| +JOURNAL = \mml +YEAR = 1989 +VOL = 22 +PAGE = 1238 +EPAGE = 1250 +TITLE = Theory of block copolymer solutions: nonselective good solvent +URL = fredricksonleibler/fred.pdf +---------- +LABEL = JoannyLeiblerBall +TYPE = article +AUTHORL = Joanny|Leibler|Ball +AUTHORF = J.-F.|L.|R. +JOURNAL = \jcp +YEAR = 1984 +VOL = 81 +PAGE = 4640 +EPAGE = 4656 +TITLE = Is chemical mismatch important in polymer solutions? +URL = joannyleibler/joannyleibler.pdf +---------- +LABEL = SchaferKappeler +TYPE = article +AUTHORL = Sch\"afer|Kappeler +AUTHORF = L.|Ch. +JOURNAL = J. Physique +YEAR = 1985 +VOL = 46 +PAGE = 1853 +EPAGE = 1864 +TITLE = A renormalization group analysis of ternary polymer solutions +URL = +---------- +LABEL = IzmailovMyerson +TYPE = article +AUTHORL = Izmailov|Myerson +AUTHORF = A.|A. +AUTHORM = F.|S. +JOURNAL = \pre +YEAR = 1990 +VOL = 60 +PAGE = 3211 +EPAGE = 3218 +TITLE = Thermodynamic and statistical studies of supersaturated ternary solutions +URL = PRE_v60p3211-3218y1999.pdf +---------- +LABEL = BartonMchugh +TYPE = article +AUTHORL = Barton|Mchugh +AUTHORF = B.|A. +AUTHORM = F.|J. +JOURNAL = \jpsb +YEAR = 1999 +VOL = 37 +PAGE = 1449 +EPAGE = 1460 +TITLE = Kinetics of Thermally Induced Phase Separation in Ternary Polymer Solutions. I. Modeling of Phase Separation Dynamics +URL = J_of_PolScience_v37p1449-1460y1999.pdf +---------- +LABEL = HongChouHuang +TYPE = article +AUTHORL = Hong|Chou|Huang +AUTHORF = Po-Da|Che-Min|Hsing-Tsai +JOURNAL = \epolj +YEAR = 2000 +VOL = 36 +PAGE = 2193 +EPAGE = 2200 +TITLE = Phase separation behavior in polyvinyl alcohol/ethylene glycol/water ternary solutions +URL = EurPolymJ_v36p2193-2200y200.pdf +---------- +LABEL = CurrieStuartBorisov +TYPE = article +AUTHORL = Currie|Cohen Stuart|Borisov +AUTHORF = E.|M.|O. +AUTHORM = P.K.|A.|V. +JOURNAL = \mml +YEAR = 2001 +VOL = 34 +PAGE = 1018 +EPAGE = 1030 +TITLE = Phase separation in polymer solutions with annealed excluded volume interactions +URL = CurrieStuartBorisov.pdf +---------- +LABEL = DormidontovaErukhimovichKhokhlov +TYPE = article +AUTHORL = Dormidontova|Erukhimovich|Khokhlov +AUTHORF = E.|I.|A. +AUTHORM = E.|Ya.|R. +JOURNAL = \cps +YEAR = 1994 +VOL = 272 +PAGE = 1486 +EPAGE = 1497 +TITLE = Phase diagram for microphase separation transition in poor polymer solutions +---------- +LABEL = BirshteinZhulinaMercurieva +TYPE = article +AUTHORL = Birshtein|Zhulina|Mercurieva +AUTHORF = T.|E.|A. +AUTHORM = M.|B.|A. +JOURNAL = \mts +YEAR = 2000 +VOL = 9 +PAGE = 47 +EPAGE = 55 +TITLE = Amphiphilic polymer brush in a mixture of incompatible liquids +URL = brush/BirshteinZhulinaMercurieva.pdf +---------- +LABEL = KlushinBirshteinMercurieva +TYPE = article +AUTHORL = Klushin|Birshtein|Mercurieva +AUTHORF = L.|T.|A. +AUTHORM = I.|M.|A. +JOURNAL = \mts +YEAR = 1998 +VOL = 7 +PAGE = 483 +EPAGE = 495 +TITLE = Microphase segregation in bridging polymeric brushes: Regular and singular phase diagrams +URL = brush/KlushinBirstein_MicrophaseSegregationInBrushes.pdf +---------- +LABEL = DjalaliHugenbergFischerSchmidt +TYPE = article +AUTHORL = Djalali|Hugenberg|Fischer|Schmidt +AUTHORF = R.|N.|K.|M. +JOURNAL = \mrc +YEAR = 1999 +VOL = 20 +PAGE = 444 +EPAGE = 449 +TITLE = Amphipolar core-shell cylindrical brushes +URL = brush/AmphipolarCore-ShellCylindricalBrushes.pdf +---------- +LABEL = RuckensteinLi +TYPE = article +AUTHORL = Ruckenstein|Li +AUTHORF = E.|B. +JOURNAL = \jcp +YEAR = 1997 +VOL = 107 +PAGE = 932 +EPAGE = 942 +TITLE = Steric interactions between two grafted polymer brushes +URL = brush/StericInteractionBetweenTwoGraftedPolBrushes.pdf +---------- +LABEL = Morse +TYPE = article +AUTHORL = Morse|Fredrickson +AUTHORF = D.|G. +AUTHORM = C.|H. +JOURNAL = \pre +YEAR = 1994 +VOL = 73 +PAGE = 3235 +EPAGE = 3238 +TITLE = Semiflexible polymers near interfaces +URL = semiflexible_polymers_near_interfaces_PRL_Fredricson.pdf +---------- +LABEL = Groh +TYPE = article +AUTHORL = Groh +AUTHORF = B. +JOURNAL = \pre +YEAR = 1999 +VOL = 59 +PAGE = 5606 +EPAGE = 5612 +TITLE = Vesicles in solutions of hard rods +URL = vesticles_in_rods.pdf +---------- +LABEL = Wilson +TYPE = article +AUTHORL = Wilson +AUTHORF = K. +AUTHORM = G. +JOURNAL = \rmp +YEAR = 1975 +VOL = 47 +PAGE = 773 +EPAGE = 840 +TITLE = The renormalization group: Critical phenomena and the Kondo problem +URL = renorm/wilson/wilson.pdf +---------- +LABEL = Fisher +TYPE = article +AUTHORL = Fisher +AUTHORF = M. +AUTHORM = E. +JOURNAL = \rmp +YEAR = 1998 +VOL = 70 +PAGE = 653 +EPAGE = 681 +TITLE = Renormalization group theory: Its basis and formulation in statistical physics +URL = renorm/fisherRMP000653.pdf +---------- +LABEL = Morrison +TYPE = article +AUTHORL = Morrison +AUTHORF = P. +AUTHORM = J. +JOURNAL = \rmp +YEAR = 1998 +VOL = 70 +PAGE = 467 +EPAGE = 521 +TITLE = Hamiltonian description of the ideal fluid +URL = rmp/RMP000467.pdf +---------- +LABEL = Hogan +TYPE = article +AUTHORL = Hogan +AUTHORF = C. +AUTHORM = J. +JOURNAL = \rmp +YEAR = 2000 +VOL = 72 +PAGE = 1149 +EPAGE = 1161 +TITLE = Why the universe is just so +URL = rmp/RMP001149.pdf +---------- +LABEL = Stanley +TYPE = article +AUTHORL = Stanley +AUTHORF = H. +AUTHORM = E. +JOURNAL = \rmp +YEAR = 1999 +VOL = 71 +PAGE = S358 +EPAGE = S366 +TITLE = Scaling, universality, and renormalization: Three pillars of modern critical phenomena +URL = rmp/RMP00S358.pdf +---------- +LABEL = GennesRMP +TYPE = article +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +JOURNAL = \rmp +YEAR = 1999 +VOL = 71 +PAGE = S374 +EPAGE = S382 +TITLE = Granular matter: a tentative view +URL = rmp/RMP00S374.pdf +---------- +LABEL = GennesRPP +TYPE = article +AUTHORP = de +AUTHORL = Gennes +AUTHORF = P.-G. +AUTHORM = +JOURNAL = \rpp + %% Reports on Progress in Physics +YEAR = 1969 +VOL = 32 +PAGE = 187 +EPAGE = 205 +TITLE = Some conformational problems for long macromolecules +URL = +---------- +LABEL = EdwardsPPS +TYPE = article +AUTHORL = Edwards +AUTHORF = S. +AUTHORM = F. +JOURNAL = \pps + %% Proc. Phys. Soc. +YEAR = 1965 +VOL = 85 +PAGE = 613 +EPAGE = 624 +TITLE = The statistical mechanics of polymers with excluded volume +URL = +---------- +LABEL = GrosbergNguyen +TYPE = eprint +AUTHORL = Grosberg|Nguyen|Shklovskii +AUTHORF = A. |T.|B. +AUTHORM = Ya.|T.|I. +INFO = cond-mat/0105140 +YEAR = 2001 +TITLE = Low temperature physics at room temperature in water: Charge inversion in chemical and biological systems +URL = grosberg/01-05-04.pdf +---------- +LABEL = Pagonabarraga +TYPE = eprint +AUTHORL = Pagonabarraga|Cates +AUTHORF = I.|M. +AUTHORM = |E. +INFO = cond-mat/0104449 +YEAR = 2001 +TITLE = A practical density functional for polydisperse polymers +URL = pagonabarraga/shortpoly2.pdf +---------- +LABEL = VroegeLekkerkerker +TYPE = article +AUTHORL = Vroege|Lekkerkerker +AUTHORF = G.|H. +AUTHORM = J.|N.W. +JOURNAL = \rpp + %% Reports on progress in physics +YEAR = 1992 +VOL = 55 +PAGE = 1241 +EPAGE = 1310 +TITLE = Phase transitions in lyotropic colloidal and polymer liquid crystals +URL = rp920803.pdf +---------- +LABEL = WangSafran +TYPE = article +AUTHORL = Wang |Safran +AUTHORF = Z.-G.|S. +AUTHORM = |A. +JOURNAL = \jcp +YEAR = 1988 +VOL = 89 +PAGE = 5323 +EPAGE = 5328 +TITLE = Size distribution for aggregates of associating polymers. II. Linear packing +URL = +---------- +LABEL = BrinkeIkkala +TYPE = article +AUTHORP = ten +AUTHORL = Brinke|Ikkala +AUTHORF = G. |O. +AUTHORM = +JOURNAL = \trip + %% TRIP +YEAR = 1997 +VOL = 5 +PAGE = 213 +EPAGE = 217 +TITLE = +URL = +---------- +LABEL = Beers1 +TYPE = article +AUTHORP = +AUTHORL = Beers|Scott|Mattyjaszewski|Sheiko|M\"oller +AUTHORF = K. |G. |K. |S. |M. +AUTHORM = L. |G. | |S. | +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 9413 +EPAGE = 9415 +TITLE = The Synthesis of Densely Grafted Copolymers by Atom Transfer Radical Polymerization +URL = ma981402i.pdf +---------- +LABEL = Schappacher +TYPE = article +AUTHORP = +AUTHORL = Schappacher|Billaud|Paulo|Deffieux +AUTHORF = M. |C. |C. |A. +AUTHORM = +JOURNAL = \mcp +YEAR = 1999 +VOL = 200 +PAGE = 2377 +EPAGE = 2386 +TITLE = Synthesis, dimensions and solution properties of linear and macrocyclic poly(chloroethyl vinyl ether)-g-polystyrene comblike polymers +URL = schappacher.pdf +---------- +LABEL = Wintermantel1 +TYPE = article +AUTHORP = +AUTHORL = Wintermantel|Schmidt|Tsukahara|Kajiwara|Kohjiya +AUTHORF = M.|M.|Y.|K.|S. +AUTHORM = +JOURNAL = \mrc +YEAR = 1994 +VOL = 15 +PAGE = 279 +EPAGE = 284 +TITLE = +URL = +---------- +LABEL = Wintermantel2 +TYPE = article +AUTHORP = +AUTHORL = Wintermantel|Fischer|Gerle|Ries|Schmidt|Kajiwara|Urakawa|Wataoka +AUTHORF = M.|K.|M.|R.|M.|K.|H.|I. +AUTHORM = +JOURNAL = \ang +YEAR = 1995 +VOL = 34 +PAGE = 1472 +EPAGE = 1474 +TITLE = +URL = +---------- +LABEL = Wintermantel3 +TYPE = article +AUTHORP = +AUTHORL = Wintermantel|Gerle|Fischer|Schmidt|Wataoka|Urakawa|Kajiwara|Tsukahara +AUTHORF = M.|M.|K.|M.|I.|H.|K.|Y. +AUTHORM = +JOURNAL = \mml +YEAR = 1996 +VOL = 29 +PAGE = 978 +EPAGE = 983 +TITLE = Molecular Bottlebrushes +URL = ma950227s.pdf +---------- +LABEL = GerleRoos +TYPE = article +AUTHORP = +AUTHORL = Gerle|Fischer|Roos|M\"uller|Schmidt|Sheiko|Prokhorova|M\"oller +AUTHORF = M. |K. |S. |A. |M. |S. |S. |M. +AUTHORM = | | |H.~E. | |S. +JOURNAL = \mml +YEAR = 1999 +VOL = 32 +PAGE = 2629 +EPAGE = 2637 +TITLE = Main Chain Conformation and Anomalous Elution Behavior of Cylindrical Brushes As Revealed by GPC/MALLS, Light Scattering, and SFM +URL = ma9816463.pdf +---------- +LABEL = FischerGerleSchmidt +TYPE = article +AUTHORP = +AUTHORL = Fischer|Gerle|Schmidt +AUTHORF = K.|M.|M. +AUTHORM = +JOURNAL = Proc. ACS PMSE Anaheim +YEAR = 1999 +VOL = 30 +PAGE = 133 +EPAGE = 134 +TITLE = +URL = +---------- +LABEL = FischerSchmidt +TYPE = article +AUTHORP = +AUTHORL = Fischer|Schmidt +AUTHORF = K.|M. +AUTHORM = +JOURNAL = \mrc +YEAR = 2001 +VOL = 22 +PAGE = 787 +EPAGE = 791 +TITLE = Solvent-Induced Length Variation of Cylindrical Brushes +URL = mrc_v22_p787_2001.pdf +---------- +LABEL = Sheiko2 +TYPE = article +AUTHORP = +AUTHORL = Sheiko +AUTHORF = S. +AUTHORM = S. +JOURNAL = \advpolsci +YEAR = 2000 +VOL = 151 +PAGE = 61 +EPAGE = 174 +TITLE = +URL = +---------- +LABEL = BornerBeers +TYPE = article +AUTHORP = +AUTHORL = B\"orner|Beers|Matyjaszewski|Sheiko|M\"oller +AUTHORF = H. |K. |K. |S. |M. +AUTHORM = G. | | |S. | +JOURNAL = \mml +YEAR = 2001 +VOL = 34 +PAGE = 4375 +EPAGE = 4383 +TITLE = Synthesis of Molecular Brushes with Block Copolymer Side Chains Using Atom Transfer Radical Polymerization +URL = brush/ma010001r.pdf +---------- +LABEL = SemenovRubinstein1 +TYPE = article +AUTHORP = +AUTHORL = Semenov|Rubinstein +AUTHORF = A. |M. +AUTHORM = N. | +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 1373 +EPAGE = 1385 +TITLE = Thermoreversible Gelation in Solutions of Associative Polymers. 1. Statics +URL = ma970616h.pdf +---------- +LABEL = SemenovRubinstein2 +TYPE = article +AUTHORP = +AUTHORL = Semenov|Rubinstein +AUTHORF = A. |M. +AUTHORM = N. | +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 1386 +EPAGE = 1397 +TITLE = Thermoreversible Gelation in Solutions of Associative Polymers. 2. Linear Dynamics +URL = ma970617.pdf +---------- +LABEL = SvenssonLinse1 +TYPE = article +AUTHORP = +AUTHORL = Svensson|Linse +AUTHORF = M. |P. +AUTHORM = +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 1427 +EPAGE = 1429 +TITLE = Mean-Field Study of Interactions between Block Copolymer Micelles and Homopolymers +URL = ma970975c.pdf +---------- +LABEL = ChengBokerZhang +TYPE = article +AUTHORP = +AUTHORL = Cheng|B\"oker|Zhang|Krausch|M\"uller +AUTHORF = G.|A.|M.|G.|A. +AUTHORM = | | | |H.E. +JOURNAL = \mml +YEAR = 2001 +VOL = 34 +PAGE = 6883 +EPAGE = 6888 +TITLE = Amphiphilic Cylindrical Core-Shell Brushes via a "Grafting From" Process Using ATRP +URL = ma0013962.pdf +---------- +LABEL = LikhtmanAnastasiadisSemenov +TYPE = article +AUTHORP = +AUTHORL = Likhtman|Anastasiadis|Semenov +AUTHORF = A.|S.|A. +AUTHORM = E.|H.|N. +JOURNAL = \mml +YEAR = 1999 +VOL = 32 +PAGE = 3474 +EPAGE = 3480 +TITLE = Theory of Surface Deformations of Polymer Brushes in Solution +URL = ma980572s.pdf +---------- +LABEL = Gay1 +TYPE = article +AUTHORP = +AUTHORL = Gay +AUTHORF = C. +AUTHORM = +JOURNAL = \mml +YEAR = 1997 +VOL = 30 +PAGE = 5939 +EPAGE = 5943 +TITLE = Wetting of a Polymer Brush by a Chemically Identical Polymer Melt +URL = ma970107f.pdf +---------- +LABEL = Moore +TYPE = article +AUTHORP = +AUTHORL = Moore +AUTHORF = M. +AUTHORM = A. +JOURNAL = J. Phys. (Paris) +YEAR = 1977 +VOL = A 10 +PAGE = 305 +EPAGE = 314 +TITLE = Theory of the polymer coil-globule transition +URL = +---------- +LABEL = Wiegel +TYPE = article +AUTHORP = +AUTHORL = Wiegel +AUTHORF = F. +AUTHORM = W. +JOURNAL = J. Phys. (Paris) +YEAR = 1977 +VOL = A 10 +PAGE = 299 +EPAGE = 303 +TITLE = Adsorption of a macromolecule to a charged surface +URL = +---------- +LABEL = LieserOdaMiteva +TYPE = article +AUTHORP = +AUTHORL = Lieser|Oda|Miteva|Meisel|Nothofer|Scherf +AUTHORF = G.|M|T.|A.|H.-G.|U +AUTHORM = +JOURNAL = \mml +YEAR = 2000 +VOL = 33 +PAGE = 4490 +EPAGE = 4495 +TITLE = Ordering, Graphoepitaxial Orientation, and Conformation of a Polyfluorene Derivative of the Hairy-Rod Type on an Oriented Substrate of Polyimide +URL = ma9921652.pdf +---------- +LABEL = PetekidisVlassopoulosFytas1 +TYPE = article +AUTHORL = Petekidis|Vlassopoulos|Fytas|R\"ulkens|Wegner +AUTHORF = G.|D.|G.|R.|G. +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 6129 +EPAGE = 6138 +TITLE = Orientation Dynamics and Correlations in Hairy-Rod Polymers: Concentrated Regime +URL = ma9804500.pdf +---------- +LABEL = AndrikopoulosVlassopoulosVoyiatzis +TYPE = article +AUTHORL = Andrikopoulos|Vlassopoulos|Voyiatzis|Yiannopoulos|Kamitsos +AUTHORF = K.|D.|G.|Y.|E. +AUTHORM = | |A.|D.|I. +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 5465 +EPAGE = 5473 +TITLE = Molecular Orientation of Hairy-Rod Polyesters: Effects of Side Chain Length +URL = ma971773j.pdf +---------- +LABEL = PetekidisVlassopoulosFytas2 +TYPE = article +AUTHORP = +AUTHORL = Petekidis|Vlassopoulos|Fytas|Kountourakis|Kumar +AUTHORF = G.|D.|G.|N.|S. +AUTHORM = +JOURNAL = \mml +YEAR = 1997 +VOL = 30 +PAGE = 919 +EPAGE = 931 +TITLE = Association Dynamics in Solutions of Hairy-Rod Polymers +URL = ma961366s.pdf +---------- +LABEL = HoBystOswald +TYPE = article +AUTHORP = +AUTHORL = HoByst|Oswald +AUTHORF = R.|P. +AUTHORM = +JOURNAL = \mts +YEAR = 2001 +VOL = 10 +PAGE = 1 +EPAGE = 16 +TITLE = Liquid-Crystalline Order in Polymer Systems: Basic Models +URL = macro_th_sim_vol10p1.pdf +---------- +LABEL = LishchukMalomuzh1 +TYPE = article +AUTHORP = +AUTHORL = Lishchuk|Malomuzh +AUTHORF = S.|N. +AUTHORM = V.|P. +JOURNAL = \cpl +YEAR = 1999 +VOL = 309 +PAGE = 307 +EPAGE = 313 +TITLE = Cluster approach to the problem of diffusion and viscosity in supercooled states of glycerol-like liquids +URL = +---------- +LABEL = LishchukMalomuzh2 +TYPE = article +AUTHORP = +AUTHORL = Lishchuk|Malomuzh +AUTHORF = S.|N. +AUTHORM = V.|P. +JOURNAL = \jms + %% J. of Mol. Structure +YEAR = 1995 +VOL = 348 +PAGE = 205 +EPAGE = 208 +TITLE = The peculiarities of molecular and stimulated impulsive light scattering in supercooled states of glycerol-like liquids +URL = +---------- +LABEL = LishchukMalomuzh3 +TYPE = article +AUTHORP = +AUTHORL = Lishchuk|Malomuzh +AUTHORF = S.|N. +AUTHORM = V.|P. +JOURNAL = \jcp +YEAR = 1997 +VOL = 106 +PAGE = 6160 +EPAGE = 6170 +TITLE = Clusterization in supercooled states of glycerol-like liquids and its manifestation in different phenomena +URL = +---------- +LABEL = SemenovOrdering +TYPE = article +AUTHORP = +AUTHORL = Semenov +AUTHORF = A. +AUTHORM = N. +JOURNAL = \mml +YEAR = 1989 +VOL = 22 +PAGE = 2849 +EPAGE = 2851 +TITLE = Microphase Separation in Diblock-Copolymer Melts: Ordering of Micelles +URL = +---------- +LABEL = LeiblerPincus +TYPE = article +AUTHORP = +AUTHORL = Leibler|Pincus +AUTHORF = L.|P. +AUTHORM = +JOURNAL = \mml +YEAR = 1984 +VOL = 17 +PAGE = 2922 +EPAGE = 2924 +TITLE = Ordering Transition of Copolymer Micelles +URL = +---------- +LABEL = Parsons +TYPE = article +AUTHORP = +AUTHORL = Parsons +AUTHORF = J. +AUTHORM = D. +JOURNAL = \pra +YEAR = 1979 +VOL = 19 +PAGE = 1225 +EPAGE = 1230 +TITLE = Nematic ordering in a system of rods +URL = PRA_vol_19_p1225.pdf +---------- +LABEL = Benmouna +TYPE = article +AUTHORL = Benmouna|Maschke|Coqueret|Benmouna +AUTHORF = F.|U.|X.|M. +AUTHORM = +JOURNAL = \mts +YEAR = 2000 +VOL = 9 +PAGE = 215 +EPAGE = 229 +TITLE = Equilibrium phase behavior of polymer and liquid crystal blends +URL = mts_vol9y2000p215.pdf +---------- +LABEL = SemenovKhokhlov +TYPE = article +AUTHORL = Semenov|Khokhlov +AUTHORF = A. |A. +AUTHORM = N. |R. +JOURNAL = \ufn +YEAR = 1988 +VOL = 156 +PAGE = 427 +EPAGE = 476 +TITLE = Statistical physics of liquid-crystalline polymers +URL = +---------- +LABEL = KhalaturKhokhlov1 +TYPE = article +AUTHORL = Khalatur|Khokhlov|Nyrkova|Semenov +AUTHORF = P. |A. |I. |A. +AUTHORM = G. |R. |A. |N. +JOURNAL = \mts +YEAR = 1996 +VOL = 5 +PAGE = 713 +EPAGE = 747 +TITLE = Aggregation processes in self-associating polymer systems: computer simulation study of micelles in the superstrong segregation regime +URL = +---------- +LABEL = KhalaturKhokhlov2 +TYPE = article +AUTHORL = Khalatur|Khokhlov|Nyrkova|Semenov +AUTHORF = P. |A. |I. |A. +AUTHORM = G. |R. |A. |N. +JOURNAL = \mts +YEAR = 1996 +VOL = 5 +PAGE = 749 +EPAGE = 757 +TITLE = Aggregation processes in self-associating polymer systems: a comparative analysis of theoretical and computer simulation data for micelles in the superstrong segregation regime +URL = +---------- +LABEL = SemenovNyrkovaKhokhlov +TYPE = article +AUTHORL = Semenov|Nyrkova|Khokhlov +AUTHORF = A. |I. |A. +AUTHORM = N. |A. |R. +JOURNAL = \mml +YEAR = 1995 +VOL = 28 +PAGE = 7491 +EPAGE = 7500 +TITLE = Polymers with strongly interacting groups: Theory for nonspherical multiplets +URL = +---------- +LABEL = SemenovBlockHomo +TYPE = article +AUTHORL = Semenov +AUTHORF = A. +AUTHORM = N. +JOURNAL = \mml +YEAR = 1993 +VOL = 26 +PAGE = 2273 +EPAGE = 2281 +TITLE = Phase equilibria in block copolymer-homopolymer mixtures +URL = +---------- +LABEL = SemenovInterface +TYPE = article +AUTHORL = Semenov +AUTHORF = A. +AUTHORM = N. +JOURNAL = \mml +YEAR = 1992 +VOL = 25 +PAGE = 4967 +EPAGE = 4977 +TITLE = Theory of diblock-copolymer segregation to the interface and free surface of a homopolymer layer +URL = +---------- +LABEL = tilt +TYPE = article +AUTHORL = Kaganer|Osipov|Peterson +AUTHORF = V.|M.|I. +AUTHORM = M.|A.|R. +JOURNAL = \jcp +YEAR = 1993 +VOL = 98 +PAGE = 3512 +EPAGE = 3527 +TITLE = A molecular model for tilting phase transitions between condensed phases of Langmuir monolayers +URL = +---------- +LABEL = ArnoldUspFizNauk +TYPE = article +AUTHORL = Arnold +AUTHORF = V. +AUTHORM = I. +JOURNAL = \ufn +YEAR = 1999 +VOL = 42 +PAGE = 1205 +EPAGE = 1217 +TITLE = Mathematics and physics: mother and daughter or sisters? +URL = ufn9912c.pdf +---------- +LABEL = Hartikainen +TYPE = article +AUTHORL = Hartikainen|Lahtinen|Torkkeli|Serimaa|Valkonen|Rissanen|Ikkala +AUTHORF = J. |M. |M. |R. |J. |K. |O. +AUTHORM = +JOURNAL = \mml +YEAR = 2001 +VOL = 34 +PAGE = 7789 +EPAGE = 7795 +TITLE = Comb-Shaped Supramolecules Based on Protonated Polyaniline and Their Self-Organization into Nanoscale Structures: Polyaniline Sulfonates/Zinc Sulfonates +URL = mika/bhru9332.pdf +---------- +LABEL = Ruokol1997 +TYPE = article +AUTHORL = Ruokolainen|Torkkeli|Serimaa|Komanschek|Brinke|Ikkala +AUTHORF = J. |M. |R. |E. |G. |O. +AUTHORP = | | | |ten +JOURNAL = \mml +YEAR = 1997 +VOL = 30 +PAGE = 2002 +EPAGE = 2007 +TITLE = Order-Disorder Transition in Comblike Block Copolymers Obtained by Hydrogen Bonding between Homopolymers and End-Functionalized Oligomers: Poly(4-vinylpyridine)-Pentadecylphenol +URL = mika/ma1997p2002.pdf +---------- +LABEL = Yang1 +TYPE = article +AUTHORL = Yang|Liang +AUTHORF = S. |B. +JOURNAL = \jpsb +YEAR = 2001 +VOL = 39 +PAGE = 2915 +EPAGE = 2921 +TITLE = Simulation of Phase-Separated Structures of Liquid-Crystalline Polymer/Flexible Polymer Blends +URL = pol_sci_v39_p2915.pdf +---------- +LABEL = SchaeferJoannyPincus +TYPE = article +AUTHORL = Schaefer|Joanny|Pincus +AUTHORF = D. |J. |P. +AUTHORM = W. |F. | +JOURNAL = \mml +YEAR = 1980 +VOL = 13 +PAGE = 1280 +EPAGE = 1289 +TITLE = Dynamics of Semiflexible Polymers in Solutions +URL = +---------- +LABEL = SteuerRehahnBallauff +TYPE = article +AUTHORL = Steuer|Rehahn|Ballauff +AUTHORF = M. |M. |M. +AUTHORM = +JOURNAL = \makchem +YEAR = 1993 +VOL = 194 +PAGE = 2395 +EPAGE = 2410 +TITLE = Synthesis and characterization of rigid-rod polyesters bearing 3-hydroxypropyl and 3-acetoxypropyl side groups +URL = +KEYWORDS= hairy rods +---------- +LABEL = SteuerHorthBallauff +TYPE = article +AUTHORL = Steuer|H\"orth|Ballauff +AUTHORF = M. |M. |M. +AUTHORM = +JOURNAL = \jpsa +YEAR = 1993 +VOL = 31 +PAGE = 1609 +EPAGE = 1619 +TITLE = Rigid Rod Polymers with Flexible Side Chains. X. Thermotropic Mesophases from Aromatic Stiff-Chain Polyamides Bearing n-Alkoxy Side Chains +URL = +KEYWORDS= hairy rods +---------- +LABEL = AdamSpiess +TYPE = article +AUTHORL = Adam|Spiess +AUTHORF = A. |H. +AUTHORM = |W. +JOURNAL = \makchem +%%Makromol. Chem., Rapid Commun. +YEAR = 1990 +VOL = 11 +PAGE = 249 +EPAGE = 259 +TITLE = On the packing behaviour of alkoxy-substituted stiff macromolecules +URL = +KEYWORDS= hairy rods +---------- +LABEL = GaldaKistnerMartinBallauff +TYPE = article +AUTHORL = Galda|Kistner|Martin|Ballauff +AUTHORF = P. |D. |A. |M. +AUTHORM = +JOURNAL = \mml +YEAR = 1993 +VOL = 26 +PAGE = 1595 +EPAGE = 1602 +TITLE = Characterization and Analysis of the Phase Behavior of Poly(1,4-phenylene 2,5-di-n-alkoxyterephthalate)s +URL = +KEYWORDS= hairy rods +---------- +LABEL = Pickett +TYPE = article +AUTHORL = Pickett +AUTHORF = G. +AUTHORM = T. +JOURNAL = \mml +YEAR = 2002 +VOL = 35 +PAGE = +EPAGE = +TITLE = Flexible/Branched Block Copolymer Melts +URL = ma011532i.pdf +KEYWORDS= phase diagram, branched molecules +---------- +LABEL = WilliamsFredrickson +TYPE = article +AUTHORL = Williams|Fredrickson +AUTHORF = D.|G. +AUTHORM = R.M.|H. +JOURNAL = \mml +YEAR = 1992 +VOL = 25 +PAGE = 3561 +EPAGE = 3568 +TITLE = Cylindrical Micelles in Rigid-Flexible Diblock Copolymers +URL = +KEYWORDS= +---------- +LABEL = MilnerWangWitten +TYPE = article +AUTHORL = Milner|Wang|Witten +AUTHORF = S.|Z.-G.|T. +AUTHORM = T.| |A. +JOURNAL = \mml +YEAR = 1989 +VOL = 22 +PAGE = 489 +EPAGE = 490 +TITLE = End-Confined Polymers: Corrections to the Newtonian Limit +URL = +KEYWORDS= +---------- +LABEL = SubbotinSemenovRandom +TYPE = article +AUTHORL = Subbotin|Semenov +AUTHORF = A. |A. +AUTHORM = V. |N. +JOURNAL = \epje +YEAR = 2002 +VOL = 7 +PAGE = 49 +EPAGE = 64 +TITLE = Phase equilibra in random multiblock copolymers +URL = 20070049.pdf +---------- +LABEL = Ballauff:CompatHairyRodsCoils +TYPE = article +AUTHORL = Ballauff +AUTHORF = M. +JOURNAL = \jpsb +YEAR = 1987 +VOL = 25 +PAGE = 739 +EPAGE = 747 +TITLE = Compatibility of Coils and Rods Bearing Flexible Side Chains +KEYWORDS= hairy rods +---------- +LABEL = Ballauff:PhaseHairyRodsCoils +TYPE = article +AUTHORL = Ballauff +AUTHORF = M. +JOURNAL = \mml +YEAR = 1986 +VOL = 19 +PAGE = 1366 +EPAGE = 1374 +TITLE = Phase Equilibra in Rodlike Systems with Flexible Side Chains +---------- +LABEL = Angerman:PhaseAssocDiblock +TYPE = article +AUTHORL = Angerman|Brinke +AUTHORF = H. |G. +AUTHORM = J. +AUTHORP = |ten +JOURNAL = \mml +YEAR = 1999 +VOL = 32 +PAGE = 6813 +EPAGE = 6820 +TITLE = Weak Segregation Theory of Microphase Separation in Associating Binary Homopolymer Blends +URL = ma981518e.pdf +---------- +LABEL = Dormidontova:PhaseHbondBrush +TYPE = article +AUTHORL = Dormidontova|Brinke +AUTHORF = E. |G. +AUTHORP = |ten +JOURNAL = \mml +YEAR = 1998 +VOL = 31 +PAGE = 2649 +EPAGE = 2660 +TITLE = Phase Behavior of Hydrogen-Bonding Polymer-Oligomer Mixtures +URL = ma9710904.pdf +---------- +LABEL = Erukhimovich:Gel +TYPE = article +AUTHORL = Erukhimovich +AUTHORF = I. +AUTHORM = Ya. +JOURNAL = \jetp +YEAR = 1995 +VOL = 81 +PAGE = 553 +EPAGE = 566 +TITLE = Statistical Theory of Sol-Gel Transition in Weak Gels +URL = +---------- +LABEL = MB1091 +TYPE = article +AUTHORL = Matsen|Bates +AUTHORF = M.|F. +AUTHORM = W.|S. +JOURNAL = \mml +YEAR = 1996 +VOL = 29 +PAGE = 1091 +EPAGE = 1098 +TITLE = Unifying Weak- and Strong-Segregation Block Copolymer Theories +URL = MB1091.ps +---------- +LABEL = BF525 +TYPE = article +AUTHORL = Bates|Fredrickson +AUTHORF = F.|G. +AUTHORM = S.|H. +JOURNAL = \arpc +YEAR = 1990 +VOL = 41 +PAGE = 525 +EPAGE = 557 +TITLE = Block Copolymer Thermodynamics: Theory And Experiment +URL = http://physchem.annualreviews.org/1990/ +---------- +LABEL = Flory:MML:11:1138 +TYPE = article +AUTHORL = Flory +AUTHORF = P. +AUTHORM = J. +JOURNAL = \mml +YEAR = 1978 +VOL = 11 +PAGE = 1138 +EPAGE = +TITLE = +URL = +---------- +LABEL = 2sorts +TYPE = article0 +AUTHORL = Stepanyan|Subbotin|Brinke +AUTHORF = R.|A.|G. +AUTHORP = | |ten +JOURNAL = \mml +STATE = submited +YEAR = +VOL = +PAGE = +EPAGE = +TITLE = +URL = +---------- +% Napishi konverter Biblio-Bibtex reference file formats!!!! +%LABEL = +%TYPE = article +%AUTHORL = +%AUTHORF = +%AUTHORM = +%JOURNAL = +%YEAR = +%VOL = +%PAGE = +%EPAGE = +%TITLE = +%URL = +%KEYWORDS= +%---------- +%LABEL=kukuku +%TYPE=preprint +%AUTHORL=kukuauth +%TITLE=Microphase separation within comb-like copolymer with attractive side-chains: computer simulations1 +%JOURNAL= Macromol. Theory and Simul1. +%YEAR =1995 +%VOL =4 +%---------- +EOF
\ No newline at end of file diff --git a/support/biblio/bibcheck.pl b/support/biblio/bibcheck.pl new file mode 100755 index 0000000000..a6f962e745 --- /dev/null +++ b/support/biblio/bibcheck.pl @@ -0,0 +1,380 @@ +#!/usr/bin/perl +use strict; + + +my $BIBCHECK_VERSION = '1.0'; + +############################################# +# reserved names in the references file +my $reservedLABEL='LABEL'; +my $reservedTYPE ='TYPE' ; +my $reservedDBFILE = 'DBFILE'; +my $reservedLINE = 'LINE'; + + +my $reservedAUTHORL='AUTHORL'; +my $reservedAUTHORF='AUTHORF'; #??? po moemu uzhe ne nuzhen!!! ------------??????? +my $reservedAUTHOR ='AUTHOR'; #must be in the form '5;' - 5=five authors must be shown. +# ';'=1st author from the 2nd should be separated by ';' +my $reservedAND_SEPARATOR='|'; #what have to be put before the last author goes after this!!! + + +my $reservedCOMMENTSYMBOL = '%'; +my $SEPARATOR = "----------\n"; + +# +############################################## + +#my @REFS_FILES = ('refers1.db'); +my @REFS_FILES; + +my @ALLREFS; #Keeps all data about refs. Is array of hashes + #for example this piece of code + # + #foreach $item (@ALLREFS) + #{ + # print ${$item}{"AUTHOR"},"\n"; + #}; + # + #will print all ''AUTHOR'' fields + + +my $TOTALLINES = 0; +my $TOTALERRORS= 0; +#----------------------------------------- +#OPTIONS + +my $verbosity_level=1; # 5 is max + +my $option_do_not_exit_on_empty_label = 0; + +my $optionsEXITAFTERERRORS = 5; + # after this number of errors it will exit + # is set by the option "-e" + # "0" means "infinity" +#------------------------------------------- + +&read_inline_arguments; + + + +&check_for_important_arguments; + +if ($verbosity_level > 0) +{print "\nThis is bibcheck utility version $BIBCHECK_VERSION\n"; + print 'Author R.Stepanyan <rstepanyan@yahoo.com>',"\n\n"}; +print 'refs databases are <'; +foreach my $qq (@REFS_FILES) {print "$qq "}; +print ">.\n\n"; + + +my $REFS_FILE; +my $current_ref_number=0; +foreach $REFS_FILE (@REFS_FILES) +{ #print $REFS_FILE, "-------\n"; + &read_ref_datafile($REFS_FILE); # all data will be stored in @ALLREFS - array of hashes + if($verbosity_level > 4) + {print "read_ref_datafile <$REFS_FILE> done...\n";} +}; +if($verbosity_level > 4){print "\n";} + +&check_uniq_labels; + +if($verbosity_level > 0) +{ + print "Processed ",scalar(@ALLREFS)," records in $TOTALLINES lines of ",scalar(@REFS_FILES)," db-file(s).\n"; +} + +exit(0); +# +# +# +################################################################ +################################################################ +################################################################ +################################################################ +################################################################ +# +# +sub read_ref_datafile +#________________________________________________ +#reads references file. Data stored in @ALLREFS +#structure of the refs-file: +#LABEL=3dFlex +#TYPE=article +#AUTHORL=subbotin +#TITLE={Microphase separation within comb-like copolymer with attractive side-chains: computer simulations1.} +#JOURNAL= Macromol. Theory and Simul1. +#----------<10pieces> +# +#At the end should be Enter, so better to put EOF after it in the +#next line +# +{ my $line; + my @fields; my %CURRENT_RECORD; + + my $it_is_label=1; + + my $item; + my $REFS_FILE = @_[0]; + + my $line_number=0; # at which line of the current file we are at the moment + + open(RF, $REFS_FILE)|| die "Could not open $REFS_FILE: $!"; + while($line = <RF>) + { $line_number++; + $TOTALLINES++; + next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) eq $reservedCOMMENTSYMBOL); + if($line ne $SEPARATOR) + { + $line=trim($line); + @fields = split(/=/, $line); + + @fields = trim(@fields); + + + if($fields[0] eq $reservedLABEL) + { # if this is label + if($CURRENT_RECORD{$fields[0]} ne '') #there is already a label + {print STDERR "Record at line $line_number at $REFS_FILE has multiple LABELs\n"; + &one_more_error; + } + + $CURRENT_RECORD{$fields[0]} = trim($fields[1]); + + if($CURRENT_RECORD{$fields[0]} eq '') + {print STDERR "Empty label at line $line_number at $REFS_FILE\n"; + unless($option_do_not_exit_on_empty_label){exit(1)}; # normally - exit after this error + &one_more_error; + } + + $CURRENT_RECORD{$reservedDBFILE} = $REFS_FILE; + $CURRENT_RECORD{$reservedLINE} = $line_number; + + + } + else + { + if($fields[0] eq $reservedTYPE) + { if($CURRENT_RECORD{$reservedTYPE} ne '') + {print STDERR "Record at line $line_number at $REFS_FILE has multiple TYPEs\n"; + &one_more_error; + } + $CURRENT_RECORD{$reservedTYPE}="$fields[1]" ; + } + + }; + + + } + else + { + if($CURRENT_RECORD{$reservedLABEL} eq '') + {print STDERR "Record has no LABEL above line $line_number at $REFS_FILE\n"; + unless($option_do_not_exit_on_empty_label){exit(1)}; # normally - exit after this error + &one_more_error; + } + + if($CURRENT_RECORD{$reservedTYPE} eq '') + {print STDERR "Record has no TYPE near line $line_number at $REFS_FILE\n"; &one_more_error; + } + + %{$ALLREFS[$current_ref_number]} = %CURRENT_RECORD; + + # Now erase everything from the hash!!! + my @allkeysfromhash = keys %CURRENT_RECORD; + foreach $item (@allkeysfromhash){delete($CURRENT_RECORD{$item})}; + + $current_ref_number++; #print "-------\n"; + + }; + }; + + close(RF); +}; + +#------------------------------------------------------- +sub check_uniq_labels +{ + +my $i=0; +my $j=0; + + + +for($i=0; $i<scalar(@ALLREFS)-1; $i++) +{ + # print ${$ALLREFS[$i]}{"$reservedLABEL"}, "\n"; #will print all labels + + for($j=$i+1; $j<scalar(@ALLREFS); $j++) + { + if(${$ALLREFS[$i]}{"$reservedLABEL"} eq ${$ALLREFS[$j]}{"$reservedLABEL"}) + { + print STDERR 'Label <',${$ALLREFS[$i]}{"$reservedLABEL"}; + print STDERR '>',"\n", ${$ALLREFS[$i]}{"$reservedLINE"}," --> "; + print STDERR ${$ALLREFS[$i]}{"$reservedDBFILE"}," and "; + print STDERR ${$ALLREFS[$j]}{"$reservedLINE"}," --> "; + print STDERR ${$ALLREFS[$j]}{"$reservedDBFILE"},"\n\n" ; + &one_more_error; + } + } + +} + +}; + +#------------------------------------------------------- + +######################################################### + + +sub read_inline_arguments +{my $DD='--'; my $D='-'; + my $counter=0; my $current=''; + my $guess; + +for($counter=0;$counter<scalar(@ARGV);$counter++) +{ + #print "$item \n"; + $current = $ARGV[$counter]; + +#------------------------------------------------------------ + #first check if it has '--' at the beginning + ($guess) = ($current =~/$DD([^ ]*)/); + if(($guess ne '')&&(substr($current,0,2) eq $DD)) + { + my $nothing=0; + SWITCH: { + if ($guess eq "help") {&print_help_info; exit(0);} + if ($guess eq "version"){&print_version_info; exit(0);} + + #options + if ($guess eq "noexit") + { $option_do_not_exit_on_empty_label=1; last SWITCH; } + if ($guess eq "errors") #number of errors to exit + { $counter++; $optionsEXITAFTERERRORS=$ARGV[$counter]; last SWITCH; } + + #reserved words + if ($guess eq 'separator') + { $counter++; $SEPARATOR=$ARGV[$counter]; last SWITCH; } + + $nothing = 1; + }; + if($nothing){print STDERR "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{next}; + }; + #------------------------------------------------------------------- + #second: check if it has '-' at the beginning + ($guess) = ($current =~/$D([^ ]*)/); + if(($guess ne '')&&(substr($current,0,1) eq $D)) + { + my $nothing=0; + SWITCH: { + #options + if ($guess eq "h") + { &print_help_info; exit(0)} + + if ($guess eq "d") + { my $itis=1; my $whatis=''; + while($itis) + { + $counter++; + unless($counter < scalar(@ARGV)){$counter--;last SWITCH;} + $whatis = $ARGV[$counter]; + if((substr($whatis,0,2) eq $DD)||(substr($whatis,0,1) eq $D)) + {$counter--; $itis=0;} + else{$REFS_FILES[$itis-1] = $whatis; $itis++}; + }; + if(scalar(@REFS_FILES)<1){print STDERR "Invalid format of -d option";} + last SWITCH; + } + if ($guess eq "v") + { $counter++; $verbosity_level=$ARGV[$counter]; last SWITCH; } + if ($guess eq "e") #number of errors to exit + { $counter++; $optionsEXITAFTERERRORS=$ARGV[$counter]; last SWITCH; } + #reserved words + #if ($guess eq 'etal') + # { $counter++; $reservedET_AL=$ARGV[$counter]; last SWITCH; } + $nothing = 1; + }; + if($nothing){print "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{next}; + }; + #--------------------------------------------------------------------- + #so, this is not switch + print STDERR "Unknown option <$current>!!! Exiting!\n"; exit(1); + +} + +}; + +#---------------------------------- +sub check_for_important_arguments +{ + + if(scalar(@REFS_FILES) == 0) + {print STDERR "You must select at least one refs dbase file with -d option!!!"; + print STDERR "Exiting!\n"; + exit(1) + }; + +}; +#----------------------------------- +sub print_version_info +{ +print "bibcheck utility v.$BIBCHECK_VERSION \n"; +print "Written by R.Stepanyan.\n\n"; +print "This is free software. There is NO warranty! \n"; +print "Redistribution of this software is covered by the terms of"; +print "the GNU General Public License.\n"; +print "For more information, please, contact rstepanyan\@yahoo.com\n"; +}; +#----------------------------------- +sub print_help_info +{ +print "This is bibcheck-utility from the Biblio package v.$BIBCHECK_VERSION \n"; +print "It checks your database file (references) for\n"; +print "the presence and consistency of LABELS\n"; +print "bibcheck [keys] -d dbasefile(s)\n"; +print "\n"; +print "-v <number> - verbosity level (0-5)\n"; +print "-h (--help) - this help\n"; +print "--noexit - don\'t exit but go on if an empty label is found\n"; +print "--separator - separator of the records in the DB-file\n"; +print "--version - version information\n"; +print "\n"; +print "About the other parameters see readme.1st \n"; +print "\n"; +#print "\n"; +}; + +#-------------------------------------------------------- +sub one_more_error +{ +if($optionsEXITAFTERERRORS > 0) +{ + if(++$TOTALERRORS >= $optionsEXITAFTERERRORS) + {print STDERR "Too many errors ($TOTALERRORS). Exiting!!!\n"; + exit(1); + }; +} +}; + + + + + + + + + +################################################################## +sub trim { + my @out = @_; + for (@out) { + s/^\s+//; + s/\s+$//; + } + return wantarray ? @out : $out[0]; +} diff --git a/support/biblio/biblio.pl b/support/biblio/biblio.pl new file mode 100755 index 0000000000..e1bf08b46b --- /dev/null +++ b/support/biblio/biblio.pl @@ -0,0 +1,1436 @@ +#!/usr/bin/perl + +#2345678901234567890123456789012345678901234567890123456789012345678901234567890 +# 10 20 30 40 50 60 70 + +################################################################################ +#12 Mar 2002 : "-a file.name" option (abreviations) is added +#------------------------------------------------------------------------------ +# 4 Dec 2002 : --movepoint option execution is implemented in a separate +# function named "ifmovepoint" +################################################################################ +# 3 Dec 2001 : Added one more feature. Now you can define TWO references formats +# One is "ref_format", the other is "ref2_format" +# First will be applied to \cite{}, the 2nd - to \refcite{} +# this is usefull because I want to use it as +# ....blah blah.$^3$ +# but +# ....blah blah ref 3. +# So, no move poin is applied to 2nd type REF!!!! +# If you do not use \refcite substitution, do not forget to include +# line +# \newcommand{\refcite}{\cite} +# It is better to have it there anyway!!! +#------------------------------------------------------------------------------- +# +# 4 Oct 2001 : 1. Minor bug is corrected +# 2. Now no points and commas at the beginning of the line +# Like in the piece of text +# +# Was shown in work +# \cite{lab2}. Blah-Blah-Blah +# +# if we use --movepoint option we get +# +# Was shown in work +# .\cite{lab2} Blah-Blah-Blah +# +# But it should be +# +# Was shown in work.\cite{lab2} Blah-Blah-Blah +# +# That is exactly what is fixed now. +# Although it adds a new bug: if you have +# +# Was shown in work +# % Blah-Blah-Blah +# \cite{lab2}. Blah-Blah-Blah# +# +# then one line is LOST!!!! +#------------------------------------------------------------------------------ +# 7 Sep 2001 : $optionsREPLACE_POINT is added +# (command line argument --movepoint) +# +# +################################################################################ + +use strict; +my $BIBLIO_VERSION = '1.21'; + +############################################## +# important global data structures + + # contains all "labels", found in the tex file in \cite{} command +my @REFS; # 0 is NOT used at the beginning. After some point it is used! +$REFS[0]=''; # I need '' here because all empty refs will be compared + # with this one and thrown out (as if they r already present)! + +my @ALLREFS; # Keeps all data about refs. Is array of hashes + # for example this piece of the code + # + # foreach $item (@ALLREFS) + # { + # print ${$item}{"AUTHORL"},"\n"; + # }; + # + # will print all ''AUTHOR'' fields + +my %REFSORDERED; # hash, containing the same, what is in the $REFS, + # but $REFSORDERED[$REFS[$i]] == $i + +my %ALLFORMATSTRINGS; #Keeps all format strings in the form: + #for example $ALLFORMATSTRINGS{'ARTICLE'} is format string for type ARTICLE +my $CITE_FORMAT;my $REF_FORMAT; # These are for references to articles, etc + my $refREF_FORMAT; # (like \cite{...}) and citation at the end of + # your tex-document (\begin{references} ...) +# They are paterns like ^{%s} - means just upper script +# Or [%s] will produce something like [1,2,6,7] in \cite +# and just [1] and [2] and .. in the references (literature) at the end of +# your tex document! + +my $ORDERING=''; # must contain key-field, like AUTHORL, or TITLE + +############################################# +# reserved names in the references file + +my $reservedLABEL='LABEL'; +my $reservedTYPE ='TYPE' ; + +my $reservedAUTHORL='AUTHORL'; +my $reservedAUTHORF='AUTHORF'; #??? po moemu uzhe ne nuzhen!!! ------------??????? +my $reservedAUTHOR ='AUTHOR'; #must be in the form '5;' - 5=five authors must be shown. + +my $reservedAND_SEPARATOR='|'; #what have to be put before the last author goes after this!!! + +my $reservedET_AL='{ \it{et al}}'; #if number of authors more than shown will be added after the last one. + + +my $reservedDOLLAR = '$'; +my $reservedARRAYSEP = '|'; +my $reservedCOMMENTSYMBOL = '%'; +my $SEPARATOR = "----------\n"; + +my $reservedHASH_KEY = 'HASH_KEY_'; +my $reservedEMTY_FIELD_SIGN = '???'; #will be written instead of emty fields +my $reservedNONUMBER = 'NONUMBER'; # if NONUMBER is given in the ref_format or cite_format, then no number will be put in the output. + # for example + # Normally: [4] Author, F.M. Interesting Articles' Journal + # NONUMBER Author, .... +#-------------------------------------- +# reserved names in the tex file; +my @STARTREFS= ('begin{references}','begin{thebibliography}'); +my @ENDREFS= ('end{references}', 'end{thebibliography}'); + +my $CITE = '\\\cite{'; +my $CITE0= '\cite{'; +my $refCITE = '\\\refcite{'; +my $refCITE0= '\refcite{'; + + +my $BIBITEM = '%'."\n".'\bibitem{'; + +my $reservedBEGINBIBLIO='begin{biblio}'; #options for biblio starts like this +my $reservedENDBIBLIO ='end{biblio}'; #and end like this! +my $reservedLEFTSTART ='['; #TYPE[FORMAT_STRING] +my $reservedRIGHTEND =']'; #so, example: + # ARTICLE[$AUTHOR0FL, M; $/ {\bf $YEAR$}, $VOL$] +my $reservedCITE_FORMAT='cite_format='; #must be in the form cite_format=^{%s} + +my $reservedREF_FORMAT ='ref_format='; # the same +my $reservedrefREF_FORMAT ='ref2_format='; + +my $reservedORDERING ='ordering='; #must be in the form ordering=AUTHORL. If no this field is given, then "asis" implied +my $reservedS_STRING ='%s'; +my $reservedS_STRING1 ='\%s'; +my $reservedSTANDARD_CITE_FORMAT = "[$reservedS_STRING]"; # default values +my $reservedSTANDARD_REF_FORMAT = "[$reservedS_STRING]"; # for references formats + +my $reservedREFERENCES ='\begin{center} \refname \end{center}' . "\n"; #'\begin{center} {\bf REFERENCES} \end{center}'."\n" +my $reservedSTARTREFS ='\begin{flushleft}'."\n\n"; #\begin{tabular}{p{0.05\textwidth}p{0.95\textwidth}}' +my $reservedENDREFS ='\end{flushleft}'; #\end{tabular}' +my $reservedBETWEENREFS="\n"; +my $reservedSEPARATORINCITE=','; # \cite[1,2,3,4] will produce {1$reservedSEPARATORINCITE2$reservedSEPARATORINCITE} +my $reservedMULTISEPARATORINCITE='-'; # \cite{1,2,3,4} => 1-4 +############################################ + +my %HASH_REFS; #CHANGE IT LATER!!! + + + +#$REFS_FILE= 'refs.db'; +my @REFS_FILES = ('refers.db'); +#my $REFS_FILE='';# 'refers.db'; + +#----------------------------------------- +#OPTIONS + +my $verbosity_level=1; # 5 is max +my $optionsINSERT_EMPTY_FIELDS_SIGN = 1; +my $optionsKEEP_BIBITEM_AND_CITE = 1; + # if 1 \cite{} will not be substituted and output will be written in the form + # \bibitem{string} where string is in the apropriate format (like in format_string) +my $optionsREFS_AS_TEX_LIST =0; #use list enviroment for references + +my $optionsREPLACE_POINT =0; # either Biblio should change "works\cite{}." to "works.\cite" +my $what_we_call_point = '.,;:'; # all signes condidered to be a POINT-sign. +my $optionsABBREVIATIONS =0; # use abbreviations tex-file +#------------------------------------------- + +my $TEX_NAME ='';# 'probe.tex'; +my $OUT_TEX ='';# 'pprobe.tex'; +my $FORMAT_NAME = '';#'macromolecules';#$TEX_NAME; # file where all rules are! +my $ABBR_NAME = 'abbr.tex'; #abbreviations file + +&read_inline_arguments; +&check_for_important_arguments; + +if ($verbosity_level > 0) +{ print "\nThis is biblio version $BIBLIO_VERSION\n"; + print 'Author R.Stepanyan <rstepanyan@yahoo.com>',"\n\n"; + print "input tex-file is <$TEX_NAME>;\n"; + print "output file is <$OUT_TEX>;\n"; + print "formats are in <$FORMAT_NAME>;\n"; + print 'refs databases are <'; + foreach my $qq (@REFS_FILES) {print "$qq "}; + print ">.\n\n"; +}; +if ($verbosity_level > 1) +{print "cite-tag in your tex-file <$TEX_NAME> assumed to be $CITE \n\n";}; + + +&make_list_of_refs; #makes list of all refs in @REFS + +my $i=0; +for($i=0; $i<scalar(@REFS); $i++) +{ + $REFS[$i] = $REFS[$i+1]; +}; +$#REFS--; #now $REFS[0] is also used!!!! + +#========================================================= + +#TO BE REMOVED - format string will be read from tex-file! +#my $FORMAT_STRING1 ='$AUTHORL$ {\bf $YEAR$}, $VOL$ ' ; +#print "format string = |$FORMAT_STRING1| \n"; + +#AUTHOR in the format string: +# 'AUTHOR5L, FM; ' means: +# - show max 5 aouthors +# - do it like this +# 'Stepanyan, R.R.; Subbotin, A.; ten Brinke, G.' +#%ALLFORMATSTRINGS= ('ARTICLE' => '$AUTHOR0FL, M; $/ {\bf $YEAR$}, $VOL$ ', +# 'BOOK' => 'BOOK $AUTHORL$ {\it $YEAR$}, $VOL$ ' ); #TO BE CHANGED should be read from file!!! + +&read_formats_and_speak_to_me; #??????????????????? +# OK, we now have +# 1. %ALLFORMATSTRINGS +# 2 $CITE_FORMAT and $REF_FORMAT; + + + + +$i=0; +my $item; +if($verbosity_level > 3) +{ +foreach $item (@REFS) # + {print "cite N$i is $item \n"; $i++ + }; +}; +if($verbosity_level > 4) +{print "make_list_of_refs from <$TEX_NAME> done...\n\n";} + +my $REFS_FILE; +foreach $REFS_FILE (@REFS_FILES) +{ #print $REFS_FILE, "-------\n"; + &read_ref_datafile($REFS_FILE); # all data will be stored in @ALLREFS - array of hashes + if($verbosity_level > 4) + {print "read_ref_datafile <$REFS_FILE> done...\n";} +}; +if($verbosity_level > 4){print "\n";} + +#this shows how to access @ALLREFS +#foreach $item (@ALLREFS) +#{ +# print ${$item}{"LABEL"},"-->",${$item}{"VOL"},"\n"; +#}; + +if($verbosity_level > 0) +{&complain_about_nonexisting_refs;} + +&order_this_list; +if($verbosity_level > 4) + {print "ordering of refs is done...\n";} + + +open(OUTTEX, "> $OUT_TEX"); +open(TEX,"$TEX_NAME"); + +my $do_insert=0; # if 0 - nothing has been done + # if 1 - process is going on + # if 2 - it is done + # if 3 - \end{references} is over +my $line; +while(<TEX>) +{ $line = $_; + + chomp($line); #added 4 oct + + foreach my $s (@STARTREFS) + { + if($s eq substr($line,1,scalar(split(//,$s)))) + {&insert_abbreviations_of_journals; $do_insert = 1;} + }; + if(($do_insert==0)||($do_insert==3)||($optionsKEEP_BIBITEM_AND_CITE==1)) + { # added 11 March 20002 + if($optionsKEEP_BIBITEM_AND_CITE) + { if($optionsREPLACE_POINT) + { + (my @qguess0) =( $line =~ /$CITE([^}]*)/gi ); + #now there r all xxx from \cite{xxx} in this array + my @qguess=trim(@qguess0); #??????????????? $dst =~ s/this/that/; + for(my $i=0; $i<scalar(@qguess); $i++) + { + my $this = "$CITE$qguess[$i]}"; + $line = ifmovepoint($this,$line) + } + }; + # end 11 March 20002 + print OUTTEX "\n$line" + } + else + {&find_there_cites_and_substitute_them($line)} + }; + if(($do_insert==2)&&($optionsKEEP_BIBITEM_AND_CITE!=1)) + { + foreach my $s (@ENDREFS) {if($s eq substr($line,1,scalar(split(//,$s)))) {$do_insert = 3;}}; + }; + next if $do_insert > 1; + next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) eq $reservedCOMMENTSYMBOL); # we r not interested in comments + $line = trim($line); + # foreach my $s (@STARTREFS) {if($s eq substr($line,1,scalar(split(//,$s)))) {$do_insert = 1;}}; + next if $do_insert ne 1; + if($optionsKEEP_BIBITEM_AND_CITE) + { #\begi{references} is already written + &print_all_references_into_tex_in_bibitem_format; $do_insert = 2; + } + else + { if($optionsREFS_AS_TEX_LIST!=1){&print_all_references_into_tex; $do_insert = 2;} + else{&print_all_references_into_tex_as_list; $do_insert = 2;} + }; + +}; +close(OUTTEX); +close(TEX); + +if ($verbosity_level > 0) { print "\nFinished!\n"} +exit(0); + + + +############################################### +#********************************************* +############################################## +#******************************************** +############################################### +#=========================== + + + +#makes list of all cites and place them into @REFS +#order is according to their place in the tex-file +sub make_list_of_refs +{ +my $guess; my @multiguess; my $last; my (@qguess,@qguess2); +open(TEX, $TEX_NAME)|| die "Could not open $TEX_NAME: $!"; + while (<TEX>) { # read a line from file TEX into $_ + $last = $_; + #next if (substr($last,0,1) eq "$reservedCOMMENTSYMBOL"); + if ($last =~ m/$reservedCOMMENTSYMBOL/) + { if($last =~ m/\\$reservedCOMMENTSYMBOL/) + { my $new_last='';#split(//,$last); + # my $last1=''; + # print $last," <-- is \n"; + # for($i=0;$i<scalar(@new_last);$i++) + # { + # if() + # }; + my @spl=split(/\\$reservedCOMMENTSYMBOL/,$last); + for($i=0;$i<scalar(@spl);$i++) + { + if(substr($spl[$i], -1) eq "\\") {$new_last = $new_last ."\\" ;last}; + if($spl[$i] =~ m/$reservedCOMMENTSYMBOL/) + { my ($temp)=split(/$reservedCOMMENTSYMBOL/,$spl[$i]); + $new_last = $new_last . $temp; + last; + } + else + {$new_last = $new_last . $spl[$i];} + }; + $last = $new_last; + } + else + { + ($last)= split( /$reservedCOMMENTSYMBOL/,$last); + }; + #Now we should look, might be it was "\%" but not "%" + + }; + next if (trim($last) eq '' ); + +# ($guess) =( $last =~ /$CITE([^}]*)/ ); + (@qguess) =( $last =~ /$CITE([^}]*)/gi ); + (@qguess2) =( $last =~ /$refCITE([^}]*)/gi ); + $guess=""; + my $nn=scalar(@qguess); + for($i=0; $i<$nn; $i++) + {$guess=$guess.','.$qguess[$i]}; + my $nn=scalar(@qguess2); + for($i=0; $i<$nn; $i++) + {$guess=$guess.','.$qguess2[$i]}; + + $guess=trim($guess); # remove SPACE from the beginning and end + if($guess ne '') + {#print "\n this is guess: $guess \n"; + + @multiguess = split(/,/ , $guess); # if this is \cite{1,2,3,4,..} + @multiguess = trim(@multiguess); + + my $nmulti=scalar(@multiguess); + + for($i=0; $i<$nmulti; $i++) + { #print $i,"=",$multiguess[$i]," "; + my $notfound=1; + foreach $item (@REFS) + { if($item eq $multiguess[$i]){$notfound =0; last } + }; + + if($notfound) {$nn=scalar(@REFS); $REFS[$nn] = $multiguess[$i];} + }; + } + }; + + +close(TEX); + + +}; + +#-------------------------------------------------------- + +sub read_ref_datafile +#________________________________________________ +#reads references file. Data stored in @ALLREFS +#structure of the refs-file: +#LABEL=3dFlex +#TYPE=article +#AUTHORL=subbotin +#TITLE={Microphase separation within comb-like copolymer with attractive side-chains: computer simulations1.} +#JOURNAL= Macromol. Theory and Simul1. +#----------<10pieces> +# +#At the end should be Enter, so better to put EOF after it in the +#next line +# +{ my $current_ref_number=0; my $line; + my @fields; my %CURRENT_RECORD; + + my $it_is_label=1; my $save_current_field=0; + + my $item; + my $REFS_FILE = @_[0]; + + open(RF, $REFS_FILE)|| die "Could not open $REFS_FILE: $!"; + while($line = <RF>) + { next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) eq $reservedCOMMENTSYMBOL); + if($line ne $SEPARATOR) + { + $line=trim($line); + @fields = split(/=/, $line); + + @fields = trim(@fields); + + if($fields[0] eq $reservedLABEL) + { + foreach $item (@REFS) + { if($item eq $fields[1]) #this label is in REFS + { $save_current_field = 1 } + } + }; + + if($save_current_field) + { if($fields[0] eq $reservedLABEL){$CURRENT_RECORD{$fields[0]} = $fields[1]; } + else + { + if($CURRENT_RECORD{$fields[0]} ne '') + { + $fields[1]=trim($fields[1]); + $CURRENT_RECORD{$fields[0]}="$CURRENT_RECORD{$fields[0]}$reservedARRAYSEP$fields[1]" ; + } + else + {$CURRENT_RECORD{$fields[0]} = trim($fields[1]); } + }; + #MUST change it to read fields with many '=' in the body text!!! + #print "$fields[0] == $CURRENT_RECORD{$fields[0]}\n"; + } + } + else + { + if($save_current_field) + { %{$ALLREFS[$current_ref_number]} = %CURRENT_RECORD; + # Now erase everything from the hash!!! + my @allkeysfromhash = keys %CURRENT_RECORD; + foreach $item (@allkeysfromhash){delete($CURRENT_RECORD{$item})}; + + $current_ref_number++; #print "-------\n"; + }; + $save_current_field = 0; + }; + }; + close(RF); +}; + +#---------------------------------------------------------- + +sub complain_about_nonexisting_refs +#check that all @REFS have counterpart in @ALLREFS +{my $item=''; my $item1=''; my $good_label; + + foreach $item (@REFS) + { $good_label=0; + foreach $item1 (@ALLREFS) + {if($item eq ${$item1}{"$reservedLABEL"}) {$good_label=1; next;}} + if($good_label == 0) + { print STDERR " WARNING! Cite-label <$item> has not been resolved! \n"; + } + }; + print STDERR "\n"; +} + +#--------------------------------------------------- +sub read_formats_and_speak_to_me +#calls read_format_string and also produces output about results +{ +&read_format_strings; +if($verbosity_level > 3) +{print "\nread_format_strings from <$FORMAT_NAME> done...\n\n"; + printf("%16s | %s\n","TYPE","FORMAT STRING"); + printf("%15s--+-%s\n","---------------","---------------------------------------------------"); + foreach my $key (keys %ALLFORMATSTRINGS) + { printf("%16s | %s\n",$key,$ALLFORMATSTRINGS{$key})}; + for(my $i=0;$i<70;$i++){print "-";};print "\n"; +}; +if($CITE_FORMAT eq '') +{ print STDERR "Citation format not found or wrong in <$FORMAT_NAME>. Assuming default!\n"; + $CITE_FORMAT = $reservedSTANDARD_CITE_FORMAT +}; +if(uc($CITE_FORMAT) eq $reservedNONUMBER){$CITE_FORMAT='';}; #???????? +if($REF_FORMAT eq '') +{ print STDERR "Citation reference format not found or wrong in <$FORMAT_NAME>. Assuming default!\n"; + $REF_FORMAT = $reservedSTANDARD_REF_FORMAT +}; + +#print "$CITE_FORMAT $REF_FORMAT \n"; +if($verbosity_level > 0) + { print "\n!!! Citation format:$CITE_FORMAT. \n Reference format=$REF_FORMAT. Second reference format=$refREF_FORMAT.\n Ordering:"; + if($ORDERING eq ''){print "as is\n\n"}else {print " key field is <$ORDERING>\n\n"} + }; + +} + +#---------------------------- +sub read_format_strings +# this function reads formats for references from file $FORMAT_NAME +# this can be just header in the decument (tex-file) or separate file! +{my $line=''; + my $start_interpreting=0; # 0 - not started yet + # 1 - interpreting + + my @justarray; + + if($verbosity_level > 3){print "Format strings are in <$FORMAT_NAME>\n\n"} + + open(FRM, "$FORMAT_NAME") || die "Could not open $FORMAT_NAME: $!"; + while(<FRM>) + { my $hash_key=''; my $hash_value=''; + $line = $_; #print $line; + $line = trim($line); + next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) ne $reservedCOMMENTSYMBOL); + #skip lines, starting NOT from % + next if (substr(trim($line),0,2) eq "$reservedCOMMENTSYMBOL$reservedCOMMENTSYMBOL"); + $line = substr(trim($line),1); + $line=trim($line); + next if $line =~ /^\s*$/; + if($line eq $reservedBEGINBIBLIO){$start_interpreting=1;next;}; + if($line eq $reservedENDBIBLIO){ close(FRM); return;}; + + + if(not $start_interpreting){next;}; + + #OK, now no shit in this line! + if($verbosity_level > 4){print $line," is read from <$FORMAT_NAME>\n";}; + @justarray=split(//,$line); + + #try to find if this is "cite_format" or "ref_format" + my $format=''; + ($format) = ($line =~ /$reservedCITE_FORMAT([^,\n]*)/); + if($format ne '') + {if(($format =~ m/$reservedS_STRING1/)||($format =~/$reservedNONUMBER/)) + { $CITE_FORMAT = $format; + if($verbosity_level > 4){print "Citation format=$format\n\n";} + next; + } + else + {print STDERR "Unknown citation format \"$format\". Assuming standard=", + "$reservedSTANDARD_CITE_FORMAT\n"; + $CITE_FORMAT = $reservedSTANDARD_CITE_FORMAT ; next; + } + } ; + # now try to find "ref_format" + ($format) = ($line =~ /$reservedREF_FORMAT([^,\n]*)/); + if($format ne '') + {if($format =~ m/$reservedS_STRING1/) + { $REF_FORMAT = $format; + if($verbosity_level > 4){print "Citation reference format=$format\n\n";}; + next; + } + else + {print STDERR "Unknown reference format \"$format\". Assuming standard: ", + "$reservedSTANDARD_REF_FORMAT\n"; + $REF_FORMAT = $reservedSTANDARD_REF_FORMAT ; next; + } + } + ($format) = ($line =~ /$reservedrefREF_FORMAT([^,\n]*)/); + if($format ne '') + {if($format =~ m/$reservedS_STRING1/) + { $refREF_FORMAT = $format; + if($verbosity_level > 4){print "Citation reference 2nd format=$format\n\n";}; + next; + } + else + {print STDERR "Unknown 2nd reference format \"$format\". Assuming standard: ", + "$reservedSTANDARD_REF_FORMAT\n"; + $refREF_FORMAT = $reservedSTANDARD_REF_FORMAT ; next; + } + } + + ($format) = ($line =~ /$reservedORDERING([^,\n]*)/); + if($format ne '') + {$ORDERING = trim($format); + if($verbosity_level > 4){print "Key field for refs ordering=$ORDERING\n\n";}; + next; + } ; + + my $this_is_key=1; + + my $narray=scalar(@justarray); + for(my $i=0;$i< $narray-1; $i++) + { + if(($this_is_key)&&($justarray[$i] eq $reservedLEFTSTART)) + {$this_is_key = 0; next;}; + if($this_is_key) + {$hash_key ="$hash_key$justarray[$i]";} + else + {$hash_value = "$hash_value$justarray[$i]"} + }; + if($justarray[$narray-1] ne $reservedRIGHTEND) + { + print STDERR "Format string \"$line\" must end with \"$reservedRIGHTEND\"!\n"; + print STDERR "This is fatal error. Exiting..."; + exit(1); + }; + $hash_key=trim($hash_key); + #now analize $hash_key. It must be puur symbolic! + unless($hash_key=~ /^[A-Za-z0-9]+$/) + {print STDERR "Key field \"$hash_key\" in \"$line\" must include only A-Z,a-z,0-9\n"; + print STDERR "This is fatal error. Exiting..."; + exit(1); + }; + + my $hash_key1=uc($hash_key); + + if (($hash_key1 ne $hash_key)&&($verbosity_level>2)) + {print " WARNING!!! Key field\n \"$hash_key\" in \"$line\"\n converted to uppercase!!!\n"}; + $ALLFORMATSTRINGS{$hash_key1} = $hash_value; + + }; + close(FRM); + + +}; + +#------------------------------------------------------------ + +#reads REFS_FILE and finds there text for references +#according to labels in @REFS +#All Refs are put into hash %HASH_REFS where index is $REFS (label) +sub prepare_all_refs +{ + my $HASH_CURRENT_ITEM; + + open(REFF,$REFS_FILE)|| die "Could not open $REFS_FILE: $!"; + my $this_is_label=1; my $label; my $last ; my $refitem; + my $HAS_CURRENT_ITEM; + while(<REFF>) + { + $last = $_; + if($this_is_label) + { $label=$last;chomp($label);$label=trim($label); + foreach $refitem (@REFS) + {if($label eq $refitem) + {$HASH_CURRENT_ITEM = $label; + print "found $refitem in $REFS_FILE\n" + } + } + $this_is_label=0; + } + elsif($last eq $SEPARATOR){$this_is_label=1; + print $HASH_REFS{$HASH_CURRENT_ITEM},"\n";} + else + { + $HASH_REFS{$HASH_CURRENT_ITEM}=$HASH_REFS{$HASH_CURRENT_ITEM} . $last; + #print $HASH_REFS{$refitem},"\n"; + } + + }; + close(REFF); +}; +#---------------------------------------------------------- + +sub print_all_references_into_tex_in_bibitem_format +{ my $item1; + print OUTTEX "\n",'%Generated by biblio',"\n"; + for(my $i=0;$i<scalar(@REFS);$i++) + { $item = @REFS[$i]; + foreach $item1 (@ALLREFS) #loop 1 + {if($item eq ${$item1}{"$reservedLABEL"}) + { my $thetype=uc(${$item1}{"$reservedTYPE"}); # IN THE UPPER CASE! + if($ALLFORMATSTRINGS{"$thetype"} eq '') + { print STDERR "No format string for TYPE <$thetype>. Skipping record <$item>!\n"; + last; + }; + + print OUTTEX $BIBITEM,$item,'}',"\n",'{'; #,$CITE_FORMAT; + + #print $thetype,"-->",$ALLFORMATSTRINGS{"$thetype"}, "\n"; + + &formated_output($ALLFORMATSTRINGS{"$thetype"},%{$item1}); #CHANGE $FORMAT_STRING1 HERE!!! + print OUTTEX '}',"\n"; + #next; + + last; #this is last for loop 1 + } + }; + + }; + print OUTTEX '%',"\n",'%End of Generated by biblio',"\n"; + +} +#----------------------------------------------------------- +sub print_all_references_into_tex #OUTTEX must be opened! +{ +my $item1; my $st; + + print OUTTEX "\n$reservedREFERENCES$reservedSTARTREFS"; + + my $counter=1; + + my $found_it=0; + + for(my $i=0;$i<scalar(@REFS);$i++) + { $item = @REFS[$i]; + $found_it=0; + + foreach $item1 (@ALLREFS) + {if($item eq ${$item1}{"$reservedLABEL"}) + { my $thetype=uc(${$item1}{"$reservedTYPE"}); # IN THE UPPER CASE! + if($ALLFORMATSTRINGS{"$thetype"} eq '') + { print STDERR "No format string for TYPE <$thetype>. Skipping record <$item>!\n"; + $st = sprintf("$CITE_FORMAT",$counter); + print OUTTEX "$st ";#,$CITE_FORMAT; + $counter++; + print OUTTEX "No format string for TYPE <$thetype>. Skipping record <$item>!"; + print OUTTEX "\n$reservedBETWEENREFS"; + $found_it = 1; + last; + }; + $st = sprintf("$CITE_FORMAT",$counter); + print OUTTEX "$st ";#,$CITE_FORMAT; + $counter++; + #print $thetype,"-->",$ALLFORMATSTRINGS{"$thetype"}, "\n"; + &formated_output($ALLFORMATSTRINGS{"$thetype"},%{$item1}); #CHANGE $FORMAT_STRING1 HERE!!! + print OUTTEX "\n$reservedBETWEENREFS"; + $found_it=1; + last; + } + } + unless($found_it) + { + $st = sprintf("$CITE_FORMAT",$counter); + print OUTTEX "$st ";#,$CITE_FORMAT; + $counter++; + print OUTTEX "Record <$item> was not found in the references dbases"; + print OUTTEX "\n$reservedBETWEENREFS"; + } + }; + print OUTTEX "$reservedENDREFS\n"; +}; + +#------------------------------------------------------------ +sub print_all_references_into_tex_as_list +{ + my $item1; my $st; + + print OUTTEX "\n$reservedREFERENCES"; + + print OUTTEX '\newcounter{bibliocounterrr}',"\n"; + print OUTTEX '\begin{list}'; + + $st = sprintf("$CITE_FORMAT",'\arabic{bibliocounterrr}'); + print OUTTEX '{',"$st",'}',"\n";#,$CITE_FORMAT; + print OUTTEX ' {\usecounter{bibliocounterrr}',"\n"; + print OUTTEX ' \setlength{\labelwidth}{1cm}\setlength{\leftmargin}{1cm}',"\n"; + print OUTTEX ' \setlength{\labelsep}{0.5cm}\setlength{\rightmargin}{0cm}',"\n"; + print OUTTEX ' \setlength{\parsep}{0.5ex plus0.2ex minus0.1ex}'; + print OUTTEX ' \setlength{\itemsep}{1ex plus0.2ex}',"\n"; + print OUTTEX '}',"\n"; + + + + + my $found_it=0; + + for(my $i=0;$i<scalar(@REFS);$i++) + { $item = @REFS[$i]; + $found_it=0; + + foreach $item1 (@ALLREFS) + {if($item eq ${$item1}{"$reservedLABEL"}) + { my $thetype=uc(${$item1}{"$reservedTYPE"}); # IN THE UPPER CASE! + if($ALLFORMATSTRINGS{"$thetype"} eq '') + { print STDERR "No format string for TYPE <$thetype>. Skipping record <$item>!\n"; + + print OUTTEX '\item '; + + print OUTTEX "No format string for TYPE <$thetype>. Skipping record <$item>!"; + print OUTTEX "\n$reservedBETWEENREFS"; + $found_it = 1; + last; + }; + + print OUTTEX '\item ';#,$CITE_FORMAT; + + #print $thetype,"-->",$ALLFORMATSTRINGS{"$thetype"}, "\n"; + &formated_output($ALLFORMATSTRINGS{"$thetype"},%{$item1}); #CHANGE $FORMAT_STRING1 HERE!!! + print OUTTEX "\n$reservedBETWEENREFS"; + $found_it=1; + last; + } + } + unless($found_it) + { + + print OUTTEX '\item ';#,$CITE_FORMAT; + + print OUTTEX "Record <$item> was not found in the references dbases"; + print OUTTEX "\n$reservedBETWEENREFS"; + } + }; + print OUTTEX '\end{list}',"\n"; + +}; +#------------------------------------------------------------ + +sub formated_output +# takes format string in the form +# $FORMAT_STRING ='$AUTHOR5F L;$ {\bf $YEAR$}, $VOL$ - $NUMBER$' ; +# and hash +# of the type +# my %HASH_REFS= ('AUTHOR' => 'Stepanyan', +# 'YEAR' => '2000', +# 'VOL' => '12', +# 'RT' => 'qq'); +# of course fields in hash can be any. +# Then makes output of the hash into stdout +# according to the format string. +# File with file handle OUTTEX must be opened for writing!!!! +{ +my @in_arguments = @_; #take all arguments of this function + +my $FORMAT_STRING=$in_arguments[0]; # the first MUST be the format string + +my %HASH_REFS; #all the rest of arguments + #must be put into this hash + +my $i; #next lines make hash from array +for($i=1;$i<scalar(@in_arguments)-1;$i=$i+2) +{ $HASH_REFS{$in_arguments[$i]} = $in_arguments[$i+1] +}; + + +my @format_char_array; # all chars from the format string +my @format_array; # if format_string='$AUTHOR$ {\bf 2}' + # then format array will be + # ('HASH_KEY_AUTHOR',' {\bf 2}') + +@format_char_array = split(//, $FORMAT_STRING); + +my $start_flag = 0; # when I see $ I do $start_flag=1 + # when I see it again I do =0 + # I do it to cath al $xxxx$ things! + +my $counter=0; # just counter for the @format_array + + +my $char; + +###print "-----\n"; +foreach $char (@format_char_array) +{ + ###print "$char\n"; + if($char ne $reservedDOLLAR) # if it is NOT '$' + { # add this char and don't bother yourself with it! + $format_array[$counter] = $format_array[$counter] . $char; + } + else # oooh, this is '$' + { + if($start_flag == 0){$start_flag = 1} #if it is start of command + else{$start_flag = 0}; #if it is end of command + $counter++; + if($start_flag == 1) #if this will be command + #add HASH_KEY before the name of it! + {$format_array[$counter] = $reservedHASH_KEY;}; + + } +}; +###print "-----\n"; +###foreach $char (@format_array) +###{ print "|$char|\n"}; + +my $char1; my $post_author=''; + +my @author_fields; +my $last_sep=''; # 'R.R.Stepanyan',$last_sep,'A.A.Subbotin' - example +my @author_name_key; my @author_seps; + +foreach $char (@format_array) +{ ($char1) = ( $char =~ /$reservedHASH_KEY([^}]*)/ ); + # $char1=trim($char1); + #$char=trim($char); + $#author_fields = -1; + if($char1 ne '') + { if((not($char1 =~ m/$reservedAUTHOR/))&&($HASH_REFS{$char1} eq '')) #this is not author + # and this field is empty + { if($optionsINSERT_EMPTY_FIELDS_SIGN) + {print OUTTEX '{',$reservedEMTY_FIELD_SIGN,'}'}; #OUTTEX is opened! + if($verbosity_level > 1) #complain about absence of field + {print STDERR "Field <$char1> in the record <$HASH_REFS{$reservedLABEL}> is empty!\n"}; + } + elsif($char1 =~ m/$reservedAUTHOR/) + { ($post_author) = ($char1 =~ /$reservedAUTHOR([^\$]*)/); # what if after AUTHOR ?? + @author_fields=split(//,$post_author); + + my $iaf=0; #number of names in one author (last, first, middle name = 3) + my $saf=0; #number of separators + my $start=0; + my $max_n_of_aut=0;#max num of authors to show. If 0 then unlimited! ?????????? + + my $and_word=''; #have to be before the last author if number of outhors>1 + + while($author_fields[$start] =~ /^[0-9]+$/) + {$max_n_of_aut="$max_n_of_aut$author_fields[$start]"; + $start++; + }; + + my $niaf; + $niaf=scalar(@author_fields); + $#author_name_key = -1; $#author_seps = -1; #to make them clean! + + for(my $ii=$start; $ii<$niaf; $ii++) + { + if($author_fields[$ii] =~/^[A-Za-z]+$/) + {$author_name_key[$iaf] = "$reservedAUTHOR$author_fields[$ii]"; $iaf++; $saf++;} + elsif($author_fields[$ii] ne $reservedAND_SEPARATOR) + {$author_seps[$saf] = "$author_seps[$saf]$author_fields[$ii]"} + else{$and_word = substr($post_author,$ii+1); + $ii=$niaf+1; #to finish the loop + } + }; + + $last_sep=$author_seps[$saf]; + + #Thus we have + # @author_name_key - array of the type (AUTHORL, AUTHORF, AUTHORM) + # @author_seps - $author_seps[1] is what should be placed after AUTHORF, 0-th - after AUTHORL + # $last_sep - should be placed after the complete name of one person! + + #print $HASH_REFS{'AUTHORL'} ; + my $n_of_aut=0 ; my $schet=0; my @avtor; + + #HOW MANY AUTHOR WE HAVE??? We should find MAXIMUM!! + + while($schet < scalar(@author_name_key) ) + { @avtor = split(/\|/,$HASH_REFS{$author_name_key[$schet]}); # + if($n_of_aut < scalar(@avtor)){$n_of_aut = scalar(@avtor)}; #number of authors + $schet++; + }; + # Now number of authors is in the $n_of_aut + + + my $print_etal = 0; #????????????? + if(($max_n_of_aut > 0)&&($max_n_of_aut < $n_of_aut)){$n_of_aut=$max_n_of_aut; $print_etal=1;} + # now number of authors to display is '$n_of_aut'! + + my $jj; #counter for all names of one author! + my $max_jj = scalar(@author_name_key); + + for(my $ii=0;$ii<$n_of_aut;$ii++) # $ii is number of aut to display + { + for($jj=0;$jj<$max_jj ;$jj++) # $jj is counter of name of the same person + { + #print OUTTEX $author_seps[$jj]; + @avtor = split(/\|/,$HASH_REFS{$author_name_key[$jj]}); + @avtor = trim(@avtor); + if($avtor[$ii] ne ''){print OUTTEX $author_seps[$jj]; + + print OUTTEX $avtor[$ii];}; + }; + + + if($ii<$n_of_aut-2){print OUTTEX $last_sep;}; #for all except the last + if($ii == $n_of_aut-2) + { if(($n_of_aut>2)||(trim($and_word) eq "")){print OUTTEX $last_sep}; + if(($n_of_aut>1)&&($print_etal == 0)){print OUTTEX " $and_word ";} + + }; + }; + #print $last_sep; + if($print_etal){print OUTTEX $reservedET_AL;} + } + else + { + print OUTTEX '{',$HASH_REFS{$char1},'}' + }; + + + } + else{print OUTTEX $char}; +}; +#print "\n"; +}; +#--------------------------------------------------- +sub find_there_cites_and_substitute_them +#processes line like 'this was done in works \cite{qq,rt6,markus,work56}' +#from INPUT.tex +#into the line like 'this was done in works $^{1-3,8}$' +#and writes it into OUTPUT.tex +{ + my @out = @_ ; + my $line=$out[0]; + + my (@qguess, @qguess2); #keeps lines like "label1,label2,label3" + my (@qresults,@qresults2); #must keep numbers like "1,2,3" + (my @qguess0) =( $line =~ /$CITE([^}]*)/gi ); #now there r all xxx from \cite{xxx} in this array + (my @qguess00) =( $line =~ /$refCITE([^}]*)/gi ); #now there r all xxx from \refcite{xxx} in this array + # if there are more than one \cite in this line, then number of elements in qguess>1 + + #added 4 Oct (1.) + chomp($line); + # + + if((scalar(@qguess0)==0)&&(scalar(@qguess00)==0)) + {print OUTTEX "\n",trim($line); return}; # trim() - because we do not want + # spaces at the end!!! +#-------------- + @qguess=trim(@qguess0); #??????????????? $dst =~ s/this/that/; + my @current; + for(my $i=0; $i<scalar(@qguess); $i++) + { $#current=-1; + @current = trim(split(/,/, $qguess[$i])) ; + for(my $j=0; $j<scalar(@current);$j++) + { # print OUTTEX $current[$j]," " ; + # for( my $k=0; $k<scalar(@ALLREFS); $k++) + # { if( $current[$j] eq $ALLREFS[$k]) {$qresults[$i] = "$qresults[$i]$k"} + # }; + if($qresults[$i] eq ''){$qresults[$i]="$REFSORDERED{$current[$j]}" ; } + else{$qresults[$i]="$qresults[$i]$reservedSEPARATORINCITE$REFSORDERED{$current[$j]}"} + }; + }; + ####### + @qguess2=trim(@qguess00); + my @current2; + for(my $i=0; $i<scalar(@qguess2); $i++) + { $#current2=-1; + @current2 = trim(split(/,/, $qguess2[$i])) ; + for(my $j=0; $j<scalar(@current2);$j++) + { if($qresults2[$i] eq ''){$qresults2[$i]="$REFSORDERED{$current2[$j]}" ; } + else{$qresults2[$i]="$qresults2[$i]$reservedSEPARATORINCITE$REFSORDERED{$current2[$j]}"} + }; + }; +#------------- + + for(my $i=0; $i<scalar(@qresults); $i++) + { #print OUTTEX $qresults[$i],"|"; + my $this = "$CITE$qguess[$i]}"; + $qresults[$i] = &make_1234__1_4($qresults[$i]) ; + my $that = sprintf("$REF_FORMAT",$qresults[$i]) ; + + # at this point one can change order of [.,;:] and \cite{} + # because it has to be: works.$^{1,3,7}$ + # instead of : works$^{1,3,7}$. + # whereas in the source it is: works \cite{1,3,7}. + # parameter $optionsREPLACE_POINT governes that + # $what_we_call_point = '.,:;' includes all POINT-like characters + + # what we do: + # 1. divide $line into 3 parts: 1st = waht is before \cite + # 2nd = \cite{ } itself + # 3rd = what is after \cite{} + # so, if one had $line = 'word \cite{1}. After' + # then: $part1 = 'word ' $part2='\cite{1}' $part3='. After' + # + # 2. make $part3a=trim($part3) + # 3. take the first character from $place3a and + # check if it is in $what_we_call_point + # 4. if answer from 3 is YES: + # + # + + if($optionsREPLACE_POINT) + { $line = ifmovepoint($this,$line) }; + + $line =~ s/ $this/$that/; $line =~ s/$this/$that/; + }; + + + for(my $i=0; $i<scalar(@qresults2); $i++) + { #print OUTTEX $qresults2[$i],"|"; + my $this = "$refCITE$qguess2[$i]}"; + $qresults2[$i] = &make_1234__1_4($qresults2[$i]) ; + my $that = sprintf("$refREF_FORMAT",$qresults2[$i]) ; + + $line =~ s/ $this/$that/; $line =~ s/$this/$that/; + }; + + #now let us check, that $line has \n at the end. If it does not we have to add it +# chomp($line); # just to be sure!!! +# $line="$line\n"; + + + + #added 4 Oct 2001 + #At this point we have to look if there is "so called point" at the beginning of the $line + + my $first_character_in_this_line = substr($line,0,1); + if($first_character_in_this_line =~ /[$what_we_call_point]/) + { print OUTTEX $line; } + else + { print OUTTEX "\n$line";} + #end of added 4 Oct 2001 + + # before 4 Oct it was just: print OUTTEX $line; +}; +#--------------------------------------------------- +sub make_1234__1_4 +{ + my $line = @_[0]; + #print $line; + my @LINE = trim(split(/$reservedSEPARATORINCITE/,$line)); + if(scalar(@LINE) < 3){ return $line;}; + # print " ",$LINE[0], $LINE[1], "\n" ; + $line = $LINE[0]; + my $currentseparator= $reservedSEPARATORINCITE; + for(my $i=1; $i<scalar(@LINE); $i++) + { + if(($LINE[$i] != $LINE[$i-1]+1)||($i+1 == scalar(@LINE))||($LINE[$i] != $LINE[$i+1]-1)) + { #$currentseparator= $reservedSEPARATORINCITE; + $line = "$line$currentseparator$LINE[$i]";$currentseparator= $reservedSEPARATORINCITE; + } + else + {$currentseparator= $reservedMULTISEPARATORINCITE} + }; + + return $line; +}; +#--------------------------------------------------- +sub order_this_list +{ #??? TO BE DONE!!!!!!! + #for(my $i=0; $i<scalar(@REFS); $i++){ print "$i ->>> $REFS[$i] --\n"}; + + unless($ORDERING eq '') + { + my $do_ordering=1; + while($do_ordering) + { $do_ordering=0; + for(my $i=1; $i<scalar(@REFS); $i++) + { + if(&keyfield($REFS[$i-1]) gt &keyfield($REFS[$i]) ) + {($REFS[$i-1], $REFS[$i]) = ($REFS[$i], $REFS[$i-1]); $do_ordering =1 } + } + }; + }; + + for(my $i=0; $i<scalar(@REFS); $i++){ $REFSORDERED{"$REFS[$i]"} = $i+1}; + #foreach $item (keys %REFSORDERED){ print $item,"--->",$REFSORDERED{"$item"},"\n"} +}; + +sub keyfield +{ + my $a = @_[0]; + + foreach $item (@ALLREFS) + { + # print ${$item}{"LABEL"},"-->",${$item}{"VOL"},"\n"; + if(${$item}{"$reservedLABEL"} eq $a) {return ${$item}{"$ORDERING"}} + }; + return ''; +}; +#--------------------------------------------------- +sub trim { + my @out = @_; + for (@out) { + s/^\s+//; + s/\s+$//; + } + return wantarray ? @out : $out[0]; +} +######################################################### + + +sub read_inline_arguments +{my $DD='--'; my $D='-'; + my $counter=0; my $current=''; + my $guess; + +for($counter=0;$counter<scalar(@ARGV);$counter++) +{ + #print "$item \n"; + $current = $ARGV[$counter]; + +#------------------------------------------------------------ + #first check if it has '--' at the beginning + ($guess) = ($current =~/$DD([^ ]*)/); + if(($guess ne '')&&(substr($current,0,2) eq $DD)) + { + my $nothing=0; + SWITCH: { + if ($guess eq "help") {&print_help_info; exit(0);} + if ($guess eq "version"){&print_version_info; exit(0);} + + #options + if ($guess eq "nobibitem") + { $optionsKEEP_BIBITEM_AND_CITE=0; last SWITCH; } + if ($guess eq "not_insert_empty_field_sign") + { $optionsINSERT_EMPTY_FIELDS_SIGN=0 ; last SWITCH; } + if ($guess eq "uselist") + { $optionsREFS_AS_TEX_LIST=1 ; last SWITCH; } + if ($guess eq "movepoint") + { $optionsREPLACE_POINT=1 ; last SWITCH; } + + + #reserved words + if ($guess eq 'separator') + { $counter++; $SEPARATOR=$ARGV[$counter]; last SWITCH; } + if ($guess eq 'start_refs') + { my $itis=1; my $whatis=''; + $#STARTREFS=-1; + while($itis) + { + $counter++; + unless($counter < scalar(@ARGV)-1){$counter--;last SWITCH;} + $whatis = $ARGV[$counter]; + if((substr($whatis,0,2) eq $DD)||(substr($whatis,0,1) eq $D)) + {$counter--; $itis=0;} + else{$STARTREFS[$itis-1] = $whatis; $itis++}; + }; + if(scalar(@STARTREFS)<1){print STDERR "Invalid format of --start_refs option";} + last SWITCH; + } + if ($guess eq 'end_refs') + { my $itis=1; my $whatis=''; + $#ENDREFS=-1; + while($itis) + { + $counter++; + unless($counter < scalar(@ARGV)-1){$counter--;last SWITCH;} + $whatis = $ARGV[$counter]; + if((substr($whatis,0,2) eq $DD)||(substr($whatis,0,1) eq $D)) + {$counter--; $itis=0;} + else{$ENDREFS[$itis-1] = $whatis; $itis++}; + }; + if(scalar(@ENDREFS)<1){print STDERR "Invalid format of --end_refs option";} + last SWITCH; + } + if ($guess eq 'etal') + { $counter++; $reservedET_AL=$ARGV[$counter]; last SWITCH; } + if ($guess eq 'empty_field_sign') + { $counter++; $reservedEMTY_FIELD_SIGN=$ARGV[$counter]; last SWITCH; } + $nothing = 1; + }; + if($nothing){print STDERR "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{next}; + }; + #------------------------------------------------------------------- + #second: check if it has '-' at the beginning + ($guess) = ($current =~/$D([^ ]*)/); + if(($guess ne '')&&(substr($current,0,1) eq $D)) + { + my $nothing=0; + SWITCH: { + #options + if ($guess eq "h") + { &print_help_info; exit(0)} + if ($guess eq "o") + { $counter++; $OUT_TEX=$ARGV[$counter]; last SWITCH; } + if ($guess eq "f") + { $counter++; $FORMAT_NAME=$ARGV[$counter]; last SWITCH; } + if ($guess eq "d") + { my $itis=1; my $whatis=''; + while($itis) + { + $counter++; + unless($counter < scalar(@ARGV)-1){$counter--;last SWITCH;} + $whatis = $ARGV[$counter]; + if((substr($whatis,0,2) eq $DD)||(substr($whatis,0,1) eq $D)) + {$counter--; $itis=0;} + else{$REFS_FILES[$itis-1] = $whatis; $itis++}; + }; + if(scalar(@REFS_FILES)<1){print STDERR "Invalid format of -d option";} + last SWITCH; + } + if ($guess eq "a") + { $counter++; $ABBR_NAME=$ARGV[$counter]; $optionsABBREVIATIONS=1; last SWITCH; } + + + + if ($guess eq "v") + { $counter++; $verbosity_level=$ARGV[$counter]; last SWITCH; } + #reserved words + #if ($guess eq 'etal') + # { $counter++; $reservedET_AL=$ARGV[$counter]; last SWITCH; } + $nothing = 1; + }; + if($nothing){print "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{next}; + }; + #--------------------------------------------------------------------- + #so, this is not switch + if($counter+1 != scalar(@ARGV)) + {print STDERR "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{$TEX_NAME = $current;} +} + +}; + +#---------------------------------- +sub check_for_important_arguments +{ + if($TEX_NAME eq ''){print STDERR "No input file!!! Exiting!\n"; exit(1);}; + if($OUT_TEX eq ''){$OUT_TEX = "biblio.$TEX_NAME"}; + if(scalar(@REFS_FILES) == 0) + {print STDERR "You must select at least one refs dbase file with -d option!!!"; + print STDERR "Exiting!\n"; + exit(1) + }; + if(scalar(@STARTREFS) == 0) + {print STDERR "You must select where I should start the bibliography (--start_refs)!!!"; + print STDERR "Exiting!\n"; + exit(1) + }; + if(scalar(@ENDREFS) == 0) + {print STDERR "You must select where I should end the bibliography (--end_refs)!!!"; + print STDERR "Exiting!\n"; + exit(1) + }; + if($FORMAT_NAME eq ''){$FORMAT_NAME = $TEX_NAME}; +}; +#----------------------------------- +sub print_version_info +{ +print "biblio v.$BIBLIO_VERSION \n"; +print "Written by R.Stepanyan.\n\n"; +print "This is free software. There is NO warranty! \n"; +print "Redistribution of this software is covered by the terms of"; +print "the GNU General Public License.\n"; +print "For more information, please, contact rstepanyan\@yahoo.com\n"; +}; +#----------------------------------- +sub print_help_info +{ +print "biblio v.$BIBLIO_VERSION \n"; +print "biblio [-o outfile] [-f formatfile] -d dbasefile(s) [other keys] filename.tex\n"; +print "\n"; +print "-v <number> - verbosity level (0-5)\n"; +print "-h (--help) - this help\n"; +print "--nobibitem, --uselist - see readme.1st file\n"; +print "--version - version information\n"; +print "\n"; +print "About the other parameters see readme.1st \n"; +print "\n"; +#print "\n"; +}; + + +################################################################## + +sub ifmovepoint +# needs $this $line as arguments +# returns $line with changed order of \cite and [.,;etc] +{ my @allargs = @_; + my $this = $allargs[0]; + my $line = $allargs[1]; + # + # let's do N 1 from our plan + # + my $part1; my $part2; my $part3; + ($part1, $part3) = split(/$this/, $line); + $part2 = $this; + #print "$line\n"; + #print "|1:$part1|2:$part2|3:$part3|end\n\n"; + # + # let's do N 2 from our plan + # + my $part3a = trim($part3); + if($part3a ne '') + { + # + # let's do N 3 from our plan + # + my $first_in_part3 = substr($part3a,0,1); + # + # let's do N 4 from our plan + # + + if($first_in_part3 =~ /[$what_we_call_point]/) + # $first_in_part3 includes only characters from $what_we_call_poin + { + $line = trim($part1) . $first_in_part3 . substr($this,1) ." " . substr($part3a,1); + }; + }; + return $line; +} + +######################################################################## +sub insert_abbreviations_of_journals # $OUTTEX must be opened already +{ my $aline=''; + if($optionsABBREVIATIONS==1) + { open(ABBR,"$ABBR_NAME"); + + print OUTTEX "\n"; + + while(<ABBR>) + { $aline = $_; + print OUTTEX "$aline" + } + close(ABBR); + + print OUTTEX "\n"; + return 0; + } + else + { return 0; + } +}; diff --git a/support/biblio/biblist b/support/biblio/biblist new file mode 100755 index 0000000000..21a4253ba6 --- /dev/null +++ b/support/biblio/biblist @@ -0,0 +1,13 @@ +VLEVEL="1" #verbosity level + +REFS="refers.db" +FORMATS="formats/formats.biblist" +REFSTEX="references.tex" +ABBR="formats/abbr.tex" + +echo ---------------------------- +echo Outpit goes to "$REFSTEX" +echo ---------------------------- +biblist.pl -f $FORMATS -a $ABBR -d $REFS -o $REFSTEX +latex $REFSTEX +pdflatex $REFSTEX
\ No newline at end of file diff --git a/support/biblio/biblist.pl b/support/biblio/biblist.pl new file mode 100755 index 0000000000..6af7495de5 --- /dev/null +++ b/support/biblio/biblist.pl @@ -0,0 +1,896 @@ +#!/usr/bin/perl +use strict; + +my $BIBLIST_VERSION = '1.2'; + +my @REFS_FILES = ('refers.db'); + +my @REFS; +$REFS[0]=''; + +my @ALLREFS; +my %REFSORDERED; +my %ALLFORMATSTRINGS; +my $CITE_FORMAT;my $REF_FORMAT; + +my $ORDERING=''; #must contain key-field, like AUTHORL, or TITLE + +my $reservedLABEL='LABEL'; +my $reservedTYPE ='TYPE' ; +my $reservedURL='URL'; + + +my $reservedAUTHOR ='AUTHOR'; #must be in the form '5;' - 5=five authors must be shown. + # ';'=1st author from the 2nd should be separated by ';' +my $reservedAND_SEPARATOR='|'; #what have to be put before the last author goes after this!!! +my $reservedET_AL='{ \it{et al}}'; #if number of authors more than shown will be added after the last one. + + +my $reservedDOLLAR = '$'; +my $reservedARRAYSEP = '|'; +my $reservedCOMMENTSYMBOL = '%'; +my $SEPARATOR = "----------\n"; + +my $reservedHASH_KEY = 'HASH_KEY_'; +my $reservedEMTY_FIELD_SIGN = '???'; #will be written instead of emty fields +my $reservedNONUMBER = 'NONUMBER'; # if NONUMBER is given in the ref_format or cite_format, then no number will be put in the output. + # for example + # Normally: [4] Author, F.M. Interesting Articles' Journal + # NONUMBER Author, .... +#-------------------------------------- +my $BIBITEM = '%'."\n".'\item'."\n".'% {'; + +my $reservedBEGINBIBLIO='begin{biblio}'; #options for biblio starts like this +my $reservedENDBIBLIO ='end{biblio}'; #and end like this! +my $reservedLEFTSTART ='['; #TYPE[FORMAT_STRING] +my $reservedRIGHTEND =']'; #so, example: + # ARTICLE[$AUTHOR0FL, M; $/ {\bf $YEAR$}, $VOL$] +my $reservedCITE_FORMAT='cite_format='; #must be in the form cite_format=^{%s} +my $reservedREF_FORMAT ='ref_format='; # the same +my $reservedORDERING ='ordering='; #must be in the form ordering=AUTHORL. If no this field is given, then "asis" implied +my $reservedS_STRING ='%s'; +my $reservedS_STRING1 ='\%s'; +my $reservedSTANDARD_CITE_FORMAT = "[$reservedS_STRING]"; # default values +my $reservedSTANDARD_REF_FORMAT = "[$reservedS_STRING]"; # for references formats + +my %HASH_REFS; #CHANGE IT LATER!!! + +my $verbosity_level=1; # 5 is max +my $optionsINSERT_EMPTY_FIELDS_SIGN = 1; +my $optionsKEEP_BIBITEM_AND_CITE = 1; +my $optionsHTML_OUTPUT = 0; + +my $optionsABBREVIATIONS =0; # use abbreviations tex-file + +my $httpprefix=''; + +my $OUT_TEX =''; #'allrefs.tex'; +my $FORMAT_NAME ='';#'macromolecules';#$TEX_NAME; # file where all rules are! +my $ABBR_NAME = 'abbr.tex'; #abbreviations file + +##############################################3 + + +&read_inline_arguments; +&check_for_important_arguments; + +if ($verbosity_level > 0) +{print "\nThis is biblist utility version $BIBLIST_VERSION\n"; + print 'Author R.Stepanyan <rstepanyan@yahoo.com>',"\n\n"}; +print "output file is <$OUT_TEX>;\n"; +print "formats are in <$FORMAT_NAME>;\n"; +print 'refs databases are <'; +foreach my $qq (@REFS_FILES) {print "$qq "}; +print ">.\n\n"; + +my $REFS_FILE; +foreach $REFS_FILE (@REFS_FILES) +{ + &make_list_of_refs_in_dbase($REFS_FILE); #makes list of all refs in @REFS + if($verbosity_level > 4) + {print "read_ref_datafile <$REFS_FILE> first time: done...\n";} +}; + + +my $i=0; +for($i=0; $i<scalar(@REFS); $i++) +{ + $REFS[$i] = $REFS[$i+1]; +}; +$#REFS--; #now $REFS[0] is also used!!!! + +&read_formats_and_speak_to_me; + + +foreach $REFS_FILE (@REFS_FILES) +{ #print $REFS_FILE, "-------\n"; + &read_ref_datafile($REFS_FILE); # all data will be stored in @ALLREFS - array of hashes + if($verbosity_level > 4) + {print "read_ref_datafile <$REFS_FILE> done...\n";} +}; +if($verbosity_level > 4){print "\n";} + +&order_this_list; +if($verbosity_level > 4) + {print "ordering of refs is done...\n";} + + +if($optionsHTML_OUTPUT) +{ + open(OUTTEX, "> $OUT_TEX"); + print OUTTEX '<html>',"\n"; + print OUTTEX '<head>',"\n"; + print OUTTEX ' <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">',"\n"; + print OUTTEX ' <meta NAME="Generator" CONTENT="biblist.pl">',"\n"; + print OUTTEX ' <title>The bibliography list</title>',"\n"; + print OUTTEX '</head>',"\n"; + print OUTTEX '',"\n"; + &insert_abbreviations_of_journals; + print OUTTEX '<dl compact><dd>',"\n"; + &print_all_references_into_tex_in_html_format; + print OUTTEX '</dl>',"\n"; + print OUTTEX '',"\n"; + print OUTTEX '',"\n"; + print OUTTEX '',"\n"; + print OUTTEX '',"\n"; + print OUTTEX '',"\n"; + print OUTTEX '',"\n"; + print OUTTEX '</html>',"\n"; + close(OUTTEX); + +} +else +{ + open(OUTTEX, "> $OUT_TEX"); + + print OUTTEX '\documentstyle[12pt,a4]{article}',"\n"; + #print OUTTEX '\documentstyle[aps,manuscript]{revtex}',"\n"; + print OUTTEX '\title{List of references \\\ Generated by "biblist.pl"}',"\n"; + print OUTTEX '\date{\today}',"\n"; + print OUTTEX '\begin{document}\maketitle',"\n"; + + &insert_abbreviations_of_journals; + + print OUTTEX 'This list of references is generated from the following data-files:\newline',"\n",'\begin{center}{\it{'; + for(my $RI=0; $RI<scalar(@REFS_FILES);$RI++) + { if($RI+1<scalar(@REFS_FILES)){print OUTTEX "$REFS_FILES[$RI], "} + else {print OUTTEX "$REFS_FILES[$RI]"}; + }; + print OUTTEX '}}\end{center}',"\n"; + #print OUTTEX '\begin{thebibliography}',"\n"; + print OUTTEX '\newcounter{bibliocounterrr}'; + print OUTTEX '\begin{list}'; + print OUTTEX '{\bfseries\upshape', '\arabic{bibliocounterrr}}'; + print OUTTEX '{\usecounter{bibliocounterrr}',"\n"; + print OUTTEX '\setlength{\labelwidth}{1cm}\setlength{\leftmargin}{0cm}',"\n"; + print OUTTEX '\setlength{\labelsep}{0.5cm}\setlength{\rightmargin}{0cm}',"\n"; + print OUTTEX '\setlength{\parsep}{0.5ex plus0.2ex minus0.1ex}',"\n"; + print OUTTEX '\setlength{\itemsep}{1ex plus0.2ex}',"\n"; + print OUTTEX '%\slshape',"\n"; + print OUTTEX '}',"\n"; + &print_all_references_into_tex_in_bibitem_format; + print OUTTEX '\end{list}',"\n"; + #print OUTTEX '\end{thebibliography}',"\n"; + + print OUTTEX '\end{document}'; + close(OUTTEX); +} + + +exit(0); + + + + + + + + +################################################ +sub print_all_references_into_tex_in_html_format +{ my ($item1, $item); my $thecounter=1; + #print OUTTEX '%Generated by biblio',"\n"; + for(my $i=0;$i<scalar(@REFS);$i++) + {$item = @REFS[$i]; + foreach $item1 (@ALLREFS) #loop 1 + {if($item eq ${$item1}{"$reservedLABEL"}) + { my $thetype=uc(${$item1}{"$reservedTYPE"}); # IN THE UPPER CASE! + if($ALLFORMATSTRINGS{"$thetype"} eq '') + { print OUTTEX '<dt> <a name="',${$item1}{"$reservedLABEL"} ,'">',$thecounter,'</a></dt>',"\n"; + $thecounter++; + print OUTTEX "No format string for TYPE \"$thetype\". Skipping record \"$item\"!\n"; + print STDERR "No format string for TYPE <$thetype>. Skipping record <$item>!\n"; + last; + }; + + + print OUTTEX "\n",'<dt> <a name="',${$item1}{"$reservedLABEL"} ,'">',$thecounter,'</a></dt>',"\n"; + $thecounter++; + #print $thetype,"-->",$ALLFORMATSTRINGS{"$thetype"}, "\n"; + + print OUTTEX '<dd> '; + &formated_output($ALLFORMATSTRINGS{"$thetype"},%{$item1}); #CHANGE $FORMAT_STRING1 HERE!!! + if(${$item1}{"$reservedURL"} ne '') + { + print OUTTEX '<br><a href="'; + my $theurl=${$item1}{"$reservedURL"}; + if($theurl =~ m/http:\/\//) + {print OUTTEX $theurl,'">';} + else{print OUTTEX $httpprefix,$theurl,'">';} + print OUTTEX ${$item1}{"$reservedURL"}; + print OUTTEX '</a>'; + }; + print OUTTEX '<br> </dd>',"\n"; + #next; + + last; #this is last for loop 1 + } + }; + + }; + #print OUTTEX '%',"\n",'%End of Generated by biblio',"\n"; + +} +#----------------------------------------------------------- +sub print_all_references_into_tex_in_bibitem_format +{ my ($item1, $item); + print OUTTEX '%Generated by biblio',"\n"; + for(my $i=0;$i<scalar(@REFS);$i++) + {$item = @REFS[$i]; + foreach $item1 (@ALLREFS) #loop 1 + {if($item eq ${$item1}{"$reservedLABEL"}) + { my $thetype=uc(${$item1}{"$reservedTYPE"}); # IN THE UPPER CASE! + if($ALLFORMATSTRINGS{"$thetype"} eq '') + { print OUTTEX $BIBITEM,$item,'}',"\n"; + print OUTTEX "No format string for TYPE \"$thetype\". Skipping record \"$item\"!\n"; + print STDERR "No format string for TYPE <$thetype>. Skipping record <$item>!\n"; + last; + }; + + print OUTTEX $BIBITEM,$item,'}',"\n"; #,$CITE_FORMAT; + + #print $thetype,"-->",$ALLFORMATSTRINGS{"$thetype"}, "\n"; + + &formated_output($ALLFORMATSTRINGS{"$thetype"},%{$item1}); #CHANGE $FORMAT_STRING1 HERE!!! + print OUTTEX "\n"; + #next; + + last; #this is last for loop 1 + } + }; + + }; + print OUTTEX '%',"\n",'%End of Generated by biblio',"\n"; + +} +#----------------------------------------------------------- +sub order_this_list +{ #??? TO BE DONE!!!!!!! + #for(my $i=0; $i<scalar(@REFS); $i++){ print "$i ->>> $REFS[$i] --\n"}; + + unless($ORDERING eq '') + { + my $do_ordering=1; + while($do_ordering) + { $do_ordering=0; + for(my $i=1; $i<scalar(@REFS); $i++) + { + if(&keyfield($REFS[$i-1]) gt &keyfield($REFS[$i]) ) + {($REFS[$i-1], $REFS[$i]) = ($REFS[$i], $REFS[$i-1]); $do_ordering =1 } + } + }; + }; + + for(my $i=0; $i<scalar(@REFS); $i++){ $REFSORDERED{"$REFS[$i]"} = $i+1}; + #foreach $item (keys %REFSORDERED){ print $item,"--->",$REFSORDERED{"$item"},"\n"} +}; + +sub keyfield +{ + my $a = @_[0]; + + foreach my $item (@ALLREFS) + { + # print ${$item}{"LABEL"},"-->",${$item}{"VOL"},"\n"; + if(${$item}{"$reservedLABEL"} eq $a) {return uc(${$item}{"$ORDERING"})} + }; + return ''; +}; +#--------------------------------------------------- +sub read_ref_datafile +#________________________________________________ +#reads references file. Data stored in @ALLREFS +#structure of the refs-file: +#LABEL=3dFlex +#TYPE=article +#AUTHORL=subbotin +#TITLE={Microphase separation within comb-like copolymer with attractive side-chains: computer simulations1.} +#JOURNAL= Macromol. Theory and Simul1. +#----------<10pieces> +# +#At the end should be Enter, so better to put EOF after it in the +#next line +# +{ my $current_ref_number=0; my $line; + my @fields; my %CURRENT_RECORD; + + my $it_is_label=1; my $save_current_field=0; + + my $item; + my $REFS_FILE = @_[0]; + + open(RF, $REFS_FILE)|| die "Could not open $REFS_FILE: $!"; + while($line = <RF>) + { next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) eq $reservedCOMMENTSYMBOL); + if($line ne $SEPARATOR) + { + $line=trim($line); + @fields = split(/=/, $line); + + @fields = trim(@fields); + + if($fields[0] eq $reservedLABEL) + { + foreach $item (@REFS) + { if($item eq $fields[1]) #this label is in REFS + { $save_current_field = 1 } + } + }; + + if($save_current_field) + { if($fields[0] eq $reservedLABEL){$CURRENT_RECORD{$fields[0]} = $fields[1]; } + else + { + if($CURRENT_RECORD{$fields[0]} ne '') + { + $fields[1]=trim($fields[1]); + $CURRENT_RECORD{$fields[0]}="$CURRENT_RECORD{$fields[0]}$reservedARRAYSEP$fields[1]" ; + } + else + {$CURRENT_RECORD{$fields[0]} = trim($fields[1]); } + }; + #MUST change it to read fields with many '=' in the body text!!! + #print "$fields[0] == $CURRENT_RECORD{$fields[0]}\n"; + } + } + else + { + if($save_current_field) + { %{$ALLREFS[$current_ref_number]} = %CURRENT_RECORD; + # Now erase everything from the hash!!! + my @allkeysfromhash = keys %CURRENT_RECORD; + foreach $item (@allkeysfromhash){delete($CURRENT_RECORD{$item})}; + + $current_ref_number++; #print "-------\n"; + }; + $save_current_field = 0; + }; + }; + close(RF); +}; + +#---------------------------------------------------------- +sub read_formats_and_speak_to_me +#calls read_format_string and also produces output about results +{ +&read_format_strings; +if($verbosity_level > 3) +{print "\nread_format_strings from <$FORMAT_NAME> done...\n\n"; + printf("%16s | %s\n","TYPE","FORMAT STRING"); + printf("%15s--+-%s\n","---------------","---------------------------------------------------"); + foreach my $key (keys %ALLFORMATSTRINGS) + { printf("%16s | %s\n",$key,$ALLFORMATSTRINGS{$key})}; + for(my $i=0;$i<70;$i++){print "-";};print "\n"; +}; +if($CITE_FORMAT eq '') +{ print STDERR "Citation format not found or wrong in <$FORMAT_NAME>. Assuming default!\n"; + $CITE_FORMAT = $reservedSTANDARD_CITE_FORMAT +}; +if(uc($CITE_FORMAT) eq $reservedNONUMBER){$CITE_FORMAT='';}; #???????? +if($REF_FORMAT eq '') +{ print STDERR "Citation reference format not found or wrong in <$FORMAT_NAME>. Assuming default!\n"; + $REF_FORMAT = $reservedSTANDARD_REF_FORMAT +}; + +#print "$CITE_FORMAT $REF_FORMAT \n"; +if($verbosity_level > 0) + { print "\n!!! Citation format:$CITE_FORMAT. Reference format=$REF_FORMAT.\n Ordering:"; + if($ORDERING eq ''){print "as is\n\n"}else {print " key field is <$ORDERING>\n\n"} + }; + +} + +#---------------------------- +sub read_format_strings +# this function reads formats for references from file $FORMAT_NAME +# this can be just header in the decument (tex-file) or separate file! +{my $line=''; + my $start_interpreting=0; # 0 - not started yet + # 1 - interpreting + + my @justarray; + + if($verbosity_level > 3){print "Format strings are in <$FORMAT_NAME>\n\n"} + + open(FRM, "$FORMAT_NAME") || die "Could not open $FORMAT_NAME: $!"; + while(<FRM>) + { my $hash_key=''; my $hash_value=''; + $line = $_; #print $line; + $line = trim($line); + next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) ne $reservedCOMMENTSYMBOL); + #skip lines, starting NOT from % + next if (substr(trim($line),0,2) eq "$reservedCOMMENTSYMBOL$reservedCOMMENTSYMBOL"); + $line = substr(trim($line),1); + $line=trim($line); + next if $line =~ /^\s*$/; + if($line eq $reservedBEGINBIBLIO){$start_interpreting=1;next;}; + if($line eq $reservedENDBIBLIO){ close(FRM); return;}; + + + if(not $start_interpreting){next;}; + + #OK, now no shit in this line! + if($verbosity_level > 4){print $line," is read from <$FORMAT_NAME>\n";}; + @justarray=split(//,$line); + + #try to find if this is "cite_format" or "ref_format" + my $format=''; + ($format) = ($line =~ /$reservedCITE_FORMAT([^,\n]*)/); + if($format ne '') + {if(($format =~ m/$reservedS_STRING1/)||($format =~/$reservedNONUMBER/)) + { $CITE_FORMAT = $format; + if($verbosity_level > 4){print "Citation format=$format\n\n";} + next; + } + else + {print STDERR "Unknown citation format \"$format\". Assuming standard=", + "$reservedSTANDARD_CITE_FORMAT\n"; + $CITE_FORMAT = $reservedSTANDARD_CITE_FORMAT ; next; + } + } ; + # now try to find "ref_format" + ($format) = ($line =~ /$reservedREF_FORMAT([^,\n]*)/); + if($format ne '') + {if($format =~ m/$reservedS_STRING1/) + { $REF_FORMAT = $format; + if($verbosity_level > 4){print "Citation reference format=$format\n\n";}; + next; + } + else + {print STDERR "Unknown reference format \"$format\". Assuming standard: ", + "$reservedSTANDARD_REF_FORMAT\n"; + $REF_FORMAT = $reservedSTANDARD_REF_FORMAT ; next; + } + } + ($format) = ($line =~ /$reservedORDERING([^,\n]*)/); + if($format ne '') + {$ORDERING = trim($format); + if($verbosity_level > 4){print "Key field for refs ordering=$ORDERING\n\n";}; + next; + } ; + + my $this_is_key=1; + + my $narray=scalar(@justarray); + for(my $i=0;$i< $narray-1; $i++) + { + if(($this_is_key)&&($justarray[$i] eq $reservedLEFTSTART)) + {$this_is_key = 0; next;}; + if($this_is_key) + {$hash_key ="$hash_key$justarray[$i]";} + else + {$hash_value = "$hash_value$justarray[$i]"} + }; + if($justarray[$narray-1] ne $reservedRIGHTEND) + { + print STDERR "Format string \"$line\" must end with \"$reservedRIGHTEND\"!\n"; + print STDERR "This is fatal error. Exiting..."; + exit(1); + }; + $hash_key=trim($hash_key); + #now analize $hash_key. It must be puur symbolic! + unless($hash_key=~ /^[A-Za-z0-9]+$/) + {print STDERR "Key field \"$hash_key\" in \"$line\" must include only A-Z,a-z,0-9\n"; + print STDERR "This is fatal error. Exiting..."; + exit(1); + }; + + my $hash_key1=uc($hash_key); + + if (($hash_key1 ne $hash_key)&&($verbosity_level>2)) + {print " WARNING!!! Key field\n \"$hash_key\" in \"$line\"\n converted to uppercase!!!\n"}; + $ALLFORMATSTRINGS{$hash_key1} = $hash_value; + + }; + close(FRM); + + +}; +#-------------------------------------- +sub make_list_of_refs_in_dbase + +# +{ my $current_ref_number=0; my $line; + my @fields; my %CURRENT_RECORD; + + my $it_is_label=1; my $save_current_field=0; + + my $item; + my $REFS_FILE = @_[0]; + + open(RF, $REFS_FILE)|| die "Could not open $REFS_FILE: $!"; + while($line = <RF>) + { next if $line =~ /^\s*$/; # skip blank lines + next if (substr(trim($line),0,1) eq $reservedCOMMENTSYMBOL); + if($line ne $SEPARATOR) + { + $line=trim($line); + @fields = split(/=/, $line); + + @fields = trim(@fields); + + if($fields[0] eq $reservedLABEL) + { + my $REFS_N = scalar(@REFS); + if(scalar(@fields)>2) + { for(my $i=2;$i<scalar(@fields);$i++) + {$fields[1] = "$fields[1].$fields[$i]"} + }; + $REFS[$REFS_N] = $fields[1]; + }; + }; + }; + close(RF); +}; + +#------------------------------------------------------------ + +sub formated_output +# takes format string in the form +# $FORMAT_STRING ='$AUTHOR5F L;$ {\bf $YEAR$}, $VOL$ - $NUMBER$' ; +# and hash +# of the type +# my %HASH_REFS= ('AUTHOR' => 'Stepanyan', +# 'YEAR' => '2000', +# 'VOL' => '12', +# 'RT' => 'qq'); +# of course fields in hash can be any. +# Then makes output of the hash into stdout +# according to the format string. +# File with file handle OUTTEX must be opened for writing!!!! +{ +my @in_arguments = @_; #take all arguments of this function + +my $FORMAT_STRING=$in_arguments[0]; # the first MUST be the format string + +my %HASH_REFS; #all the rest of arguments + #must be put into this hash + +my $i; #next lines make hash from array +for($i=1;$i<scalar(@in_arguments)-1;$i=$i+2) +{ $HASH_REFS{$in_arguments[$i]} = $in_arguments[$i+1] +}; + + +my @format_char_array; # all chars from the format string +my @format_array; # if format_string='$AUTHOR$ {\bf 2}' + # then format array will be + # ('HASH_KEY_AUTHOR',' {\bf 2}') + +@format_char_array = split(//, $FORMAT_STRING); + +my $start_flag = 0; # when I see $ I do $start_flag=1 + # when I see it again I do =0 + # I do it to cath al $xxxx$ things! + +my $counter=0; # just counter for the @format_array + + +my $char; + +###print "-----\n"; +foreach $char (@format_char_array) +{ + ###print "$char\n"; + if($char ne $reservedDOLLAR) # if it is NOT '$' + { # add this char and don't bother yourself with it! + $format_array[$counter] = $format_array[$counter] . $char; + } + else # oooh, this is '$' + { + if($start_flag == 0){$start_flag = 1} #if it is start of command + else{$start_flag = 0}; #if it is end of command + $counter++; + if($start_flag == 1) #if this will be command + #add HASH_KEY before the name of it! + {$format_array[$counter] = $reservedHASH_KEY;}; + + } +}; +###print "-----\n"; +###foreach $char (@format_array) +###{ print "|$char|\n"}; + +my $char1; my $post_author=''; + +my @author_fields; +my $last_sep=''; # 'R.R.Stepanyan',$last_sep,'A.A.Subbotin' - example +my @author_name_key; my @author_seps; + +foreach $char (@format_array) +{ ($char1) = ( $char =~ /$reservedHASH_KEY([^}]*)/ ); + # $char1=trim($char1); + #$char=trim($char); + $#author_fields = -1; + if($char1 ne '') + { if((not($char1 =~ m/$reservedAUTHOR/))&&($HASH_REFS{$char1} eq '')) #this is not author + # and this field is empty + { if($optionsINSERT_EMPTY_FIELDS_SIGN) + {print OUTTEX $reservedEMTY_FIELD_SIGN}; #OUTTEX is opened! + if($verbosity_level > 1) #complain about absence of field + {print STDERR "Field <$char1> in the record <$HASH_REFS{$reservedLABEL}> is empty!\n"}; + } + elsif($char1 =~ m/$reservedAUTHOR/) + { ($post_author) = ($char1 =~ /$reservedAUTHOR([^\$]*)/); # what if after AUTHOR ?? + @author_fields=split(//,$post_author); + + my $iaf=0; #number of names in one author (last, first, middle name = 3) + my $saf=0; #number of separators + my $start=0; + my $max_n_of_aut=0;#max num of authors to show. If 0 then unlimited! ?????????? + + my $and_word=''; #have to be before the last author if number of outhors>1 + + while($author_fields[$start] =~ /^[0-9]+$/) + {$max_n_of_aut="$max_n_of_aut$author_fields[$start]"; + $start++; + }; + + my $niaf; + $niaf=scalar(@author_fields); + $#author_name_key = -1; $#author_seps = -1; #to make them clean! + + for(my $ii=$start; $ii<$niaf; $ii++) + { + if($author_fields[$ii] =~/^[A-Za-z]+$/) + {$author_name_key[$iaf] = "$reservedAUTHOR$author_fields[$ii]"; $iaf++; $saf++;} + elsif($author_fields[$ii] ne $reservedAND_SEPARATOR) + {$author_seps[$saf] = "$author_seps[$saf]$author_fields[$ii]"} + else{$and_word = substr($post_author,$ii+1); + $ii=$niaf+1; #to finish the loop + } + }; + + $last_sep=$author_seps[$saf]; + + #Thus we have + # @author_name_key - array of the type (AUTHORL, AUTHORF, AUTHORM) + # @author_seps - $author_seps[1] is what should be placed after AUTHORF, 0-th - after AUTHORL + # $last_sep - should be placed after the complete name of one person! + + #print $HASH_REFS{'AUTHORL'} ; + my $n_of_aut=0 ; my $schet=0; my @avtor; + #HOW MANY AUTHOR WE HAVE??? We should find MAXIMUM!! + + while($schet < scalar(@author_name_key) ) + { @avtor = split(/\|/,$HASH_REFS{$author_name_key[$schet]}); # + if($n_of_aut < scalar(@avtor)){$n_of_aut = scalar(@avtor)}; #number of authors + $schet++; + }; + # Now number of authors is in the $n_of_aut + + + my $print_etal = 0; #????????????? + if(($max_n_of_aut > 0)&&($max_n_of_aut < $n_of_aut)){$n_of_aut=$max_n_of_aut; $print_etal=1;} + # now number of authors to display is '$n_of_aut'! + + my $jj; #counter for all names of one author! + my $max_jj = scalar(@author_name_key); + + for(my $ii=0;$ii<$n_of_aut;$ii++) # $ii is number of aut to display + { + for($jj=0;$jj<$max_jj ;$jj++) # $jj is counter of name of the same person + { + #print OUTTEX $author_seps[$jj]; + @avtor = split(/\|/,$HASH_REFS{$author_name_key[$jj]}); + @avtor = trim(@avtor); + if($avtor[$ii] ne ''){print OUTTEX $author_seps[$jj]; + + print OUTTEX $avtor[$ii];}; + }; + + + if($ii<$n_of_aut-2){print OUTTEX $last_sep;}; #for all except the last + if($ii == $n_of_aut-2) + { if(($n_of_aut>2)||(trim($and_word) eq "")){print OUTTEX $last_sep}; + if(($n_of_aut>1)&&($print_etal == 0)){print OUTTEX " $and_word ";} + + }; + }; + #print $last_sep; + if($print_etal){print OUTTEX $reservedET_AL;} + } + else + { + print OUTTEX $HASH_REFS{$char1}; + }; + + + } + else{print OUTTEX $char}; +}; +#print "\n"; +}; +#--------------------------------------------------- + +sub read_inline_arguments +{my $DD='--'; my $D='-'; + my $counter=0; my $current=''; + my $guess; + +for($counter=0;$counter<scalar(@ARGV);$counter++) +{ + #print "$item \n"; + $current = $ARGV[$counter]; + +#------------------------------------------------------------ + #first check if it has '--' at the beginning + ($guess) = ($current =~/$DD([^ ]*)/); + if(($guess ne '')&&(substr($current,0,2) eq $DD)) + { + my $nothing=0; + SWITCH: { + if ($guess eq "help") {&print_help_info; exit(0);} + if ($guess eq "version"){&print_version_info; exit(0);} + + #options + if ($guess eq "nobibitem") + { $optionsKEEP_BIBITEM_AND_CITE=0; last SWITCH; } + if ($guess eq "not_insert_empty_field_sign") + { $optionsINSERT_EMPTY_FIELDS_SIGN=0 ; last SWITCH; } + + #reserved words + if ($guess eq 'separator') + { $counter++; $SEPARATOR=$ARGV[$counter]; last SWITCH; } + + if ($guess eq 'etal') + { $counter++; $reservedET_AL=$ARGV[$counter]; last SWITCH; } + if ($guess eq 'empty_field_sign') + { $counter++; $reservedEMTY_FIELD_SIGN=$ARGV[$counter]; last SWITCH; } + if ($guess eq 'html') + { $optionsHTML_OUTPUT = 1; last SWITCH; } + if ($guess eq 'prefix') + { $counter++; $httpprefix=$ARGV[$counter]; last SWITCH; } + + $nothing = 1; + }; + if($nothing){print STDERR "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{next}; + }; + #------------------------------------------------------------------- + #second: check if it has '-' at the beginning + ($guess) = ($current =~/$D([^ ]*)/); + if(($guess ne '')&&(substr($current,0,1) eq $D)) + { + my $nothing=0; + SWITCH: { + #options + if ($guess eq "h") + { &print_help_info; exit(0)} + if ($guess eq "o") + { $counter++; $OUT_TEX=$ARGV[$counter]; last SWITCH; } + if ($guess eq "f") + { $counter++; $FORMAT_NAME=$ARGV[$counter]; last SWITCH; } + if ($guess eq "d") + { my $itis=1; my $whatis=''; + while($itis) + { + $counter++; + #unless($counter < scalar(@ARGV)-1){$counter--;last SWITCH;} + $whatis = $ARGV[$counter]; + if((substr($whatis,0,2) eq $DD)||(substr($whatis,0,1) eq $D)) + {$counter--; $itis=0;} + else{$REFS_FILES[$itis-1] = $whatis; $itis++}; + }; + if(scalar(@REFS_FILES)<1){print STDERR "Invalid format of -d option";} + last SWITCH; + } + + if ($guess eq "a") + { $counter++; $ABBR_NAME=$ARGV[$counter]; $optionsABBREVIATIONS=1; last SWITCH; } + + + if ($guess eq "v") + { $counter++; $verbosity_level=$ARGV[$counter]; last SWITCH; } + + #reserved words + #if ($guess eq 'etal') + # { $counter++; $reservedET_AL=$ARGV[$counter]; last SWITCH; } + $nothing = 1; + }; + if($nothing){print "Unknown option <$current>!!! Exiting!\n"; exit(1);} + else{next}; + }; + #--------------------------------------------------------------------- + #so, this is not switch + +} + +}; + +#---------------------------------- +sub check_for_important_arguments +{ + + if($OUT_TEX eq ''){$OUT_TEX = "biblist.output.tex"}; + if(scalar(@REFS_FILES) == 0) + {print STDERR "You must select at least one refs dbase file with -d option!!!"; + print STDERR "Exiting!\n"; + exit(1) + }; + + + if($FORMAT_NAME eq '') + {print STDERR "You must select one formats file with -f option!!!"; + print STDERR "Exiting!\n"; + exit(1) + }; +}; +#----------------------------------- +sub print_version_info +{ +print "biblist v.$BIBLIST_VERSION \n"; +print "Written by R.Stepanyan.\n\n"; +print "This is free software. There is NO warranty! \n"; +print "Redistribution of this software is covered by the terms of"; +print "the GNU General Public License.\n"; +print "For more information, please, contact rstepanyan\@yahoo.com\n"; +}; +#----------------------------------------------- +sub print_help_info +{ +print "biblist v.$BIBLIST_VERSION \n"; +print "biblist [-o outfile] [-f formatfile] -d dbasefile(s) [other keys] \n"; +print "\n"; +print "-v <number> - verbosity level (0-5)\n"; +print "-h (--help) - this help\n"; +print "--version - version information\n"; +print "\n"; +print "About the other parameters see readme.1st \n"; +print "\n"; +#print "\n"; +}; + +#---------------------------------------------------- +sub trim { + my @out = @_; + for (@out) { + s/^\s+//; + s/\s+$//; + } + return wantarray ? @out : $out[0]; +} +#------------------------------------------------------------------------------ +sub insert_abbreviations_of_journals # $OUTTEX must be opened already +{ my $aline=''; + if($optionsABBREVIATIONS==1) + { open(ABBR,"$ABBR_NAME"); + + if($optionsHTML_OUTPUT){print OUTTEX "<br>";} else{print OUTTEX "\n"; }; + + while(<ABBR>) + { $aline = $_; + print OUTTEX "$aline" ; + if($optionsHTML_OUTPUT){print OUTTEX "<br>";} ; + } + close(ABBR); + + if($optionsHTML_OUTPUT){print OUTTEX "<br>";} else{print OUTTEX "\n"; } + return 0; + } + else + { return 0; + } +}; diff --git a/support/biblio/biblist_html b/support/biblio/biblist_html new file mode 100755 index 0000000000..86cb3c36e0 --- /dev/null +++ b/support/biblio/biblist_html @@ -0,0 +1,13 @@ +VLEVEL="1" #verbosity level + +REFS="refers.db" +FORMATS="formats/formats_html.biblist" +REFSHTML="references.html" +ABBR="formats/abbr.tex" + +echo ---------------------------- +echo Outpit goes to "$REFSHTML" +echo ---------------------------- +biblist.pl -f $FORMATS -d $REFS -a $ABBR -o $REFSHTML --html --prefix http://polypc93.chem.rug.nl/~stepanrr/articles/ + + diff --git a/support/biblio/formats/README.formats b/support/biblio/formats/README.formats new file mode 100644 index 0000000000..43892cf75c --- /dev/null +++ b/support/biblio/formats/README.formats @@ -0,0 +1,18 @@ +12345678901234567890123456789012345678901234567890123456789012345678901234567890 + 1 2 3 4 5 6 7 8 + +Biblio formats: + +1. macromolecules Macromolecules +2. physreve Phys.Rev.E +3. macromoltheorysimul Macromol. Theory and Simul +4. jchemphys Journal of Chem. Phys. +5. europhysletters EUROPHYSICS LETTERS +6. biopolymers Biopolymers + +=============================================================================== +Biblist formats: + +1. formats.biblist for TeX output. Made from "macromolecules" + for biblio +2. formats_html.biblist for HTML output. Made from "macromolecules".
\ No newline at end of file diff --git a/support/biblio/formats/abbr.tex b/support/biblio/formats/abbr.tex new file mode 100644 index 0000000000..4dd2b244a4 --- /dev/null +++ b/support/biblio/formats/abbr.tex @@ -0,0 +1,49 @@ +%definitions for titles of journals + +\def\ang{Angew. Chem. Int. Ed. Engl.} +\def\advm{Adv. Mater.} +\def\advpolsci{Advances Polym. Sci.} +\def\arpc{Annu. Rev. Phys. Chem.} + +\def\bio{Biopolymers} + +\def\cps{Colloid Polym Sci.} +\def\cpl{Chem. Phys. Letters} + +\def\epje{Eur. Phys. J. E} +\def\epolj{European Polymer Journal} + +\def\jetp{Sov. Phys. JETP} +\def\jcp{J. of Chem. Phys.} +\def\jpsa{J. Polym. Sci. A: Polym. Chem.} +\def\jpsb{J. Polym. Sci. B: Polym. Phys.} +\def\jpfrance{J. Phys. II France} % ???J. Physique ???J. Phys. (Paris) +\def\jms{J. of Mol. Structure} + +\def\lang{Langmuir} + +\def\mml{Macromol.} % Macromolecules +\def\mrc{Macromol. Rapid. Commun.} +\def\mts{Macromol. Theory and Simul.} % Macromolecular Theory and Simulations +\def\mcp{Macromol. Chem. Phys.} +\def\makchem{Makromol. Chem.} %???Makromol. Chem., Rapid Commun. + +\def\polsciussr{Polym. Sci. USSR} +\def\pra{Phys. Rev. A.} +\def\prb{Phys. Rev. B.} +\def\pre{Phys. Rev. E.} +\def\prd{Phys. Rev. D.} +\def\prl{Phys. Rev. Letters} +\def\pps{Proc. Phys. Soc.} %Proceedings of Phys Society + +\def\rmp{Rev. Mod. Phys.} +\def\rpp{Rep. Prog. Phys.} %Reports on Progress in Physics + + +\def\science{Science} + +\def\ufn{Sov. Usp. Fiz. Nauk} % ???Sov. Phys. Uspekhi + +\def\trip{TRIP} + +% end of definitions
\ No newline at end of file diff --git a/support/biblio/formats/biopolymers b/support/biblio/formats/biopolymers new file mode 100644 index 0000000000..c0e6ad9b18 --- /dev/null +++ b/support/biblio/formats/biopolymers @@ -0,0 +1,32 @@ +% this is template for Biopolymers +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' + +%begin{biblio} + +%cite_format={%s.} +%ref_format=${^{%s}}$ + +%% normal article: +% ARTICLE [$AUTHOR0P~L,~F~M, |\&$ ($YEAR$) {\it $JOURNAL$} {\bf $VOL$}, $PAGE$-$EPAGE$.] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0P~L,~F~M, |\&$ {\it $JOURNAL$}, $STATE$.] + +%% normal book +% BOOK [$AUTHOR0P~L,~F~M, |\&$ ($YEAR$) {\it $TITLE$}, $PUBL$, $PLACE$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0P~L,~F~M, |\&$ ($YEAR$) in {\it $BOOKTITLE$}, edited by $AUTHOR0I~E,~G~H, |\&$, $PUBL$: $PLACE$.] + +%% article in a book without editor +% INBOOK [$AUTHOR0P~L,~F~M, |\&$ ($YEAR$) in {\it $BOOKTITLE$}, $PUBL$, $PLACE$.] + +% EPRINT [$AUTHOR0P~L,~F~M, |\&$ ($YEAR$) in {\it $BOOKTITLE$} $INFO$.] + +%% Thesis +% THESIS [$AUTHOR0P~L,~F~M, |\&$ ($YEAR$) {\it $SORT$}, $UNIV$, $PLACE$.] + + +%end{biblio}
\ No newline at end of file diff --git a/support/biblio/formats/europhysletters b/support/biblio/formats/europhysletters new file mode 100644 index 0000000000..04a9e99dee --- /dev/null +++ b/support/biblio/formats/europhysletters @@ -0,0 +1,35 @@ +% this is template for EuroPhys. Letters +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' wher AUTHORL is taken just as example! + +%begin{biblio} + + +%cite_format={[%s]} +%ref_format=${[%s]}$ + +%% normal article: +% ARTICLE [\textsc{$AUTHOR0P~L~F~M, |and$}, {\it $JOURNAL$} {\bf $VOL$} ($YEAR$) $PAGE$.] +] + +%% article which is submitted or accepted +% ARTICLE0[\textsc{$AUTHOR0F~M~P~L, |and$}, {\it $JOURNAL$}, $STATE$.] + +%% normal book +% BOOK [\textsc{$AUTHOR0F~M~P~L, |and$}, {\it $TITLE$} ($PUBL$, $PLACE$) $YEAR$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [\textsc{$AUTHOR0F~M~P~L, |and$}, in {\it $BOOKTITLE$}, edited by \textsc{$AUTHOR0I~G~H~E, |and$}, ($PUBL$, $PLACE$) $YEAR$.] + +%% article in a book without editor +% INBOOK [\textsc{$AUTHOR0F~M~P~L, |and$}, {\it $TITLE$}, in {\it $BOOKTITLE$}, ($PUBL$, $PLACE$) $YEAR$.] + + +% EPRINT [\textsc{$AUTHOR0F~M~P~L, |and$}, $INFO$ ($YEAR$).] + +%% Thesis ??? +% THESIS [\textsc{$AUTHOR0F~M~P~L, |and$}, {\it $SORT$} ($UNIV$, $PLACE$) $YEAR$.] + + +%end{biblio} diff --git a/support/biblio/formats/formats.biblist b/support/biblio/formats/formats.biblist new file mode 100644 index 0000000000..a1321865d6 --- /dev/null +++ b/support/biblio/formats/formats.biblist @@ -0,0 +1,26 @@ +% this is template for biblist.pl + + +%begin{biblio} + +% ordering= AUTHORL + +%% normal article: +% ARTICLE [\texttt{$LABEL$} \\ $AUTHOR0P L,~F~M; $ {\it $JOURNAL$} {\bf $YEAR$}, {\it $VOL$}, $PAGE$-$EPAGE$.\newline {\bf $TITLE$}] + +%% article which is submitted or accepted +% ARTICLE0[\texttt{$LABEL$} \\ $AUTHOR0P L,~F~M; $ {\it $JOURNAL$} $STATE$.\newline {\bf $TITLE$}] + +%% normal book +% BOOK [\texttt{$LABEL$} \\ $AUTHOR0P L,~F~M; $ {\it $TITLE$}; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [\texttt{$LABEL$} \\ $AUTHOR0P L,~F~M; $ in {\it $BOOKTITLE$}, edited by $AUTHOR0I E,~G~H;$; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book without editor +% INBOOK [\texttt{$LABEL$} \\ $AUTHOR0P L,~F~M; $ in {\it $BOOKTITLE$}, p.$PAGE$ $PUBL$: $PLACE$, $YEAR$.] + +% EPRINT [\texttt{$LABEL$} \\ $AUTHOR0P L,~F~M; $ $INFO$, $YEAR$.\newline {\bf $TITLE$}] + +%end{biblio}
\ No newline at end of file diff --git a/support/biblio/formats/formats_html.biblist b/support/biblio/formats/formats_html.biblist new file mode 100644 index 0000000000..4f1a6d2d34 --- /dev/null +++ b/support/biblio/formats/formats_html.biblist @@ -0,0 +1,31 @@ +%% this is template for biblist.pl for "html" output!!! + + +%begin{biblio} + +% ordering= AUTHORL + +%% normal article: + +% ARTICLE [<font size=-1> $LABEL$</font> <br> $AUTHOR0P L, F M; $ <em> $JOURNAL$ </em> <b>$YEAR$</b>, <em>$VOL$</em>, $PAGE$.<br> <b>$TITLE$</b>] + +%% article which is submitted or accepted + +% ARTICLE0[<font size=-1>$LABEL$</font> <br> $AUTHOR0P L, F M; $ <em> $JOURNAL$ </em> $STATE$. <br> <b> $TITLE$ </b>] + +%% normal book + +% BOOK [<font size=-1>$LABEL$</font> <br> $AUTHOR0P L, F M; $ <em> $TITLE$ </em>; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor + +% EDBOOK [<font size=-1>$LABEL$</font> <br> $AUTHOR0P L, F M; $ in <em> $BOOKTITLE$ </em>, edited by $AUTHOR0I E, G H;$; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book without editor + +% EDBOOK [<font size=-1>$LABEL$</font> <br> $AUTHOR0P L, F M; $ in <em> $BOOKTITLE$ </em>, p.$PAGE$ $PUBL$: $PLACE$, $YEAR$.] + +% EPRINT [<font size=-1>$LABEL$</font> <br> $AUTHOR0P L, F M; $ $INFO$, $YEAR$.<br><b> $TITLE$ </b>] + +%end{biblio}
\ No newline at end of file diff --git a/support/biblio/formats/jchemphys b/support/biblio/formats/jchemphys new file mode 100644 index 0000000000..45642ebea6 --- /dev/null +++ b/support/biblio/formats/jchemphys @@ -0,0 +1,35 @@ +% this is template for Journal of Chemical Physics +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' wher AUTHORL is taken just as example! + +%begin{biblio} + + +%cite_format=$^{%s}$ +%ref_format=$^{%s}$ + +%% normal article: +% ARTICLE [$AUTHOR0F~M~P~L, |and$, $JOURNAL$ {\bf $VOL$}, $PAGE$ ($YEAR$).] +] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0F~M~P~L, |and$, $JOURNAL$ $STATE$.] + +%% normal book +% BOOK [$AUTHOR0F~M~P~L, |and$, {\it $TITLE$} ($PUBL$, $PLACE$, $YEAR$).] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0F~M~P~L, |and$, in {\it $BOOKTITLE$}, edited by $AUTHOR0I~G~H~E, |and$, ($PUBL$, $PLACE$, $YEAR$).] + +%% article in a book without editor +% INBOOK [$AUTHOR0F~M~P~L, |and$, in {\it $BOOKTITLE$}, p.$PAGE$ ($PUBL$, $PLACE$, $YEAR$).] + + +% EPRINT [$AUTHOR0F~M~P~L, |and$ $INFO$ ($YEAR$).] + +%% Thesis +% THESIS [$AUTHOR0F~M~P~L, $, {\it $SORT$}, ($UNIV$, $PLACE$, $YEAR$).] + + +%end{biblio} diff --git a/support/biblio/formats/macromolecules b/support/biblio/formats/macromolecules new file mode 100644 index 0000000000..c5477b87f3 --- /dev/null +++ b/support/biblio/formats/macromolecules @@ -0,0 +1,33 @@ +% this is template for Macromolecules +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' + +%begin{biblio} + + +%cite_format={(%s)} +%ref_format=${^{%s}}$ + +%% normal article: +% ARTICLE [$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} {\bf $YEAR$}, {\it $VOL$}, $PAGE$.] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} $STATE$.] + +%% normal book +% BOOK [$AUTHOR0P~L,~F~M; $ {\it $TITLE$}; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$}, edited by $AUTHOR0I~E,~G~H;$; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book without editor +% INBOOK [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$}, p.$PAGE$ $PUBL$: $PLACE$, $YEAR$.] + +% EPRINT [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$} $INFO$, $YEAR$.] + +%% Thesis +% THESIS [$AUTHOR0P~L,~F~M; $ {\it $SORT$}; $UNIV$: $PLACE$, $YEAR$.] + + +%end{biblio}
\ No newline at end of file diff --git a/support/biblio/formats/macromoltheorysimul b/support/biblio/formats/macromoltheorysimul new file mode 100644 index 0000000000..abf102e2c5 --- /dev/null +++ b/support/biblio/formats/macromoltheorysimul @@ -0,0 +1,35 @@ +% this is template for Macromolecular Theory and Simulations +% according to 2001 year rules +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' wher AUTHORL is taken just as example! + +%begin{biblio} + + +%cref_format=${^{[%s]}}$ +%cite_format={[%s]} + +%% +normal article: +% ARTICLE [$AUTHOR0F~M~P~L, $, {\it $JOURNAL$} {\bf $YEAR$}, {\it $VOL$}, $PAGE$.] +] + +%% +article which is submitted or accepted +% ARTICLE0[$AUTHOR0F~M~P~L, $, {\it $JOURNAL$} $STATE$.] + +%% +normal book +% BOOK [$AUTHOR0F~M~P~L, $, "{\it $TITLE$}", $PUBL$, $PLACE$, $YEAR$, p.~$PAGES$.] + +%% +article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% +and middle names of the editor +% EDBOOK [$AUTHOR0F~M~P~L, $, "$TITLE$", in: {\it $BOOKTITLE$}, $AUTHOR0G~H~I~E, $,Eds., $PUBL$, $PLACE$ $YEAR$, p.~$PAGE$.] + +%% +article in a book without editor +% INBOOK [$AUTHOR0F~M~P~L, $, "$TITLE$", in: {\it $BOOKTITLE$}, $PUBL$, $PLACE$ $YEAR$, p.~$PAGE$.] + +%% +Thesis +% THESIS [$AUTHOR0F~M~P~L, $, {\it $SORT$}, $UNIV$, $PLACE$ $YEAR$.] + +%% Electronic preprint (like on xxx.lanl.gov) +% EPRINT [$AUTHOR0F~M~P~L; $ $INFO$ $YEAR$.] + +%end{biblio} diff --git a/support/biblio/formats/physreve b/support/biblio/formats/physreve new file mode 100644 index 0000000000..e89d7d33a3 --- /dev/null +++ b/support/biblio/formats/physreve @@ -0,0 +1,35 @@ +% this is template for Phys.Rev.E +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' wher AUTHORL is taken just as example! + +%begin{biblio} + + +%cite_format={[%s]} +%ref_format=${[%s]}$ + +%% normal article: +% ARTICLE [$AUTHOR0F~M~P~L, |and$, $JOURNAL$ {\bf $VOL$}, $PAGE$ ($YEAR$).] +] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0F~M~P~L, |and$, $JOURNAL$ $STATE$.] + +%% normal book +% BOOK [$AUTHOR0F~M~P~L, |and$, {\it $TITLE$} ($PUBL$, $PLACE$, $YEAR$).] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0F~M~P~L, |and$, in {\it $BOOKTITLE$}, edited by $AUTHOR0I~G~H~E, |and$, ($PUBL$, $PLACE$, $YEAR$).] + +%% article in a book without editor +% INBOOK [$AUTHOR0F~M~P~L, |and$, in {\it $BOOKTITLE$}, p.$PAGE$ ($PUBL$, $PLACE$, $YEAR$).] + + +% EPRINT [$AUTHOR0F~M~P~L, |and$ $INFO$ ($YEAR$).] + +%% Thesis +% THESIS [$AUTHOR0F~M~P~L, $, {\it $SORT$}, ($UNIV$, $PLACE$, $YEAR$).] + + +%end{biblio} diff --git a/support/biblio/formats/physreve_with_title b/support/biblio/formats/physreve_with_title new file mode 100644 index 0000000000..04ef33b2f5 --- /dev/null +++ b/support/biblio/formats/physreve_with_title @@ -0,0 +1,35 @@ +% this is template for Phys.Rev.E +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' wher AUTHORL is taken just as example! + +%begin{biblio} + + +%cite_format={[%s]} +%ref_format=${[%s]}$ + +%% normal article: +% ARTICLE [$AUTHOR0F~M~P~L, |and$, {\bf $TITLE$}, $JOURNAL$ {\bf $VOL$}, $PAGE$ ($YEAR$).] +] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0F~M~P~L, |and$, {\bf $TITLE$}, $JOURNAL$ $STATE$.] + +%% normal book +% BOOK [$AUTHOR0F~M~P~L, |and$, {\it $TITLE$} ($PUBL$, $PLACE$, $YEAR$).] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0F~M~P~L, |and$, in {\it $BOOKTITLE$}, edited by $AUTHOR0I~G~H~E, |and$, ($PUBL$, $PLACE$, $YEAR$).] + +%% article in a book without editor +% INBOOK [$AUTHOR0F~M~P~L, |and$, {\bf $TITLE$}, in {\it $BOOKTITLE$}, p.$PAGE$ ($PUBL$, $PLACE$, $YEAR$).] + + +% EPRINT [$AUTHOR0F~M~P~L, |and$, {\bf $TITLE$}, $INFO$ ($YEAR$).] + +%% Thesis +% THESIS [$AUTHOR0F~M~P~L, $, {\it $SORT$}, ($UNIV$, $PLACE$, $YEAR$).] + + +%end{biblio} diff --git a/support/biblio/install b/support/biblio/install new file mode 100755 index 0000000000..af5e010a1c --- /dev/null +++ b/support/biblio/install @@ -0,0 +1,89 @@ +#!/bin/sh + +PREFIX="/usr/local/biblio/" +BINDIR="/usr/local/bin/" +ADDSCRIPTS="ADDSCRIPTS" + +CP="cp" +LN="ln -s" +COPYERROR="Copy Error" + + +if [ -d $PREFIX ] ; then + echo "$PREFIX already exist!!! Delete it and repeate $0" + exit 0 +fi + + +mkdir $PREFIX + +if [ -d $PREFIX ] ; then + echo "$PREFIX is created" + echo "" + $CP biblio.pl "$PREFIX" + if [ -e "$PREFIX"biblio.pl ] ; then + echo "$PREFIX"biblio.pl is copied + echo "Copying directories..." + $CP -r formats "$PREFIX" + $CP -r EXAMPLES "$PREFIX" + $CP -r ADDSCRIPTS "$PREFIX" + + if [ -d "$PREFIX"formats ] ; then + if [ -d "$PREFIX"EXAMPLES ] ; then + if [ -d "$PREFIX"ADDSCRIPTS ] ; then + echo "All files are copied." + else + echo "$COPYERROR ADDSCRIPTS" + exit 0 + fi + else + echo "$COPYERROR EXAMPLES" + exit 0 + fi + + else + echo "$COPYERROR formats" + exit 0 + fi + + else + echo "$COPYERROR biblio.pl" + exit 0 + fi + + echo "Changing dir to $PREFIX" + cd $PREFIX + $LN biblio.pl biblio + if [ -e biblio ] ; then + echo "Link biblio to biblio.pl is created" + else + echo "Failed to create a link to biblio.pl. Exiting..." + exit 0 + fi + + echo "Changing dir to $BINDIR" + cd $BINDIR + + $LN "$PREFIX"biblio biblio + if [ -e biblio ] ; then + echo "Link $BINDIR"biblio to "$PREFIX"biblio is created + else + echo Error creating link "$BINDIR"biblio! Exiting... + exit 0 + fi + + $LN "$PREFIX""$ADDSCRIPTS"/biblist.pl biblist.pl + if [ -e biblist.pl ] ; then + echo "Link $BINDIR"biblist.pl to "$PREFIX"biblist.pl is created + else + echo Error creating link "$BINDIR"biblist! Exiting... + exit 0 + fi + + echo "Done!!!" + echo + +else + echo Error creating "$PREFIX". Exiting... + exit 0 +fi
\ No newline at end of file diff --git a/support/biblio/libtex b/support/biblio/libtex new file mode 100755 index 0000000000..9aac518d83 --- /dev/null +++ b/support/biblio/libtex @@ -0,0 +1,36 @@ +JOURNAL="physreve" +PREFIX="/home93/stepanrr/cgi-bin/Biblio/" + +VLEVEL="1" #verbosity level +PROJECT=$1 +REFS=$PREFIX"refers.db" +FORMATS=$PREFIX"formats/"$JOURNAL + +if [ $# = 0 ] +then + echo "Syntax: $0 <tex-file without (!!!) \".tex\"> " + exit 0 +fi + +SUFFIX=".1" + +OUTTEX="$PROJECT$SUFFIX.tex" +OUTDVI="$PROJECT$SUFFIX.dvi" +TEXFILE="$PROJECT.tex" +DVIFILE="$PROJECT.dvi" + + +echo $OUTTEX + +if [ $JOURNAL = "physreve" ] +then + biblio -v $VLEVEL -o $OUTTEX -d $REFS -f $FORMATS $TEXFILE +else + biblio -v $VLEVEL -o $OUTTEX -d $REFS -f $FORMATS --nobibitem --uselist $TEXFILE +fi + + +latex $OUTTEX +latex $OUTTEX +mv $OUTDVI $DVIFILE +#rm *.aux *.log *~
\ No newline at end of file diff --git a/support/biblio/readme.1st b/support/biblio/readme.1st new file mode 100644 index 0000000000..187801da12 --- /dev/null +++ b/support/biblio/readme.1st @@ -0,0 +1,918 @@ + + BIBLIO + bibliographic preprocessor + + + 09 April 2001 + 27 June 2001 + 07 Sept 2001 (ver 1.1) + 17 Sep 2001 (ver 1.11) + 04 Oct 2001 (ver 1.2) + 12 March 2002 (ver 1.21) + +CONTENT + +Abstract + +0. Copyright +1. Statement of Purpose +2. General Ideas +3. Structure of the Biblio-Database +4. Structure of the Format File (Format Strings) +5. Running Biblio +6. Examples +7. Additional Scripts +8. Installation Guide and Short Instruction +9. Perl To C +10. To Do +11. Known Bugs + +=============================================================================== + + Abstract + +Biblio is a programm for preprocessing your bibliographic references. It is +written in Perl and does not use the LaTeX internal language. After +preprocessing the input TeX file it creates output TeX file with references +included according to the formats prescribed either in a separate file +(called "template" or "format file" further on) +or in the header of the input TeX file. Output TeX is ready for LaTeX. +If you do not need details, move to the section 8 (and 9) of this text. + + +------------------------------------- + +0. COPYRIGHT + +This is free software. But NO use in commercial purposes is allowed. +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. + +------------------------------------- + +1. STATEMENT OF PURPOSE + +Don't reinvent a wheel - this should be your first reaction. Might be you are +right: many people use BibTeX or some other (I don't know which but pretty sure +they do exist) programs to pre-process their bibliographic references lists. +But what I did before was just including all citations directly into my +TeX-file. Before... Before this story has happened. + +I was writing an article and from the very beginning we (I and my bosses) +decided to send it to the Journal A. Of course, I wrote everything including +citations in the style of this journal. But when the work was almost finished +we (you know whom I mean) decided to send the paper to another journal, say +Journal B. And of course it has different rules and standards. +No problem - one should say,- Use BibTeX. Yes, that's OK - is my reply. +But what I basicly needed was to change the order of names (last, first, etc) +in the authors list. Like instead of "J.J.Smith" now I needed "Smith, J.J.". +Might be information I used was quite outdated, but I could not find the way to +handle this kind of things with the BibTeX. + +Another reason to start this project was handle somehow ordering of the +citation list. Normally articles in the "References and Notes" section should +appear in the same order as they are in the body-text. But sometimes it's quite +useful to have the list ordered according to the first author name or something +different. + +And finally, some journals prefer to have "as raw text as possible". They do +accept TeX-files but... without cross references and citations which means, +that everything have to be done by hands and ONLY ONE file has to be submitted. +I don't like this idea! But I DO want to be published there! So, may be a +partial solution is (for citations at least) is to pre-process the TeX-file to +another TeX-file where all \cite and \bibitem commands are substituted by +normal text. Of course, according to some pattern. This solves one more +problem - I'm not very good in TeX programming and find it quite difficult to +make TeX command \cite produce some nice output in the form $^{1,2,6}$ instead +of [1,2,6]. + +So, let's move to the GENERAL IDEAS + +----------------------------------------------------- + +2.GENERAL IDEAS + + A. This program pre-processes TeX-file making another TeX-file. + + B. Citations are inserted from the DataBase(s) which has form of a separate +file. Fields of the records in this file are absolutely ARBITRARY, except for +LABEL and TYPE. Field AUTHOR has also some special meaning which will be +clarified further on. +This DataBase has form of +====================================================== +LABEL = Landau +TYPE = book +AUTHORL = Landau|Lifshits +AUTHORF = L |E. +AUTHORM = D. |M. +TITLE = Statistical Physics +PUBL = Pergamon +PLACE = Oxford +YEAR = 1980 +---------- +LABEL = Vasilevskaya +TYPE = article0 +AUTHORL = Vasilevskaya|Klochkov|Khalatur|Khokhlov|Brinke +AUTHORF = V. |A. |P. |A. |G. +AUTHORM = V. |A. |G. |R. | +TITLE = Microphase separation within comb-like copolymer with attractive side-chains: computer simulations. +JOURNAL = Macromol. Theory and Simul. +STATE = accepted +---------- +LABEL = Helfand1 +TYPE = article +AUTHORL = Helfand|Wasserman +AUTHORF = E. |Z. +AUTHORM = |R. +JOURNAL = Macromolecules +VOL = 9 +PAGE = 879 +YEAR = 1976 +---------- +LABEL = 3dFlex +TYPE = article +AUTHORP = | | |ten +AUTHORL = Subbotin|Saariaho|Ikkala|Brinke +AUTHORF = A. |M. |O. |G. +TITLE = Elasticity of comb copolymer cylindrical brushes +JOURNAL = Macromolecules +PAGE = 3447 +YEAR = 2000 +VOL = 33 +---------- +LABEL = Dobrynin1 +TYPE = article +AUTHORL = Dobrynin|Erukhimovich +AUTHORF = A.|I. +AUTHORM = V.|Y. +TITLE = Computer-aided comparative investigation of architecture influence of block copolymer phase diagrams +JOURNAL = Macromolecules +PAGE = 276 +EPAGE = 281 +YEAR = 1993 +VOL = 26 +COMMENT = Read it before you have graduated!!! +---------- +==================================================================== + +Please, note that the last entry has EPAGE (which means "end page") and title +also included whereas record "Helfand1" contains much less information. +This will not cause any problem. The only person to whom you have to agree is +yourself: if you call the first (starting) page of the paper (book, etc) "PAGE", +do it for all entries. If you prefer to call it "EGAP" - it's your choice! + +One can use abbreviation in the form of TeX commands, like +"\mml" can mean "Macromol." if we include line "\def\mml{Macromol.}" +somewhere in the tex-source. To do so see "-a" option: to point to the +abbreviations file "-a abbr.tex" should be used. Note: Biblio will not check +consistency of your abbreviations!!! + +LABEL and TYPE are predefined! Also AUTHOR is predefined. "AUTHOR" without "L", +"R" or anything else at the end. It is predefined in the sense, that entries in +the database, which start with "AUTHOR" ("AUTHORL", "AUTHORF") are considered to +be arrays with separator "|". There are two equivalent ways to represent them +in the DataBase: +* one is shown above (with "|" as separator) +* the "Dobrynin1" entry can be also written in the form +============== +AUTHORL = Dobrynin +AUTHORF = A. +AUTHORM = V. +AUTHORL = Erukhimovich +AUTHORF = I. +AUTHORM = Y. +=============== +The only important issue is the order of this entries: the first AUTHORF belongs +to the first AUTHORL. In principle you can include anything between them, like: +=============== +AUTHORL = Dobrynin +YEAR = 1993 +AUTHORF = A. +AUTHORM = V. +PAGE = 276 +AUTHORL = Erukhimovich +AUTHORF = I. +AUTHORM = Y. +============== +It will produce the same result. + +If there are several entries for the same key (like YEAR) which is NOT supposed +to be array (i.e. does not start with AUTHOR), then only the last one will +influence the final result. + +The fact that all arrays should start with AUTHOR does not mean that you can +apply it to the authors' list only. It will become more transparent further. + + C. Of course you want some nice output. Your LaTeX document should look like: + +==== +\documentstyle[12pt,a4]{article} +\title{Blah-blah} +\begin{document}\maketitle + +Text text \cite{Dobrynin1}. +Text Text text \cite {Dobrynin1,3dFlex} + +\begin{thebibliography} + +\end{thebibliography} + +Something more you need (list of figures or whatever) + +\end{document} +==== + +Note, that NOTHING is between \begin{thebibliography} and +\end{thebibliography}. These two are just signs for Biblio to insert your +references list in between. + +What does Biblio do? It reads your TeX-file and finds all references (which you +have in \cite command) in the database. Then it inserts them according to some +formats (see further) between \begin{thebibliography} and \end{thebibliography}. +It can do it in two ways: + +FIRST: insert them as "\bibitem{LABEL} TEXT OF THE REF" and not touching +anything else (text of the ref is according to the format, of course); + +SECOND: insert them in some special way, where you can define what \cite will +produce and what kind of numbering you want in the references list. For example, +if you like $^{1,5-7}$ more than standard [1,5-7], normally produced by \cite, +and +(1) ref1 +(2) ref2 +instead of +[1] ref1 +[2] ref2 +produced by \bibitem. + +(Hint: your choice between FIRST and SECOND you can do by using "--nobibitem" +parameter, and "cite_format" and "ref_format" fields in the format file). + +After it's done, you can process output file with normal LaTeX. + +(Hint: You can find script "libtex" which will help you to handle it.) + + D. All formats are stored in the format file (see -f command line option) +or just in your TeX document's header. About rules (how to write this formats) +you can read below. + + + E. So, your checklist is: + 1. Input TeX file. + 2. References database. + 3. Format file + +If you have all these you have to do + +biblio -o outdoc.tex -d refsdata.db refsdata1.db -f formats.db indoc.tex + +where +- outdoc.tex - output filename + (if not given, them "biblio."-prefix is added to "indoc.tex" + like "biblio.indoc.tex") +- refsdata.db - references database (may be more than one) +- formats.db - format file (only ONE) +- indoc.tex - input file + +The order of the parameters is not important. + +------------------------------------- + +3. STRUCTURE OF THE BIBLIO-DATABASE + +It has form described in 2.B. It consists of records. After each record a +separator has to be placed. By default, it is "----------\n". You can easily +change it by command line option "--separator". Only on separator can be used! + +Each record has fields. One line per one field - is a rule! +You cannot change it (without looking into the source, of course)! + +Each field has a structure NAME = VALUE. + +Fields' names LABEL and TYPE are predefined - each record has to have them. +Otherwise it will be ignored. + +Field AUTHOR has a special structure. +Usage is quite obvious from an example + +AUTHORP = | | |ten +AUTHORL = Subbotin|Saariaho|Ikkala|Brinke +AUTHORF = A. |M. |O. |G. +AUTHORM = V. + +There are 4 authors: Subbotin A.V.; Saariaho M.; Ikkala O. and ten Brinke G. + +P, L, F and M are from "prefix", "last", "first", "middle". + +Sign "|" separates authors. It is reserved and cannot be changed! + +You can use as many fields as you like. If you don't use them in the +output - no problem, part of them will be ignored. + +You can have several databases. Use inline option "-d" to say Biblio names +of databases you want to use. + +That's all! + +------------------------------------- + +4. STRUCTURE OF THE FORMAT FILE (FORMAT STRING) + +Your output (formated entries from database put into the TeX document) has to +be formated according to the rules described in the so called format file (or +templates) or just in the beginning of your TeX document. +The first way is preferable - it gives taste of more structural ordering. +Use option "-f" to point to a format file. Otherwise Biblio will try to find +formats in the TeX-file and, if not succeeded, will complain and halt. + +What we want to format? +1. References list (what you normally have at the end of your paper) +2. Citations in the text (what you do with \cite) + +Before reading this, read 2.C from "General Ideas" section. + +How to write formats? That's the hardest part! + +Let's start from an +EXAMPLE: +------------------- +% this is template for Macromolecules +% no ordering of the references is needed. Otherwise add line +% '%ordering= AUTHORL' - ordering with key field 'AUTHORL' + +%begin{biblio} + +%cite_format={(%s)} +%ref_format=${^{%s}}$ + +%% normal article: +% ARTICLE [$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} {\bf $YEAR$}, {\it $VOL$}, $PAGE$.] + +%% article which is submitted or accepted +% ARTICLE0[$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} $STATE$.] + +%% normal book +% BOOK [$AUTHOR0P~L,~F~M; $ {\it $TITLE$}; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first +%% and middle names of the editor +% EDBOOK [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$}, edited by $AUTHOR0I~E,~G~H;$; $PUBL$: $PLACE$, $YEAR$.] + +%% article in a book without editor +% INBOOK [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$}, p.$PAGE$ $PUBL$: $PLACE$, $ +YEAR$.] + +% EPRINT [$AUTHOR0P~L,~F~M; $ in {\it $BOOKTITLE$} $INFO$, $YEAR$.] + +%end{biblio} +------------------- +4.0. Syntax + + A. Each line starts with %-sign. This is needed because in principle this can + be included into your TeX-document, so it has to be considered as a comment + by LaTeX. Lines, starting with %% are "REAL" comments (i.e. they are + comments for Biblio too). + + B. All this information has to be stored either in a template file (format + file) [use option -f filename] or just in the header of your TeX document. + In both cases it has to start with '%begin{biblio}' line and end with + '%end{biblio}'. + Only one template file is allowed (you cannot read from 2 for the + same document). + + C. There are some OPTIONAL reserved keys. If omitted, default values are + assumed and warning is printed. + Reserved keys are + C.1. cite_format: has a form %cite_format={(%s)} + %s just means "string". {(%s)} will produce output in your + references list like + + (1) Simpson,.... + (2) Tompson... + ... + + or %cite_format={%s.} will produce + + 1. Simpson,.... + 2. Tompson... + ... + + + C.2. ref_format: has a form %ref_format=${^{%s}}$ + This means how your \cite command output will look like. + For example, we have \cite{Aw1,Paper3,John} in the TeX document and + %ref_format=${^{%s}}$ in your format file. Then you get + + ${^{2,4,5}}$ (numbers depend on what is ordering, of + course) + or + ${^{2-4}}$ if they all are going one by one in your refslist. + + in the output TeX file instead of your \cite command. + If you have %ref_format={[%s]} then + + {[2,4,5]} + or + {[2-4]} + + C.3. ordering: has a form %ordering= AUTHORL + This means that the field AUTHORL has to be considered as a key field + in ordering of your references. You can put whatever you want there, + like YEAR, VOL,... + If this filed is not present in some entries, it considered to be + empty. + + D. Each TYPE (TYPE is article, book or something like this) has to have an + entry in the format file. This entry (format string) has a form + + % TYPE [format string] + + (it MUST be in ONE line!!!) + where the "format string" says to Biblio how to output information about + your reference of the type TYPE. + "[" and "]" MUST be there! They say where you start your format line and + where it ends (if you need to use inside the format line, don't worry: + the first [ is the start and the last ] is the end of the string; + all the rest are just characters). + Everything between $-signs is a filed name. $VOL$ will be substituted by + 54 if you have an entry + VOL = 54 + for this given article in your database. + It's a bit more tricky for AUTHOR (see below). + All the other words are just normal text or LaTeX commands. + Example: + + Let say, you have the following item in your database file + + LABEL = LifshitzGrosbergKhokhlov1 + TYPE = article + AUTHORL = Lifshitz|Grosberg|Khokhlov + AUTHORF = I. |A. |A. + AUTHORM = M. |Yu. |R. + JOURNAL = Rev. Mod. Phys. + VOL = 50 + PAGE = 683 + EPAGE = 713 + YEAR = 1978 + TITLE = Some problems of the statistical physics of... + + and an entry + + % ARTICLE [$AUTHOR0P~L,~F~M; $ {\it $JOURNAL$} {\bf $YEAR$}, {\it $VOL$}, $PAGE$.] + + in your format file (I assume also '%cite_format={(%s)}'). + Then output will be + + (1) ~Lifshitz,~I.~M.; ~Grosberg,~A.~Yu.; ~Khokhlov,~A.~R. + {\it {Rev. Mod. Phys.}} {\bf {1978}}, {\it {50}}, {683}. + + +4.1. AUTHOR-word: + + A. Word AUTHOR is reserved and assumed to be an array. + This means, that AUTHORLFM is in fact + hash index with keys AUTHORL, AUTHORF, AUTHORM, + or, if you like + AUTHOR[L]='Smith' + AUTHOR[F]='J.' + AUTHOR[M]='A.' + + B. After the word AUTHOR follows the max number of authors to show + (let us call it max_A). + If actual number of authors n_A > max_A, + then "$reservedET_AL" will be written after the + author number max_A and names of all the others will be omitted. + "max_A==0" (zero) means "max_A==infty" + C. $AUTHOR0L, F; $ means that fields should be written as follows: + 1) "AUTHORL" + 2) ", " + 3) "AUTHORF" + 4) "; " (let us denote it as "last_sep") + 5) go to "1)" for the next author + + + For example, for the Lifshitz' article above: + + $AUTHOR0L, F, M; $ produces + Lifshitz, I. M.; Grosberg, A. Yu.; Khokhlov, A. R. + + or + + $AUTHOR1L, F; $ produces + Lifshitz, I. et al + + Note, there is no the middle name in the 2nd example, because there is + no "M" in the format line. + + D. There is a special sign "|" which means that AUTHOR format line is ended + in fact and everything after it is so called "and_word". + This "and_word" (normally, it contains only "and") is something what is + written before the last author if the number of authors in larger than 1. + + Example: + $AUTHOR0L, F, M; |and$ produces + Lifshitz, I. M.; Grosberg, A. Yu.; and Khokhlov, A. R. + + + Note, that + 1) if "et al" have to be printed, "and_word" will not be there! + + $AUTHOR2L, F; |and$ produces + Lifshitz, I.; Grosberg, A. Yu. et al + + 2) if number of authors is larger than 2 but less or equal to max_A: + before the "end_word" the "last_sep" has to be written + otherwise - if only 2 authors: print "and_word", but no "last_sep" + + Example: Q.W. Rom and R.T. Lai + but Q.W. Rom, T.G. Doi, and R.T. Lai + here: last_sep="," ; and_word="and") + + This example corresponds to + $AUTHOR0FM L, |and$ + + +4.2. Fields LABEL, TYPE and AUTHOR are predefined. All the others can be named + by you. The only condition is: your fields in the database and in the formats + have to coincide. If some field is present in the format string but there + is no value of it in the database, sign $reservedEMPTY_FIELD_SIGN will be + printed out instead (see command line parameter --empty_field_sign); + by default $reservedEMPTY_FIELD_SIGN == '???'. + My suggestion is: use YEAR, VOL, PAGE, etc. for the year, volume and page and + don't name page as RTY45 - this is mush less readable. + +------------------------------------- + +5. RUNNING BIBLIO + +So, now you have references database and format file. It is time to talk about +command line parameters. Here they are: + + ESSENTIAL PARAMETERS + ++ -o output.file => $OUT_TEX ; + if no given, assuming $OUT_TEX = "biblio.$TEX_NAME" ++ -f format.file => $FORMAT_NAME + (can introduce templates for Macromolecules, + etc. If given, "in-tex" parameters will be + ignored!!!) + ++ -d dbase.file => @REFS_FILES (where all info about refs is!) + accepts many arguments + ++ -a abbrev.file => file of abbreviations (tex file) + if given, will be inserted just BEFORE + "\begin{references}" in the output.file. + Consists of anything you want, but the idea is + to use it like "\def\mml{Macromol.}" + and have entry + JOURNAL = \mml + instead of + JOURNAL = Macromol. + in the dbase.file. + ++ -v <number> => verbosity level (0-5) $verbosity_level + ++ -h or --help => short help information + ++ --nobibitem => $optionsKEEP_BIBITEM_AND_CITE=0. Default is 1!!! + (read 2.C too) + If not given, Biblio will insert all references +(formated, of course) into the out-TeX document, and that's it! You will +have \cite-commands as you had them before. List of references will be +produced by LaTeX itself (with \bibitem). +If given (but NO --uselist), it will print your references as a simple text, +flushed left. + + ++ --uselist => $optionsREFS_AS_TEX_LIST=1 Default is 0!!! + Will output the references list as a TeX list +with counter. Looks much better than \flushleft (try it!) + + +(if no --nobibitem nor --uselist is given it is assumed to use \bibitem + if --nobibitem is given, it will use \flushleft + if --nobibitem AND --uselist are given it will use \list +) + + + ADDITIONAL PARAMETERS + + key variable in the source,default value + and some info + ++ --etal "{\it{et al}}" => form of "et al"-string in $reservedET_AL + (see 4.1.C) ++ --separator "----------\n" => separator in the database-file + ++ --not_insert_empty_field_sign => $optionsINSERT_EMPTY_FIELDS_SIGN=0 + If some field is present in the format +string for the given TYPE, but is not in the database, Biblio will +insert some sign instead (see --empty_field_sign). + ++ --empty_field_sign xxx => $reservedEMTY_FIELD_SIGN = '???' + (see --not_insert_empty_field_sign) + ++ --start_refs => @STARTREFS= + accepts many arguments ('begin{references}','begin{thebibliography}'); + Tells where Biblio has to start inserting + the references list. + ++ --end_refs => my @ENDREFS= .... + accepts many arguments + +? --bibitem_string => my $BIBITEM = '%'."\n".'\bibitem{'; + ++ --version => version info + ++ --movepoint => added in ver1.1 + make "word.\cite{} Another sent" + from "word \cite{}. Another sent" + Everything in the variable $what_we_call_point='.,;:' is considered + to be a "point". + This way of making citations is required by some journals + (for instance, Macromolecules) which have citation in the form + "in recent works$^1-5$" + There point (or comma,...) has to be placed BEFORE citation, like + 'works.$^{1-5}$' but NOT 'works$^{1-5}$.' + NOTE: this will work only for point IN THE SAME LINE, like + 'was show recently \cite{q2,lab4,yt6}. Therefore' + but NOT for + 'was show recently \cite{q2,lab4,yt6} + . Therefore' + +(not everything is accomplished. So, ?-sign means, that in your version +this parameter might be still not working) + +------------------------------------- + +6. EXAMPLES + + A. I have a couple of format files (in the directory called "formats") +and a database. First, about the structure, I decided to follow. (It does +NOT mean you have to do it in the same way!) + +Types I use are + +ARTICLE just regular article +ARTICLE0 submitted or accepted article + +BOOK regular book +EDBOOK article in a book (with an editor!) +INBOOK article in a book without editor + +EPRINT electronic preprint + +Some examples of format files you can find in the "formats" directory. + +Example of a database is called "refers.db". + + + B. Document "EXAMPLES/2sorts/2sorts.tex" is an introduction +to one of my articles. You can use it as an example. +It needs templates which are in the "formats" dir. +Just type "./libtex" and that's it! + + C. Document "EXAMPLES/2sorts/2sorts_formats.tex" is +the same as in B., but all formats are included into the header +of the document. Read this header to find out how to compile it. + + D. Document "EXAMPLES/hairy/hairy.tex" shows how to use abbreviations. + +------------------------------------- + +7. ADDITIONAL SCRIPTS + +You can find some more scripts in the top directory. + + A. libtex + is a useful script for processing TeX documents on the + stage of their development. It can be easily adjusted + (open it in any text editor and change parameters). The idea is + to keep its copy at the same directory where your document (tex file) + is situated. + Then instead of running LaTeX itself you have to run "libtex" as + libtex filename + ("filename" WITHOUT tex extension!!! For 2sorts.tex it is "2sorts") + + JOURNAL - name of the template + PREFIX - Biblio's home directory (where in the "formats" directory all + formats are stored) + + B. biblist_html + Makes an HTML formated list from your references database. I use (as you + could see in refers.db) field URL for articles, which I have + electronically. This script will run "biblist.pl" (see below) with --html + key. This will produce nice html output with hyperlinks to your e-library + (it will put prefix "--prefix" for all hyperlinks except starting already + with "http:" ) + Of course, you can use "--prefix /home/usrname/base/" if you want to make + all refs local. + + C. biblist + The same as the previous one but output in TeX format. Uses biblist.pl + without --html key. + + D. biblist.pl + Makes a list of references from the whole database file. Can output in + TeX file or HTML. Has switches: almost all, which biblio has plus --html. + Does not have --uselist (it is always on), --start_refs, --end_refs. + And, of course, it does not need an input TeX file! Therefore you + always have to provide format file. + If --html is not given, produces TeX file. + HTML output needs special formats, of course. Example is in + EXAMPLES/formats/formats_html.biblist + + Example of a format file for TeX output is in + EXAMPLES/formats/formats.biblist + + E. bibcheck.pl (added 17 Sep 2001) + Checks your database (one ore more files containing references). + Complains if it has: + - records with empty LABEL or TYPE + - several records with the same LABEL + Has specific parameter "--noexit" which means "do not exit if + found a record without a label, just go on". By default it will + halt in this case. + Parameter -e (or --errors) says "after how many errors exit the program" + (default is 5) + For instance: + bibcheck.pl -e 10 -d myrefers.db onemorerefs.db + or + bibcheck.pl --errors 10 -d myrefers.db onemorerefs.db + will process files "myrefers.db" and "onemorerefs.db" but exit if at + some point number of errors will exceed 10. + + +That's all for the moment. + +------------------------------------- + +8. INSTALLATION GUIDE and SHORT INSTRUCTIONS + +I decided to put this section at the very end because now, I hope, you know what +you are installing. + +After unpacking the archive you have: + + * biblio.pl - the main "executable" + * dir formats - format files (template) and + abbreviations file "abbr.tex". Ready for use. + * biblist.pl; biblist.pl; biblist_html; bibcheck.pl + - some additional scripts (see section 7). + * dir EXAMPLES - examples (see section 6). + +and bash script "install" to help you to install. + +1. Edit script "install" First two lines have to point to + * PREFIX to the directory, where you want to install biblio + (formats, examples, etc.). It must NOT exist yet. + + * BINDIR to the binaries directory, where it will put links to biblio and + biblist + + Edit biblio.pl and ADDSCRIPTS/biblist.pl: in the first line it should be + a full path to your Perl!!! + +2. Run "./install". Then change dir to your PREFIX dir and check, that biblio.pl + and everything in the ADDSCRIPT directory is executable. If not, do + + chmod a+x name_of_the_file + + +3. If installation script failed, you can do it yourself. + Just create a directory for biblio. + Copy there everything you found in the current directory (see above). + Then + + ln -s biblio biblio.pl + + Chenge dir to your normal binaries dir and do + + ln -s biblio PREFIX/biblio + ln -s biblist.pl PREFIX/ADDSCRIPT/biblist.pl + + where PREFIX has to be a real path (like /usr/local/biblio) + + Be sure about file permissions (everybody, or at least you, has to be + able to execute!). + +That's all. Now you have commands "biblio" and "biblist" + +About usage of additional scripts. What I normally do is like this: + +1. Copy libtex from ADDSCRIPTS to the directory where my current TeX document +is. + +2. Edit it + + * JOURNAL is the name of the template + * PREFIX is the place where you keep biblio (and all its stuff) + * REFS is your references database + * FORMATS is a place where you keep format files (templates) + * PROJECT is a name of your TeX file WITHOUT extension. + Normally you do for file myarticle.tex + libtex myarticle + and myarticle goes to PROJECT variable. + But you can just put it like + PROJECT=myarticle + in the text of libtex and then type + libtex + only to compile your TeX document. + +3. After running libtex (if everything goes right) you will have + a file named "myarticle.dvi" and "myarticle.1.tex" and some more, which are + not important. + +Working version of libtex (it works even without any installation) is in the +EXAMPLES dir. Try it. +----- + +About biblist - it produces a full references list from all the entries you have +in your database. Copy it somewhere and edit: +REFSTEX is the output file; +FORMATS is the format file. You can edit it, if you like. + +Run biblist and you get references.tex file, and references.dvi file. +----- + +About biblist_html - does the same what biblist does, but outputs in HTML. +About --prefix option you can read in 7.B and 7.C. Formats, of course, are +different from what you use for TeX output. I provide formats_html.biblist file +(find it in the "formats" directory) - you can easily edit it. + +------------------------------------- + +9. PERL TO C + +If everything went OK and you are going to use biblio, I have an idea about +speeding it up. You can use "perlcc" to make a real binary from Perl's script. +Sometimes it is a good idea, sometimes not. What I found: binary of biblio +is 50% (yeah, yeah - 50!) faster than Perl-script. So it is worthy of trying! +Do: + + perlcc -o biblio.exe biblio.pl + +and you will get biblio.exe executable (it will take some time - translation to +C and then compilation). + +If you succeeded, make a link called "biblio" to biblio.exe (at the same +directory, where you have biblio.pl; so, you have to erase an old link biblio +pointing to biblio.pl). + +All the rest is the same. + +If you are interested in C sources, try + + perlcc -sav -o biblio.exe biblio.pl + +It will save sources for you! Just great! Althoug I don't think, this C-source +is really readable! :) + +------------------------------------- + +10. TO DO + +A lot of things are very raw. Only a couple of people tried it and I cannot say +it was sufficiently tested. So if you discover any bug or have any suggestion +write directly to me (rstepanyan@yahoo.com). + +This script now supports only very primitive way of citation: each citation +is numbered and this number is its identifier. So, citation in the form +"Smith(1990a)" are impossible. That is, probably, the first thing to do +(This kind of citations is used in Rev. of Modern Physics, for instance). + +I do not have too much time right now, but I am constantly thinking about it. + +------------------------------------- + +11. Known Bugs + +11.A. Lost Lines (for ver.1.2 only) + +From ver.1.2 there is no points and commas at the beginning of the line. +Like in the piece of text + + Was shown in work + \cite{lab2}. Blah-Blah-Blah + +if we use --movepoint option we get + + Was shown in work + .\cite{lab2} Blah-Blah-Blah + +(and ver.1.1 really did it this way). +But it should be (and from ver.1.2 it IS) + + Was shown in work.\cite{lab2} Blah-Blah-Blah + +That is exactly what is fixed now. Although it adds a new bug: if you have + + Was shown in work + % Blah-Blah-Blah + \cite{lab2}. Blah-Blah-Blah# + +then one line is LOST!!!! (Guess why!) + +------------------------------------- +Oh, now it is really the EOF!
\ No newline at end of file diff --git a/support/biblio/readme.1st.ps b/support/biblio/readme.1st.ps new file mode 100644 index 0000000000..643b6baa65 --- /dev/null +++ b/support/biblio/readme.1st.ps @@ -0,0 +1,1736 @@ +%!PS-Adobe-3.0 +%%Title: readme.1st +%%For: +%%Creator: a2ps version 4.13 +%%CreationDate: Tue Mar 12 12:30:14 2002 +%%BoundingBox: 24 24 571 818 +%%DocumentData: Clean7Bit +%%Orientation: Landscape +%%Pages: 8 +%%PageOrder: Ascend +%%DocumentMedia: A4 595 842 0 () () +%%DocumentNeededResources: font Courier +%%+ font Courier-Bold +%%+ font Courier-BoldOblique +%%+ font Courier-Oblique +%%+ font Helvetica +%%+ font Helvetica-Bold +%%+ font Symbol +%%+ font Times-Bold +%%+ font Times-Roman +%%DocumentProcessColors: Black +%%DocumentSuppliedResources: procset a2ps-a2ps-hdr +%%+ procset a2ps-black+white-Prolog +%%+ encoding ISO-8859-1Encoding +%%EndComments +/a2psdict 200 dict def +a2psdict begin +%%BeginProlog +%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana +%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana +% Check PostScript language level. +/languagelevel where { + pop /gs_languagelevel languagelevel def +} { + /gs_languagelevel 1 def +} ifelse + +% EPSF import as in the Red Book +/BeginInclude { + /b4_Inc_state save def % Save state for cleanup + /dict_count countdictstack def % Count objects on dict stack + /op_count count 1 sub def % Count objects on operand stack + userdict begin + 0 setgray 0 setlinecap + 1 setlinewidth 0 setlinejoin + 10 setmiterlimit [ ] 0 setdash newpath + gs_languagelevel 1 ne { + false setstrokeadjust false setoverprint + } if +} bind def + +/EndInclude { + count op_count sub { pos } repeat % Clean up stacks + countdictstack dict_count sub { end } repeat + b4_Inc_state restore +} bind def + +/BeginEPSF { + BeginInclude + /showpage { } def +} bind def + +/EndEPSF { + EndInclude +} bind def + +% Page prefeed +/page_prefeed { % bool -> - + statusdict /prefeed known { + statusdict exch /prefeed exch put + } { + pop + } ifelse +} bind def + +/deffont { + findfont exch scalefont def +} bind def + +/reencode_font { + findfont reencode 2 copy definefont pop def +} bind def + +% Function c-show (str => -) +% centers text only according to x axis. +/c-show { + dup stringwidth pop + 2 div neg 0 rmoveto + show +} bind def + +% Function l-show (str => -) +% prints texts so that it ends at currentpoint +/l-show { + dup stringwidth pop neg + 0 + rmoveto show +} bind def + +% center-fit show (str w => -) +% show centered, and scale currentfont so that the width is less than w +/cfshow { + exch dup stringwidth pop + % If the title is too big, try to make it smaller + 3 2 roll 2 copy + gt + { % if, i.e. too big + exch div + currentfont exch scalefont setfont + } { % ifelse + pop pop + } + ifelse + c-show % center title +} bind def + +% Return the y size of the current font +% - => fontsize +/currentfontsize { + currentfont /FontMatrix get 3 get 1000 mul +} bind def + +% reencode the font +% <encoding-vector> <fontdict> -> <newfontdict> +/reencode { %def + dup length 5 add dict begin + { %forall + 1 index /FID ne + { def }{ pop pop } ifelse + } forall + /Encoding exch def + + % Use the font's bounding box to determine the ascent, descent, + % and overall height; don't forget that these values have to be + % transformed using the font's matrix. + % We use `load' because sometimes BBox is executable, sometimes not. + % Since we need 4 numbers an not an array avoid BBox from being executed + /FontBBox load aload pop + FontMatrix transform /Ascent exch def pop + FontMatrix transform /Descent exch def pop + /FontHeight Ascent Descent sub def + + % Define these in case they're not in the FontInfo (also, here + % they're easier to get to. + /UnderlinePosition 1 def + /UnderlineThickness 1 def + + % Get the underline position and thickness if they're defined. + currentdict /FontInfo known { + FontInfo + + dup /UnderlinePosition known { + dup /UnderlinePosition get + 0 exch FontMatrix transform exch pop + /UnderlinePosition exch def + } if + + dup /UnderlineThickness known { + /UnderlineThickness get + 0 exch FontMatrix transform exch pop + /UnderlineThickness exch def + } if + + } if + currentdict + end +} bind def + +% Function print line number (<string> # -) +/# { + gsave + sx cw mul neg 2 div 0 rmoveto + f# setfont + c-show + grestore +} bind def + +% -------- Some routines to enlight plain b/w printings --------- + +% Underline +% width -- +/dounderline { + currentpoint + gsave + moveto + 0 currentfont /Descent get currentfontsize mul rmoveto + 0 rlineto + stroke + grestore +} bind def + +% Underline a string +% string -- +/dounderlinestring { + stringwidth pop + dounderline +} bind def + +/UL { + /ul exch store +} bind def + +% Draw a box of WIDTH wrt current font +% width -- +/dobox { + currentpoint + gsave + newpath + moveto + 0 currentfont /Descent get currentfontsize mul rmoveto + dup 0 rlineto + 0 currentfont /FontHeight get currentfontsize mul rlineto + neg 0 rlineto + closepath + stroke + grestore +} bind def + +/BX { + /bx exch store +} bind def + +% Box a string +% string -- +/doboxstring { + stringwidth pop + dobox +} bind def + +% +% ------------- Color routines --------------- +% +/FG /setrgbcolor load def + +% Draw the background +% width -- +/dobackground { + currentpoint + gsave + newpath + moveto + 0 currentfont /Descent get currentfontsize mul rmoveto + dup 0 rlineto + 0 currentfont /FontHeight get currentfontsize mul rlineto + neg 0 rlineto + closepath + bgcolor aload pop setrgbcolor + fill + grestore +} bind def + +% Draw bg for a string +% string -- +/dobackgroundstring { + stringwidth pop + dobackground +} bind def + + +/BG { + dup /bg exch store + { mark 4 1 roll ] /bgcolor exch store } if +} bind def + + +/Show { + bg { dup dobackgroundstring } if + ul { dup dounderlinestring } if + bx { dup doboxstring } if + show +} bind def + +% Function T(ab), jumps to the n-th tabulation in the current line +/T { + cw mul x0 add + bg { dup currentpoint pop sub dobackground } if + ul { dup currentpoint pop sub dounderline } if + bx { dup currentpoint pop sub dobox } if + y0 moveto +} bind def + +% Function n: move to the next line +/n { + /y0 y0 bfs sub store + x0 y0 moveto +} bind def + +% Function N: show and move to the next line +/N { + Show + /y0 y0 bfs sub store + x0 y0 moveto +} bind def + +/S { + Show +} bind def + +%%BeginResource: procset a2ps-a2ps-hdr 2.0 2 +%%Copyright: (c) 1988, 89, 90, 91, 92, 93 Miguel Santana +%%Copyright: (c) 1995, 96, 97, 98 Akim Demaille, Miguel Santana +% Function title: prints page header. +% <ct> <rt> <lt> are passed as argument +/title { + % 1. Draw the background + x v get y v get moveto + gsave + 0 th 2 div neg rmoveto + th setlinewidth + 0.95 setgray + pw 0 rlineto stroke + grestore + % 2. Border it + gsave + 0.7 setlinewidth + pw 0 rlineto + 0 th neg rlineto + pw neg 0 rlineto + closepath stroke + grestore + % stk: ct rt lt + x v get y v get th sub 1 add moveto +%%IncludeResource: font Helvetica + fHelvetica fnfs 0.8 mul scalefont setfont + % 3. The left title + gsave + dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack + fnfs 0.8 mul hm rmoveto + show % left title + grestore + exch + % stk: ct ltw rt + % 4. the right title + gsave + dup stringwidth pop fnfs 0.8 mul add exch % leave space took on stack + dup + pw exch stringwidth pop fnfs 0.8 mul add sub + hm + rmoveto + show % right title + grestore + % stk: ct ltw rtw + % 5. the center title + gsave + pw 3 1 roll + % stk: ct pw ltw rtw + 3 copy + % Move to the center of the left room + sub add 2 div hm rmoveto + % What is the available space in here? + add sub fnfs 0.8 mul sub fnfs 0.8 mul sub + % stk: ct space_left +%%IncludeResource: font Helvetica-Bold + fHelvetica-Bold fnfs scalefont setfont + cfshow + grestore +} bind def + +% Function border: prints virtual page border +/border { %def + gsave % print four sides + 0 setgray + x v get y v get moveto + 0.7 setlinewidth % of the square + pw 0 rlineto + 0 ph neg rlineto + pw neg 0 rlineto + closepath stroke + grestore +} bind def + +% Function water: prints a water mark in background +/water { %def + gsave + scx scy moveto rotate +%%IncludeResource: font Times-Bold + fTimes-Bold 100 scalefont setfont + .97 setgray + dup stringwidth pop 2 div neg -50 rmoveto + show + grestore +} bind def + +% Function rhead: prints the right header +/rhead { %def + lx ly moveto + fHelvetica fnfs 0.8 mul scalefont setfont + l-show +} bind def + +% Function footer (cf rf lf -> -) +/footer { + fHelvetica fnfs 0.8 mul scalefont setfont + dx dy moveto + show + + snx sny moveto + l-show + + fnx fny moveto + c-show +} bind def +%%EndResource +%%BeginResource: procset a2ps-black+white-Prolog 2.0 1 + +% Function T(ab), jumps to the n-th tabulation in the current line +/T { + cw mul x0 add y0 moveto +} bind def + +% Function n: move to the next line +/n { %def + /y0 y0 bfs sub store + x0 y0 moveto +} bind def + +% Function N: show and move to the next line +/N { + Show + /y0 y0 bfs sub store + x0 y0 moveto +} bind def + +/S { + Show +} bind def + +/p { + false UL + false BX + fCourier bfs scalefont setfont + Show +} bind def + +/sy { + false UL + false BX + fSymbol bfs scalefont setfont + Show +} bind def + +/k { + false UL + false BX + fCourier-Oblique bfs scalefont setfont + Show +} bind def + +/K { + false UL + false BX + fCourier-Bold bfs scalefont setfont + Show +} bind def + +/c { + false UL + false BX + fCourier-Oblique bfs scalefont setfont + Show +} bind def + +/C { + false UL + false BX + fCourier-BoldOblique bfs scalefont setfont + Show +} bind def + +/l { + false UL + false BX + fHelvetica bfs scalefont setfont + Show +} bind def + +/L { + false UL + false BX + fHelvetica-Bold bfs scalefont setfont + Show +} bind def + +/str{ + false UL + false BX + fTimes-Roman bfs scalefont setfont + Show +} bind def + +/e{ + false UL + true BX + fHelvetica-Bold bfs scalefont setfont + Show +} bind def + +%%EndResource +%%EndProlog +%%BeginSetup +%%IncludeResource: font Courier +%%IncludeResource: font Courier-Oblique +%%IncludeResource: font Courier-Bold +%%IncludeResource: font Times-Roman +%%IncludeResource: font Symbol +%%IncludeResource: font Courier-BoldOblique +%%BeginResource: encoding ISO-8859-1Encoding +/ISO-8859-1Encoding [ +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright +/parenleft /parenright /asterisk /plus /comma /minus /period /slash +/zero /one /two /three /four /five /six /seven +/eight /nine /colon /semicolon /less /equal /greater /question +/at /A /B /C /D /E /F /G +/H /I /J /K /L /M /N /O +/P /Q /R /S /T /U /V /W +/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore +/quoteleft /a /b /c /d /e /f /g +/h /i /j /k /l /m /n /o +/p /q /r /s /t /u /v /w +/x /y /z /braceleft /bar /braceright /asciitilde /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef +/space /exclamdown /cent /sterling /currency /yen /brokenbar /section +/dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron +/degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /bullet +/cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown +/Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla +/Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis +/Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply +/Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls +/agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla +/egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis +/eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide +/oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis +] def +%%EndResource +% Initialize page description variables. +/sh 595 def +/sw 842 def +/llx 24 def +/urx 818 def +/ury 571 def +/lly 24 def +/#copies 1 def +/th 15.000000 def +/fnfs 11 def +/bfs 8.005733 def +/cw 4.803440 def + +% Dictionary for ISO-8859-1 support +/iso1dict 8 dict begin + /fCourier ISO-8859-1Encoding /Courier reencode_font + /fCourier-Bold ISO-8859-1Encoding /Courier-Bold reencode_font + /fCourier-BoldOblique ISO-8859-1Encoding /Courier-BoldOblique reencode_font + /fCourier-Oblique ISO-8859-1Encoding /Courier-Oblique reencode_font + /fHelvetica ISO-8859-1Encoding /Helvetica reencode_font + /fHelvetica-Bold ISO-8859-1Encoding /Helvetica-Bold reencode_font + /fTimes-Bold ISO-8859-1Encoding /Times-Bold reencode_font + /fTimes-Roman ISO-8859-1Encoding /Times-Roman reencode_font +currentdict end def +/bgcolor [ 0 0 0 ] def +/bg false def +/ul false def +/bx false def +% The font for line numbering +/f# /Helvetica findfont bfs .6 mul scalefont def +/fSymbol /Symbol findfont def +/hm fnfs 0.25 mul def +/pw + cw 81.400000 mul +def +/ph + 501.959430 th add +def +/pmw urx llx sub pw 2 mul sub 1 div def +/pmh 0 def +/v 0 def +/x [ + 0 + dup pmw add pw add +] def +/y [ + pmh ph add 0 mul ph add + dup +] def +/scx sw 2 div def +/scy sh 2 div def +/snx urx def +/sny lly 2 add def +/dx llx def +/dy sny def +/fnx scx def +/fny dy def +/lx snx def +/ly ury fnfs 0.8 mul sub def +/sx 0 def +/tab 8 def +/x0 0 def +/y0 0 def +%%EndSetup + +%%Page: (1-2) 1 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +() p n +( BIBLIO) N +( bibliographic preprocessor) N +() N +() N +( 09 April 2001) N +( 27 June 2001) N +( 07 Sept 2001 \(ver 1.1\)) N +( 17 Sep 2001 \(ver 1.11\)) N +( 04 Oct 2001 \(ver 1.2\)) N +( 12 March 2002 \(ver 1.21\)) N +() N +(CONTENT) N +() N +(Abstract) N +() N +(0. Copyright) N +(1. Statement of Purpose) N +(2. General Ideas) N +(3. Structure of the Biblio-Database) N +(4. Structure of the Format File \(Format Strings\)) N +(5. Running Biblio) N +(6. Examples) N +(7. Additional Scripts) N +(8. Installation Guide and Short Instruction) N +(9. Perl To C) N +(10. To Do) N +(11. Known Bugs) N +() N +(===============================================================================) N +( ) N +( Abstract) N +() N +(Biblio is a programm for preprocessing your bibliographic references. It is) N +(written in Perl and does not use the LaTeX internal language. After ) N +(preprocessing the input TeX file it creates output TeX file with references) N +(included according to the formats prescribed either in a separate file ) N +(\(called "template" or "format file" further on\)) N +(or in the header of the input TeX file. Output TeX is ready for LaTeX.) N +(If you do not need details, move to the section 8 \(and 9\) of this text.) N +() N +() N +(-------------------------------------) N +() N +(0. COPYRIGHT) N +() N +(This is free software. But NO use in commercial purposes is allowed.) N +(There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR ) N +(PURPOSE.) N +() N +(-------------------------------------) N +() N +(1. STATEMENT OF PURPOSE) N +() N +(Don't reinvent a wheel - this should be your first reaction. Might be you are ) N +(right: many people use BibTeX or some other \(I don't know which but pretty sure ) N +(they do exist\) programs to pre-process their bibliographic references lists. ) N +(But what I did before was just including all citations directly into my ) N +(TeX-file. Before... Before this story has happened. ) N +() N +(I was writing an article and from the very beginning we \(I and my bosses\) ) N +(decided to send it to the Journal A. Of course, I wrote everything including ) N +(readme.1st) (Page 1/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(citations in the style of this journal. But when the work was almost finished ) p n +(we \(you know whom I mean\) decided to send the paper to another journal, say ) N +(Journal B. And of course it has different rules and standards. ) N +(No problem - one should say,- Use BibTeX. Yes, that's OK - is my reply. ) N +(But what I basicly needed was to change the order of names \(last, first, etc\) ) N +(in the authors list. Like instead of "J.J.Smith" now I needed "Smith, J.J.".) N +(Might be information I used was quite outdated, but I could not find the way to ) N +(handle this kind of things with the BibTeX. ) N +() N +(Another reason to start this project was handle somehow ordering of the ) N +(citation list. Normally articles in the "References and Notes" section should ) N +(appear in the same order as they are in the body-text. But sometimes it's quite ) N +(useful to have the list ordered according to the first author name or something ) N +(different.) N +() N +(And finally, some journals prefer to have "as raw text as possible". They do ) N +(accept TeX-files but... without cross references and citations which means, ) N +(that everything have to be done by hands and ONLY ONE file has to be submitted. ) N +(I don't like this idea! But I DO want to be published there! So, may be a ) N +(partial solution is \(for citations at least\) is to pre-process the TeX-file to ) N +(another TeX-file where all \\cite and \\bibitem commands are substituted by ) N +(normal text. Of course, according to some pattern. This solves one more ) N +(problem - I'm not very good in TeX programming and find it quite difficult to ) N +(make TeX command \\cite produce some nice output in the form $^{1,2,6}$ instead ) N +(of [1,2,6].) N +( ) N +(So, let's move to the GENERAL IDEAS) N +() N +(-----------------------------------------------------) N +() N +(2.GENERAL IDEAS) N +() N +( A. This program pre-processes TeX-file making another TeX-file.) N +() N +( B. Citations are inserted from the DataBase\(s\) which has form of a separate ) N +(file. Fields of the records in this file are absolutely ARBITRARY, except for ) N +(LABEL and TYPE. Field AUTHOR has also some special meaning which will be ) N +(clarified further on.) N +(This DataBase has form of) N +(======================================================) N +(LABEL = Landau) N +(TYPE = book) N +(AUTHORL = Landau|Lifshits) N +(AUTHORF = L |E.) N +(AUTHORM = D. |M.) N +(TITLE = Statistical Physics) N +(PUBL = Pergamon) N +(PLACE = Oxford) N +(YEAR = 1980) N +(----------) N +(LABEL = Vasilevskaya) N +(TYPE = article0) N +(AUTHORL = Vasilevskaya|Klochkov|Khalatur|Khokhlov|Brinke) N +(AUTHORF = V. |A. |P. |A. |G.) N +(AUTHORM = V. |A. |G. |R. |) N +(TITLE = Microphase separation within comb-like copolymer with attractive side) N +(-chains: computer simulations.) N +(JOURNAL = Macromol. Theory and Simul.) N +(STATE = accepted) N +(----------) N +(LABEL = Helfand1) N +(TYPE = article) N +(readme.1st) (Page 2/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (1/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (3-4) 2 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(AUTHORL = Helfand|Wasserman) p n +(AUTHORF = E. |Z.) N +(AUTHORM = |R.) N +(JOURNAL = Macromolecules) N +(VOL = 9) N +(PAGE = 879) N +(YEAR = 1976) N +(----------) N +(LABEL = 3dFlex) N +(TYPE = article) N +(AUTHORP = | | |ten) N +(AUTHORL = Subbotin|Saariaho|Ikkala|Brinke) N +(AUTHORF = A. |M. |O. |G.) N +(TITLE = Elasticity of comb copolymer cylindrical brushes) N +(JOURNAL = Macromolecules) N +(PAGE = 3447) N +(YEAR = 2000) N +(VOL = 33) N +(----------) N +(LABEL = Dobrynin1) N +(TYPE = article) N +(AUTHORL = Dobrynin|Erukhimovich) N +(AUTHORF = A.|I.) N +(AUTHORM = V.|Y.) N +(TITLE = Computer-aided comparative investigation of architecture influence of ) N +(block copolymer phase diagrams) N +(JOURNAL = Macromolecules) N +(PAGE = 276) N +(EPAGE = 281) N +(YEAR = 1993) N +(VOL = 26) N +(COMMENT = Read it before you have graduated!!! ) N +(----------) N +(====================================================================) N +() N +(Please, note that the last entry has EPAGE \(which means "end page"\) and title ) N +(also included whereas record "Helfand1" contains much less information. ) N +(This will not cause any problem. The only person to whom you have to agree is ) N +(yourself: if you call the first \(starting\) page of the paper \(book, etc\) "PAGE",) N +(do it for all entries. If you prefer to call it "EGAP" - it's your choice! ) N +() N +(One can use abbreviation in the form of TeX commands, like) N +("\\mml" can mean "Macromol." if we include line "\\def\\mml{Macromol.}") N +(somewhere in the tex-source. To do so see "-a" option: to point to the ) N +(abbreviations file "-a abbr.tex" should be used. Note: Biblio will not check) N +(consistency of your abbreviations!!!) N +() N +(LABEL and TYPE are predefined! Also AUTHOR is predefined. "AUTHOR" without "L", ) N +("R" or anything else at the end. It is predefined in the sense, that entries in ) N +(the database, which start with "AUTHOR" \("AUTHORL", "AUTHORF"\) are considered to) N +(be arrays with separator "|". There are two equivalent ways to represent them ) N +(in the DataBase:) N +(* one is shown above \(with "|" as separator\)) N +(* the "Dobrynin1" entry can be also written in the form) N +(==============) N +(AUTHORL = Dobrynin) N +(AUTHORF = A. ) N +(AUTHORM = V.) N +(AUTHORL = Erukhimovich) N +(AUTHORF = I. ) N +(AUTHORM = Y.) N +(===============) N +(readme.1st) (Page 3/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(The only important issue is the order of this entries: the first AUTHORF belongs) p n +(to the first AUTHORL. In principle you can include anything between them, like:) N +(===============) N +(AUTHORL = Dobrynin) N +(YEAR = 1993) N +(AUTHORF = A. ) N +(AUTHORM = V.) N +(PAGE = 276) N +(AUTHORL = Erukhimovich) N +(AUTHORF = I. ) N +(AUTHORM = Y.) N +(==============) N +(It will produce the same result. ) N +() N +(If there are several entries for the same key \(like YEAR\) which is NOT supposed) N +(to be array \(i.e. does not start with AUTHOR\), then only the last one will ) N +(influence the final result.) N +() N +(The fact that all arrays should start with AUTHOR does not mean that you can ) N +(apply it to the authors' list only. It will become more transparent further.) N +() N +( C. Of course you want some nice output. Your LaTeX document should look like:) N +() N +(====) N +(\\documentstyle[12pt,a4]{article}) N +(\\title{Blah-blah}) N +(\\begin{document}\\maketitle) N +() N +(Text text \\cite{Dobrynin1}.) N +(Text Text text \\cite {Dobrynin1,3dFlex}) N +() N +(\\begin{thebibliography}) N +() N +(\\end{thebibliography}) N +() N +(Something more you need \(list of figures or whatever\)) N +() N +(\\end{document}) N +(====) N +() N +(Note, that NOTHING is between \\begin{thebibliography} and ) N +(\\end{thebibliography}. These two are just signs for Biblio to insert your) N +(references list in between.) N +() N +(What does Biblio do? It reads your TeX-file and finds all references \(which you ) N +(have in \\cite command\) in the database. Then it inserts them according to some ) N +(formats \(see further\) between \\begin{thebibliography} and \\end{thebibliography}.) N +(It can do it in two ways:) N +() N +(FIRST: insert them as "\\bibitem{LABEL} TEXT OF THE REF" and not touching ) N +(anything else \(text of the ref is according to the format, of course\);) N +() N +(SECOND: insert them in some special way, where you can define what \\cite will ) N +(produce and what kind of numbering you want in the references list. For example,) N +(if you like $^{1,5-7}$ more than standard [1,5-7], normally produced by \\cite, ) N +(and) N +(\(1\) ref1) N +(\(2\) ref2) N +(instead of) N +([1] ref1) N +([2] ref2) N +(produced by \\bibitem.) N +(readme.1st) (Page 4/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (2/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (5-6) 3 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +() p n +(\(Hint: your choice between FIRST and SECOND you can do by using "--nobibitem" ) N +(parameter, and "cite_format" and "ref_format" fields in the format file\).) N +() N +(After it's done, you can process output file with normal LaTeX. ) N +() N +(\(Hint: You can find script "libtex" which will help you to handle it.\)) N +() N +( D. All formats are stored in the format file \(see -f command line option\)) N +(or just in your TeX document's header. About rules \(how to write this formats\)) N +(you can read below.) N +() N +() N +( E. So, your checklist is:) N +( 1. Input TeX file.) N +( 2. References database.) N +( 3. Format file) N +() N +(If you have all these you have to do) N +() N +(biblio -o outdoc.tex -d refsdata.db refsdata1.db -f formats.db indoc.tex) N +() N +(where ) N +(- outdoc.tex - output filename ) N +( \(if not given, them "biblio."-prefix is added to "indoc.tex") N +( like "biblio.indoc.tex"\)) N +(- refsdata.db - references database \(may be more than one\)) N +(- formats.db - format file \(only ONE\)) N +(- indoc.tex - input file) N +() N +(The order of the parameters is not important.) N +() N +(-------------------------------------) N +() N +(3. STRUCTURE OF THE BIBLIO-DATABASE) N +() N +(It has form described in 2.B. It consists of records. After each record a ) N +(separator has to be placed. By default, it is "----------\\n". You can easily ) N +(change it by command line option "--separator". Only on separator can be used!) N +() N +(Each record has fields. One line per one field - is a rule! ) N +(You cannot change it \(without looking into the source, of course\)! ) N +() N +(Each field has a structure NAME = VALUE. ) N +() N +(Fields' names LABEL and TYPE are predefined - each record has to have them. ) N +(Otherwise it will be ignored.) N +() N +(Field AUTHOR has a special structure. ) N +(Usage is quite obvious from an example) N +() N +(AUTHORP = | | |ten) N +(AUTHORL = Subbotin|Saariaho|Ikkala|Brinke) N +(AUTHORF = A. |M. |O. |G.) N +(AUTHORM = V. ) N +() N +(There are 4 authors: Subbotin A.V.; Saariaho M.; Ikkala O. and ten Brinke G.) N +() N +(P, L, F and M are from "prefix", "last", "first", "middle".) N +() N +(Sign "|" separates authors. It is reserved and cannot be changed!) N +() N +(readme.1st) (Page 5/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(You can use as many fields as you like. If you don't use them in the ) p n +(output - no problem, part of them will be ignored.) N +() N +(You can have several databases. Use inline option "-d" to say Biblio names) N +(of databases you want to use.) N +() N +(That's all!) N +() N +(-------------------------------------) N +() N +(4. STRUCTURE OF THE FORMAT FILE \(FORMAT STRING\)) N +() N +(Your output \(formated entries from database put into the TeX document\) has to ) N +(be formated according to the rules described in the so called format file \(or ) N +(templates\) or just in the beginning of your TeX document. ) N +(The first way is preferable - it gives taste of more structural ordering.) N +(Use option "-f" to point to a format file. Otherwise Biblio will try to find ) N +(formats in the TeX-file and, if not succeeded, will complain and halt.) N +() N +(What we want to format?) N +(1. References list \(what you normally have at the end of your paper\)) N +(2. Citations in the text \(what you do with \\cite\)) N +() N +(Before reading this, read 2.C from "General Ideas" section.) N +() N +(How to write formats? That's the hardest part!) N +() N +(Let's start from an) N +(EXAMPLE:) N +(-------------------) N +(% this is template for Macromolecules) N +(% no ordering of the references is needed. Otherwise add line) N +(% '%ordering= AUTHORL' - ordering with key field 'AUTHORL') N +() N +(%begin{biblio}) N +() N +(%cite_format={\(%s\)}) N +(%ref_format=${^{%s}}$) N +() N +(%% normal article:) N +(% ARTICLE [$AUTHOR0P~L,~F~M; $ {\\it $JOURNAL$} {\\bf $YEAR$}, {\\it $VOL$}, $PAGE) N +($.]) N +() N +(%% article which is submitted or accepted) N +(% ARTICLE0[$AUTHOR0P~L,~F~M; $ {\\it $JOURNAL$} $STATE$.]) N +() N +(%% normal book) N +(% BOOK [$AUTHOR0P~L,~F~M; $ {\\it $TITLE$}; $PUBL$: $PLACE$, $YEAR$.]) N +() N +(%% article in a book AUTHORE, AUTHORG and AUTHORH - last, first ) N +(%% and middle names of the editor ) N +(% EDBOOK [$AUTHOR0P~L,~F~M; $ in {\\it $BOOKTITLE$}, edited by $AUTHOR0I~E,~G~H;) N +($; $PUBL$: $PLACE$, $YEAR$.]) N +() N +(%% article in a book without editor) N +(% INBOOK [$AUTHOR0P~L,~F~M; $ in {\\it $BOOKTITLE$}, p.$PAGE$ $PUBL$: $PLACE$, $) N +(YEAR$.]) N +() N +(% EPRINT [$AUTHOR0P~L,~F~M; $ in {\\it $BOOKTITLE$} $INFO$, $YEAR$.]) N +() N +(%end{biblio}) N +(-------------------) N +(readme.1st) (Page 6/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (3/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (7-8) 4 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(4.0. Syntax) p n +() N +( A. Each line starts with %-sign. This is needed because in principle this can ) N +( be included into your TeX-document, so it has to be considered as a comment) N +( by LaTeX. Lines, starting with %% are "REAL" comments \(i.e. they are ) N +( comments for Biblio too\).) N +() N +( B. All this information has to be stored either in a template file \(format ) N +( file\) [use option -f filename] or just in the header of your TeX document.) N +( In both cases it has to start with '%begin{biblio}' line and end with ) N +( '%end{biblio}'.) N +( Only one template file is allowed \(you cannot read from 2 for the) N +( same document\).) N +() N +( C. There are some OPTIONAL reserved keys. If omitted, default values are ) N +( assumed and warning is printed.) N +( Reserved keys are) N +( C.1. cite_format: has a form %cite_format={\(%s\)}) N +( %s just means "string". {\(%s\)} will produce output in your) N +( references list like) N +( ) N +( \(1\) Simpson,....) N +( \(2\) Tompson...) N +( ...) N +() N +( or %cite_format={%s.} will produce) N +() N +( 1. Simpson,....) N +( 2. Tompson...) N +( ...) N +() N +() N +( C.2. ref_format: has a form %ref_format=${^{%s}}$) N +( This means how your \\cite command output will look like.) N +( For example, we have \\cite{Aw1,Paper3,John} in the TeX document and ) N +( %ref_format=${^{%s}}$ in your format file. Then you get) N +() N +( ${^{2,4,5}}$ \(numbers depend on what is ordering, of) N +( course\)) N +( or) N +( ${^{2-4}}$ if they all are going one by one in your refslist.) N +() N +( in the output TeX file instead of your \\cite command.) N +( If you have %ref_format={[%s]} then) N +() N +( {[2,4,5]}) N +( or) N +( {[2-4]}) N +( ) N +( C.3. ordering: has a form %ordering= AUTHORL) N +( This means that the field AUTHORL has to be considered as a key field) N +( in ordering of your references. You can put whatever you want there, ) N +( like YEAR, VOL,...) N +( If this filed is not present in some entries, it considered to be ) N +( empty. ) N +() N +( D. Each TYPE \(TYPE is article, book or something like this\) has to have an ) N +( entry in the format file. This entry \(format string\) has a form) N +( ) N +( % TYPE [format string] ) N +() N +( \(it MUST be in ONE line!!!\)) N +(readme.1st) (Page 7/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +( where the "format string" says to Biblio how to output information about ) p n +( your reference of the type TYPE.) N +( "[" and "]" MUST be there! They say where you start your format line and ) N +( where it ends \(if you need to use inside the format line, don't worry: ) N +( the first [ is the start and the last ] is the end of the string; ) N +( all the rest are just characters\). ) N +( Everything between $-signs is a filed name. $VOL$ will be substituted by ) N +( 54 if you have an entry ) N +( VOL = 54 ) N +( for this given article in your database. ) N +( It's a bit more tricky for AUTHOR \(see below\). ) N +( All the other words are just normal text or LaTeX commands. ) N +( Example:) N +() N +( Let say, you have the following item in your database file) N +() N +( LABEL = LifshitzGrosbergKhokhlov1) N +( TYPE = article) N +( AUTHORL = Lifshitz|Grosberg|Khokhlov) N +( AUTHORF = I. |A. |A.) N +( AUTHORM = M. |Yu. |R.) N +( JOURNAL = Rev. Mod. Phys.) N +( VOL = 50) N +( PAGE = 683) N +( EPAGE = 713) N +( YEAR = 1978) N +( TITLE = Some problems of the statistical physics of...) N +() N +( and an entry ) N +( ) N +( % ARTICLE [$AUTHOR0P~L,~F~M; $ {\\it $JOURNAL$} {\\bf $YEAR$}, {\\it $VOL$}, ) N +($PAGE$.]) N +( ) N +( in your format file \(I assume also '%cite_format={\(%s\)}'\).) N +( Then output will be) N +() N +( \(1\) ~Lifshitz,~I.~M.; ~Grosberg,~A.~Yu.; ~Khokhlov,~A.~R. ) N +( {\\it {Rev. Mod. Phys.}} {\\bf {1978}}, {\\it {50}}, {683}.) N +( ) N +() N +(4.1. AUTHOR-word:) N +() N +( A. Word AUTHOR is reserved and assumed to be an array. ) N +( This means, that AUTHORLFM is in fact) N +( hash index with keys AUTHORL, AUTHORF, AUTHORM, ) N +( or, if you like) N +( AUTHOR[L]='Smith') N +( AUTHOR[F]='J.') N +( AUTHOR[M]='A.') N +() N +( B. After the word AUTHOR follows the max number of authors to show ) N +( \(let us call it max_A\). ) N +( If actual number of authors n_A > max_A, ) N +( then "$reservedET_AL" will be written after the ) N +( author number max_A and names of all the others will be omitted. ) N +( "max_A==0" \(zero\) means "max_A==infty") N +( C. $AUTHOR0L, F; $ means that fields should be written as follows:) N +( 1\) "AUTHORL") N +( 2\) ", ") N +( 3\) "AUTHORF") N +( 4\) "; " \(let us denote it as "last_sep"\)) N +( 5\) go to "1\)" for the next author) N +(readme.1st) (Page 8/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (4/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (9-10) 5 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +() p n +() N +( For example, for the Lifshitz' article above:) N +() N +( $AUTHOR0L, F, M; $ produces) N +( Lifshitz, I. M.; Grosberg, A. Yu.; Khokhlov, A. R.) N +() N +( or) N +() N +( $AUTHOR1L, F; $ produces) N +( Lifshitz, I. et al) N +( ) N +( Note, there is no the middle name in the 2nd example, because there is ) N +( no "M" in the format line.) N +() N +( D. There is a special sign "|" which means that AUTHOR format line is ended ) N +( in fact and everything after it is so called "and_word". ) N +( This "and_word" \(normally, it contains only "and"\) is something what is ) N +( written before the last author if the number of authors in larger than 1. ) N +() N +( Example:) N +( $AUTHOR0L, F, M; |and$ produces) N +( Lifshitz, I. M.; Grosberg, A. Yu.; and Khokhlov, A. R.) N +( ) N +() N +( Note, that) N +( 1\) if "et al" have to be printed, "and_word" will not be there!) N +() N +( $AUTHOR2L, F; |and$ produces) N +( Lifshitz, I.; Grosberg, A. Yu. et al) N +() N +( 2\) if number of authors is larger than 2 but less or equal to max_A: ) N +( before the "end_word" the "last_sep" has to be written) N +( otherwise - if only 2 authors: print "and_word", but no "last_sep") N +() N +( Example: Q.W. Rom and R.T. Lai) N +( but Q.W. Rom, T.G. Doi, and R.T. Lai ) N +( here: last_sep="," ; and_word="and"\)) N +() N +( This example corresponds to ) N +( $AUTHOR0FM L, |and$) N +() N +() N +(4.2. Fields LABEL, TYPE and AUTHOR are predefined. All the others can be named ) N +( by you. The only condition is: your fields in the database and in the formats) N +( have to coincide. If some field is present in the format string but there ) N +( is no value of it in the database, sign $reservedEMPTY_FIELD_SIGN will be ) N +( printed out instead \(see command line parameter --empty_field_sign\);) N +( by default $reservedEMPTY_FIELD_SIGN == '???'.) N +( My suggestion is: use YEAR, VOL, PAGE, etc. for the year, volume and page and) N +( don't name page as RTY45 - this is mush less readable.) N +() N +(-------------------------------------) N +() N +(5. RUNNING BIBLIO) N +() N +(So, now you have references database and format file. It is time to talk about) N +(command line parameters. Here they are:) N +() N +( ESSENTIAL PARAMETERS) N +() N +(+ -o output.file => $OUT_TEX ; ) N +(readme.1st) (Page 9/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +( if no given, assuming $OUT_TEX = "biblio.$TEX_NAME") p n +(+ -f format.file => $FORMAT_NAME ) N +( \(can introduce templates for Macromolecules, ) N +( etc. If given, "in-tex" parameters will be) N +( ignored!!!\)) N +() N +(+ -d dbase.file => @REFS_FILES \(where all info about refs is!\)) N +( accepts many arguments) N +() N +(+ -a abbrev.file => file of abbreviations \(tex file\)) N +( if given, will be inserted just BEFORE) N +( "\\begin{references}" in the output.file.) N +( Consists of anything you want, but the idea is) N +( to use it like "\\def\\mml{Macromol.}") N +( and have entry) N +( JOURNAL = \\mml) N +( instead of) N +( JOURNAL = Macromol.) N +( in the dbase.file.) N +() N +(+ -v <number> => verbosity level \(0-5\) $verbosity_level) N +() N +(+ -h or --help => short help information ) N +() N +(+ --nobibitem => $optionsKEEP_BIBITEM_AND_CITE=0. Default is 1!!!) N +( \(read 2.C too\)) N +( If not given, Biblio will insert all references ) N +(\(formated, of course\) into the out-TeX document, and that's it! You will ) N +(have \\cite-commands as you had them before. List of references will be ) N +(produced by LaTeX itself \(with \\bibitem\). ) N +(If given \(but NO --uselist\), it will print your references as a simple text,) N +(flushed left. ) N +() N +() N +(+ --uselist => $optionsREFS_AS_TEX_LIST=1 Default is 0!!! ) N +( Will output the references list as a TeX list) N +(with counter. Looks much better than \\flushleft \(try it!\)) N +() N +( ) N +(\(if no --nobibitem nor --uselist is given it is assumed to use \\bibitem) N +( if --nobibitem is given, it will use \\flushleft) N +( if --nobibitem AND --uselist are given it will use \\list) N +(\)) N +() N +() N +( ADDITIONAL PARAMETERS) N +() N +( key variable in the source,default value) N +( and some info) N +() N +(+ --etal "{\\it{et al}}" => form of "et al"-string in $reservedET_AL) N +( \(see 4.1.C\)) N +(+ --separator "----------\\n" => separator in the database-file) N +() N +(+ --not_insert_empty_field_sign => $optionsINSERT_EMPTY_FIELDS_SIGN=0) N +( If some field is present in the format ) N +(string for the given TYPE, but is not in the database, Biblio will ) N +(insert some sign instead \(see --empty_field_sign\). ) N +() N +(+ --empty_field_sign xxx => $reservedEMTY_FIELD_SIGN = '???') N +( \(see --not_insert_empty_field_sign\)) N +() N +(readme.1st) (Page 10/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (5/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (11-12) 6 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(+ --start_refs => @STARTREFS= ) p n +( accepts many arguments \('begin{references}','begin{thebibliography}'\);) N +( Tells where Biblio has to start inserting ) N +( the references list.) N +() N +(+ --end_refs => my @ENDREFS= ....) N +( accepts many arguments) N +() N +(? --bibitem_string => my $BIBITEM = '%'."\\n".'\\bibitem{'; ) N +( ) N +(+ --version => version info) N +() N +(+ --movepoint => added in ver1.1) N +( make "word.\\cite{} Another sent") N +( from "word \\cite{}. Another sent") N +( Everything in the variable $what_we_call_point='.,;:' is considered ) N +( to be a "point".) N +( This way of making citations is required by some journals ) N +( \(for instance, Macromolecules\) which have citation in the form) N +( "in recent works$^1-5$") N +( There point \(or comma,...\) has to be placed BEFORE citation, like) N +( 'works.$^{1-5}$' but NOT 'works$^{1-5}$.') N +( NOTE: this will work only for point IN THE SAME LINE, like) N +( 'was show recently \\cite{q2,lab4,yt6}. Therefore') N +( but NOT for) N +( 'was show recently \\cite{q2,lab4,yt6}) N +( . Therefore' ) N +( ) N +(\(not everything is accomplished. So, ?-sign means, that in your version ) N +(this parameter might be still not working\)) N +() N +(-------------------------------------) N +() N +(6. EXAMPLES) N +() N +( A. I have a couple of format files \(in the directory called "formats"\) ) N +(and a database. First, about the structure, I decided to follow. \(It does ) N +(NOT mean you have to do it in the same way!\)) N +() N +(Types I use are) N +() N +(ARTICLE just regular article) N +(ARTICLE0 submitted or accepted article) N +() N +(BOOK regular book) N +(EDBOOK article in a book \(with an editor!\)) N +(INBOOK article in a book without editor) N +() N +(EPRINT electronic preprint) N +() N +(Some examples of format files you can find in the "formats" directory.) N +() N +(Example of a database is called "refers.db".) N +() N +( ) N +( B. Document "EXAMPLES/2sorts/2sorts.tex" is an introduction ) N +(to one of my articles. You can use it as an example. ) N +(It needs templates which are in the "formats" dir. ) N +(Just type "./libtex" and that's it!) N +() N +( C. Document "EXAMPLES/2sorts/2sorts_formats.tex" is ) N +(the same as in B., but all formats are included into the header ) N +(readme.1st) (Page 11/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(of the document. Read this header to find out how to compile it.) p n +() N +( D. Document "EXAMPLES/hairy/hairy.tex" shows how to use abbreviations.) N +() N +(-------------------------------------) N +() N +(7. ADDITIONAL SCRIPTS) N +() N +(You can find some more scripts in the top directory.) N +() N +( A. libtex ) N +( is a useful script for processing TeX documents on the ) N +( stage of their development. It can be easily adjusted ) N +( \(open it in any text editor and change parameters\). The idea is ) N +( to keep its copy at the same directory where your document \(tex file\)) N +( is situated.) N +( Then instead of running LaTeX itself you have to run "libtex" as) N +( libtex filename) N +( \("filename" WITHOUT tex extension!!! For 2sorts.tex it is "2sorts"\)) N +() N +( JOURNAL - name of the template) N +( PREFIX - Biblio's home directory \(where in the "formats" directory all) N +( formats are stored\)) N +() N +( B. biblist_html ) N +( Makes an HTML formated list from your references database. I use \(as you ) N +( could see in refers.db\) field URL for articles, which I have ) N +( electronically. This script will run "biblist.pl" \(see below\) with --html ) N +( key. This will produce nice html output with hyperlinks to your e-library) N +( \(it will put prefix "--prefix" for all hyperlinks except starting already) N +( with "http:" \)) N +( Of course, you can use "--prefix /home/usrname/base/" if you want to make) N +( all refs local.) N +() N +( C. biblist) N +( The same as the previous one but output in TeX format. Uses biblist.pl) N +( without --html key.) N +() N +( D. biblist.pl) N +( Makes a list of references from the whole database file. Can output in ) N +( TeX file or HTML. Has switches: almost all, which biblio has plus --html.) N +( Does not have --uselist \(it is always on\), --start_refs, --end_refs.) N +( And, of course, it does not need an input TeX file! Therefore you) N +( always have to provide format file.) N +( If --html is not given, produces TeX file.) N +( HTML output needs special formats, of course. Example is in) N +( EXAMPLES/formats/formats_html.biblist) N +( ) N +( Example of a format file for TeX output is in) N +( EXAMPLES/formats/formats.biblist ) N +() N +( E. bibcheck.pl \(added 17 Sep 2001\)) N +( Checks your database \(one ore more files containing references\).) N +( Complains if it has:) N +( - records with empty LABEL or TYPE) N +( - several records with the same LABEL) N +( Has specific parameter "--noexit" which means "do not exit if ) N +( found a record without a label, just go on". By default it will) N +( halt in this case.) N +( Parameter -e \(or --errors\) says "after how many errors exit the program") N +( \(default is 5\)) N +( For instance:) N +(readme.1st) (Page 12/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (6/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (13-14) 7 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +( bibcheck.pl -e 10 -d myrefers.db onemorerefs.db) p n +( or) N +( bibcheck.pl --errors 10 -d myrefers.db onemorerefs.db ) N +( will process files "myrefers.db" and "onemorerefs.db" but exit if at ) N +( some point number of errors will exceed 10.) N +( ) N +( ) N +(That's all for the moment.) N +( ) N +(------------------------------------- ) N +() N +(8. INSTALLATION GUIDE and SHORT INSTRUCTIONS) N +() N +(I decided to put this section at the very end because now, I hope, you know what) N +(you are installing. ) N +() N +(After unpacking the archive you have:) N +() N +( * biblio.pl - the main "executable") N +( * dir formats - format files \(template\) and) N +( abbreviations file "abbr.tex". Ready for use. ) N +( * biblist.pl; biblist.pl; biblist_html; bibcheck.pl ) N +( - some additional scripts \(see section 7\).) N +( * dir EXAMPLES - examples \(see section 6\).) N +( ) N +(and bash script "install" to help you to install.) N +() N +(1. Edit script "install" First two lines have to point to) N +( * PREFIX to the directory, where you want to install biblio ) N +( \(formats, examples, etc.\). It must NOT exist yet.) N +() N +( * BINDIR to the binaries directory, where it will put links to biblio and ) N +( biblist) N +() N +( Edit biblio.pl and ADDSCRIPTS/biblist.pl: in the first line it should be) N +( a full path to your Perl!!!) N +() N +(2. Run "./install". Then change dir to your PREFIX dir and check, that biblio.pl) N +( and everything in the ADDSCRIPT directory is executable. If not, do) N +() N +( chmod a+x name_of_the_file) N +() N +() N +(3. If installation script failed, you can do it yourself. ) N +( Just create a directory for biblio.) N +( Copy there everything you found in the current directory \(see above\).) N +( Then) N +() N +( ln -s biblio biblio.pl) N +() N +( Chenge dir to your normal binaries dir and do) N +() N +( ln -s biblio PREFIX/biblio) N +( ln -s biblist.pl PREFIX/ADDSCRIPT/biblist.pl) N +() N +( where PREFIX has to be a real path \(like /usr/local/biblio\)) N +() N +( Be sure about file permissions \(everybody, or at least you, has to be) N +( able to execute!\).) N +() N +(That's all. Now you have commands "biblio" and "biblist") N +() N +(readme.1st) (Page 13/15) (Mar 12, 02 12:27) title +border +/v 1 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +(About usage of additional scripts. What I normally do is like this:) p n +() N +(1. Copy libtex from ADDSCRIPTS to the directory where my current TeX document) N +(is. ) N +() N +(2. Edit it ) N +( ) N +( * JOURNAL is the name of the template) N +( * PREFIX is the place where you keep biblio \(and all its stuff\) ) N +( * REFS is your references database) N +( * FORMATS is a place where you keep format files \(templates\)) N +( * PROJECT is a name of your TeX file WITHOUT extension. ) N +( Normally you do for file myarticle.tex) N +( libtex myarticle) N +( and myarticle goes to PROJECT variable.) N +( But you can just put it like) N +( PROJECT=myarticle) N +( in the text of libtex and then type ) N +( libtex) N +( only to compile your TeX document.) N +( ) N +(3. After running libtex \(if everything goes right\) you will have) N +( a file named "myarticle.dvi" and "myarticle.1.tex" and some more, which are) N +( not important.) N +() N +(Working version of libtex \(it works even without any installation\) is in the ) N +(EXAMPLES dir. Try it.) N +(-----) N +() N +(About biblist - it produces a full references list from all the entries you have) N +(in your database. Copy it somewhere and edit:) N +(REFSTEX is the output file;) N +(FORMATS is the format file. You can edit it, if you like.) N +() N +(Run biblist and you get references.tex file, and references.dvi file.) N +(-----) N +() N +(About biblist_html - does the same what biblist does, but outputs in HTML.) N +(About --prefix option you can read in 7.B and 7.C. Formats, of course, are ) N +(different from what you use for TeX output. I provide formats_html.biblist file) N +(\(find it in the "formats" directory\) - you can easily edit it.) N +() N +(------------------------------------- ) N +() N +(9. PERL TO C) N +() N +(If everything went OK and you are going to use biblio, I have an idea about ) N +(speeding it up. You can use "perlcc" to make a real binary from Perl's script.) N +(Sometimes it is a good idea, sometimes not. What I found: binary of biblio ) N +(is 50% \(yeah, yeah - 50!\) faster than Perl-script. So it is worthy of trying!) N +(Do:) N +() N +( perlcc -o biblio.exe biblio.pl) N +() N +(and you will get biblio.exe executable \(it will take some time - translation to ) N +(C and then compilation\).) N +() N +(If you succeeded, make a link called "biblio" to biblio.exe \(at the same ) N +(directory, where you have biblio.pl; so, you have to erase an old link biblio ) N +(pointing to biblio.pl\).) N +() N +(All the rest is the same.) N +(readme.1st) (Page 14/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (7/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage +%%Page: (15) 8 +%%BeginPageSetup +/pagesave save def +sh 0 translate 90 rotate +%%EndPageSetup +iso1dict begin +gsave +llx lly 12 add translate +/v 0 store +/x0 x v get 3.362408 add sx cw mul add store +/y0 y v get bfs th add sub store +x0 y0 moveto +() p n +(If you are interested in C sources, try ) N +() N +( perlcc -sav -o biblio.exe biblio.pl) N +() N +(It will save sources for you! Just great! Althoug I don't think, this C-source ) N +(is really readable! :\)) N +() N +(------------------------------------- ) N +() N +(10. TO DO) N +() N +(A lot of things are very raw. Only a couple of people tried it and I cannot say) N +(it was sufficiently tested. So if you discover any bug or have any suggestion ) N +(write directly to me \(rstepanyan@yahoo.com\).) N +() N +(This script now supports only very primitive way of citation: each citation) N +(is numbered and this number is its identifier. So, citation in the form ) N +("Smith\(1990a\)" are impossible. That is, probably, the first thing to do) N +(\(This kind of citations is used in Rev. of Modern Physics, for instance\).) N +() N +(I do not have too much time right now, but I am constantly thinking about it. ) N +() N +(------------------------------------- ) N +() N +(11. Known Bugs) N +() N +(11.A. Lost Lines \(for ver.1.2 only\)) N +( ) N +(From ver.1.2 there is no points and commas at the beginning of the line.) N +(Like in the piece of text) N +() N +( Was shown in work) N +( \\cite{lab2}. Blah-Blah-Blah) N +() N +(if we use --movepoint option we get) N +() N +( Was shown in work) N +( .\\cite{lab2} Blah-Blah-Blah) N +( ) N +(\(and ver.1.1 really did it this way\).) N +(But it should be \(and from ver.1.2 it IS\)) N +() N +( Was shown in work.\\cite{lab2} Blah-Blah-Blah) N +() N +(That is exactly what is fixed now. Although it adds a new bug: if you have) N +() N +( Was shown in work) N +( % Blah-Blah-Blah) N +( \\cite{lab2}. Blah-Blah-Blah#) N +() N +(then one line is LOST!!!! \(Guess why!\)) N +() N +(-------------------------------------) N +(Oh, now it is really the EOF!) S +(readme.1st) (Page 15/15) (Mar 12, 02 12:27) title +border +grestore +(Printed by ) rhead +(readme.1st) (8/8) (Tuesday March 12, 2002) footer +end % of iso1dict +pagesave restore +showpage + +%%Trailer +end +%%EOF |