├── README.md ├── dark_background_example_plot.py ├── AAS237KEY.csv ├── AAS238.csv ├── AAS237.csv └── aa_url_dm.bst /README.md: -------------------------------------------------------------------------------- 1 | # AASTeX-darkmode 2 | A modified class file for creating dark mode manuscripts in all your favorite AAS journal styles. The repository also includes some other stuff used in drafting an arXiv paper detailing dark mode papers. 3 | 4 | Please note that I do not own the license to the actual AASTeX class file, and I am not affiliated with its upkeep in any way. `aastex631dm.cls` is a modified version of this class file, last modified Mar. 29, 2022, which contains details of the modifications made to the actual class file. A copy of the original AASTeX class file is included in this repository and can also be found at https://journals.aas.org/aastex-package-for-manuscript-preparation/. Any official dark mode class file would need to be distributed through the journals that chose to add dark mode. 5 | 6 | `aa_url_dm.bst` is a modified version of a modified `aa.bst` which can be found at https://github.com/yangcht/AA-bibstyle-with-hyperlink, and the modified `aa.bst` is a modified version of the real `aa.bst` which can be found at http://ftp.edpsciences.org/pub/aa/readme.html. 7 | -------------------------------------------------------------------------------- /dark_background_example_plot.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | import matplotlib.pyplot as plt 3 | 4 | def make_some_data_i_believe(x, a, f, po): 5 | return a*np.sin(2 * np.pi * x * f + po) 6 | 7 | x = np.linspace(0, 2, 1000) 8 | 9 | plt.style.use('dark_background') 10 | 11 | fig, ax = plt.subplots() 12 | 13 | ax.plot(x, make_some_data_i_believe(x, 0.3, 1, 0)) 14 | ax.plot(x, make_some_data_i_believe(x, 0.2, 2, np.pi/2), linestyle='--') 15 | ax.plot(x, make_some_data_i_believe(x, 0.15, 3, 0), linestyle=':') 16 | ax.plot(x, make_some_data_i_believe(x, 0.1, 4, np.pi/2), linestyle='-.') 17 | 18 | ax.minorticks_on() 19 | ax.xaxis.set_ticks_position('both') 20 | ax.yaxis.set_ticks_position('both') 21 | ax.tick_params(axis='x',which='major',direction='in',length=5,labelsize=10) 22 | ax.tick_params(axis='y',which='major',direction='in',length=5,labelsize=10) 23 | ax.tick_params(axis='x',which='minor',direction='in',length=3,labelsize=10) 24 | ax.tick_params(axis='y',which='minor',direction='in',length=3,labelsize=10) 25 | 26 | plt.savefig('plot_example.pdf', transparent=True, bbox_inches='tight', dpi=300) 27 | -------------------------------------------------------------------------------- /AAS237KEY.csv: -------------------------------------------------------------------------------- 1 | 1,The Sun 2 | 2,The Solar System 3 | 3,Extrasolar Planets: Direct Imaging 4 | 55,Extrasolar Planets: Detection 5 | 4,Extrasolar Planets: Radial Velocities 6 | 5,Extrasolar Planets: Transits 7 | 6,Extrasolar Planets: Atmospheres 8 | 7,Extrasolar Planets: Formation of Planets and Protoplanetary Disks 9 | 8,Extrasolar Planets: Populations 10 | 9,"Stars, Cool Dwarfs, Brown Dwarfs" 11 | 10,"Stellar Evolution, Stellar Populations" 12 | 11,"Stellar Atmospheres, Winds" 13 | 12,Circumstellar Disks 14 | 13,Binary Stellar Systems 15 | 14,Pulsating Variable Stars 16 | 15,White Dwarfs 17 | 16,"Neutron Stars (Pulsars, Magnetars, Pulsar Wind Nebulae)" 18 | 17,Black Holes 19 | 18,"Cataclysmic Variables, Novae and Symbiotic Stars" 20 | 19,Supernovae 21 | 20,"Planetary Nebulae, Supernova Remnants" 22 | 21,"Molecular Clouds, HII Regions, Interstellar Medium" 23 | 22,Dust 24 | 23,Star Formation 25 | 24,"Young Stellar Objects, Very Young Stars, T-Tauri Stars, H-H Objects" 26 | 25,"Star Associations, Star Clusters: Galactic & Extra-galactic" 27 | 26,"The Milky Way, The Galactic Center" 28 | 27,Dwarf and Irregular Galaxies 29 | 28,Elliptical Galaxies 30 | 29,Spiral Galaxies 31 | 30,Starburst Galaxies 32 | 31,AGN and Quasars 33 | 32,Evolution of Galaxies 34 | 33,Galaxy Clusters 35 | 34,"Large Scale Structure, Cosmic Distance Scale" 36 | 39,"Relativistic Astrophysics, Gravitational Lenses & Waves" 37 | 35,"Intergalactic Medium, QSO Absorption Line Systems" 38 | 36,Cosmology 39 | 38,Dark Matter & Dark Energy 40 | 42,Gamma Ray Bursts 41 | 37,Cosmic Microwave Background 42 | 40,Strong and Weak Gravitational Lensing 43 | 41,Gravitational Waves and Multi-messenger Astronomy 44 | 43,Instrumentation: Space Missions 45 | 44,Instrumentation: Ground Based or Airborne 46 | 45,Catalogs 47 | 46,Surveys and Large Programs 48 | 47,"Computation, Data Handling, Image Analysis" 49 | 48,Astrobiology 50 | 49,Public Policy 51 | 50,"Observatory Site Protection, Light Pollution, Radio Interference, and Space Debris" 52 | 51,Education 53 | 52,History 54 | 53,Laboratory Astrophysics 55 | 54,Other 56 | 100,Public Outreach 57 | 101,Education Research 58 | 102,General Topics: Molecules 59 | 103,General Topics: Plasma 60 | 104,General Topics: Atoms 61 | 105,General Topics: Nuclear 62 | 106,General Topics: Dust & Ice 63 | 108,Practice Undergraduate Non-science Majors 64 | 107,General Topics: Particles 65 | 109,Practice Upper Level Undergraduate and Graduate 66 | 121,Variable Stars 67 | 200,Division Meeting Topics: Fundamental nuclear and atomic data for compact objects 68 | 300,SPD: Data and Computational Methods 69 | 301,SPD: Photosphere/Chromosphere 70 | 302,SPD: Magnetic Fields 71 | 303,SPD: Helioseismology and Solar Interior 72 | 304,SPD: Corona 73 | 305,SPD: Eruptions 74 | 306,SPD: Flares 75 | 307,SPD: Solar-stellar Connection 76 | 308,SPD: PSP Science 77 | 309,SPD: Instrumentation 78 | 310,SPD: DKIST Science 79 | 311,SPD: Solar Orbiter Science 80 | 312,SPD: Sun-to-Heliosphere Connections -------------------------------------------------------------------------------- /AAS238.csv: -------------------------------------------------------------------------------- 1 | theme,topic_num 2 | mlm,1 3 | x,1 4 | x,1 5 | x,1 6 | x,1 7 | x,1 8 | mlm,1 9 | x,1 10 | x,1 11 | x,1 12 | lm,1 13 | x,1 14 | x,1 15 | x,1 16 | x,2 17 | x,2 18 | x,2 19 | dm,55 20 | mlm,4 21 | mlm,5 22 | x,5 23 | x,7 24 | x,7 25 | mlm,7 26 | dm,8 27 | mlm,9 28 | mlm,9 29 | mlm,9 30 | x,9 31 | mlm,9 32 | mdm,9 33 | x,10 34 | x,10 35 | dm,10 36 | x,12 37 | x,12 38 | x,12 39 | x,12 40 | mlm,12 41 | mlm,13 42 | x,13 43 | mlm,13 44 | mlm,13 45 | dm,13 46 | dm,13 47 | x,13 48 | mlm,13 49 | lm,13 50 | lm,13 51 | mlm,13 52 | x,13 53 | mlm,13 54 | x,13 55 | x,14 56 | x,14 57 | dm,14 58 | x,14 59 | x,16 60 | lm,16 61 | mlm,18 62 | mlm,18 63 | mlm,19 64 | lm,20 65 | x,20 66 | x,20 67 | mlm,20 68 | lm,21 69 | mlm,21 70 | x,21 71 | x,21 72 | mlm,21 73 | x,21 74 | dm,21 75 | dm,22 76 | lm,22 77 | dm,22 78 | mlm,22 79 | x,22 80 | x,23 81 | lm,23 82 | x,24 83 | x,24 84 | dm,24 85 | x,25 86 | x,25 87 | dm,26 88 | dm,26 89 | dm,26 90 | x,26 91 | lm,26 92 | x,26 93 | mdm,27 94 | dm,27 95 | mlm,27 96 | x,29 97 | mlm,30 98 | mlm,30 99 | x,31 100 | x,31 101 | x,31 102 | x,31 103 | lm,32 104 | mlm,32 105 | lm,32 106 | lm,32 107 | x,32 108 | x,34 109 | lm,39 110 | mlm,35 111 | dm,35 112 | lm,35 113 | mlm,35 114 | x,36 115 | x,36 116 | dm,36 117 | lm,36 118 | dm,36 119 | dm,36 120 | x,42 121 | mdm,37 122 | x,41 123 | x,41 124 | dm,43 125 | dm,43 126 | dm,43 127 | x,43 128 | mlm,43 129 | mlm,43 130 | x,43 131 | mdm,44 132 | dm,44 133 | mlm,44 134 | x,44 135 | lm,45 136 | dm,45 137 | x,46 138 | mlm,46 139 | x,47 140 | x,47 141 | mlm,47 142 | lm,47 143 | mlm,47 144 | dm,47 145 | x,47 146 | x,47 147 | x,50 148 | dm,53 149 | mlm,53 150 | dm,53 151 | x,53 152 | x,53 153 | x,100 154 | x,100 155 | x,100 156 | mlm,100 157 | dm,101 158 | mdm,101 159 | x,102 160 | x,102 161 | x,102 162 | lm,103 163 | lm,103 164 | x,103 165 | x,103 166 | mlm,104 167 | x,104 168 | lm,105 169 | mlm,106 170 | x,107 171 | x,121 172 | x,200 173 | dm,200 174 | x,300 175 | x,300 176 | x,301 177 | dm,301 178 | lm,301 179 | x,301 180 | mlm,301 181 | lm,301 182 | x,301 183 | mlm,301 184 | lm,301 185 | mlm,301 186 | x,301 187 | x,301 188 | x,301 189 | x,301 190 | x,302 191 | mlm,302 192 | x,302 193 | x,302 194 | x,302 195 | x,302 196 | mlm,302 197 | x,302 198 | x,303 199 | x,303 200 | x,303 201 | x,303 202 | lm,303 203 | x,303 204 | mdm,303 205 | lm,304 206 | mlm,304 207 | x,304 208 | lm,304 209 | lm,304 210 | lm,304 211 | dm,304 212 | x,304 213 | x,304 214 | x,304 215 | x,304 216 | x,304 217 | x,304 218 | lm,304 219 | x,304 220 | x,304 221 | lm,304 222 | x,304 223 | x,304 224 | mlm,304 225 | x,305 226 | x,305 227 | x,305 228 | mlm,305 229 | dm,305 230 | lm,305 231 | dm,305 232 | mlm,306 233 | x,306 234 | x,306 235 | x,306 236 | lm,306 237 | x,306 238 | mlm,306 239 | mlm,306 240 | x,306 241 | x,306 242 | x,306 243 | x,307 244 | x,307 245 | x,308 246 | x,308 247 | lm,309 248 | x,309 249 | dm,309 250 | mlm,309 251 | lm,310 252 | dm,310 253 | mlm,310 254 | x,311 255 | dm,312 -------------------------------------------------------------------------------- /AAS237.csv: -------------------------------------------------------------------------------- 1 | theme,topic_num 2 | dm,1 3 | x,1 4 | x,2 5 | x,2 6 | mlm,2 7 | mlm,2 8 | x,2 9 | x,2 10 | mlm,2 11 | x,2 12 | dm,3 13 | dm,3 14 | dm,3 15 | x,3 16 | mdm,3 17 | dm,3 18 | dm,4 19 | mlm,4 20 | dm,4 21 | dm,4 22 | mlm,4 23 | mlm,5 24 | x,5 25 | lm,5 26 | x,5 27 | x,5 28 | x,5 29 | x,5 30 | lm,5 31 | mdm,5 32 | lm,5 33 | dm,5 34 | x,5 35 | dm,5 36 | mlm,5 37 | x,6 38 | mlm,6 39 | dm,6 40 | x,6 41 | lm,6 42 | lm,6 43 | lm,6 44 | mlm,6 45 | dm,6 46 | dm,7 47 | x,7 48 | x,7 49 | mlm,7 50 | x,7 51 | mlm,7 52 | mlm,7 53 | lm,7 54 | x,7 55 | mlm,7 56 | x,8 57 | dm,8 58 | x,8 59 | mlm,9 60 | x,9 61 | x,9 62 | dm,9 63 | mlm,9 64 | mdm,9 65 | lm,9 66 | mdm,9 67 | dm,9 68 | dm,9 69 | dm,9 70 | x,9 71 | mlm,9 72 | x,9 73 | x,9 74 | x,9 75 | lm,9 76 | lm,9 77 | x,9 78 | mlm,9 79 | lm,9 80 | mlm,9 81 | lm,9 82 | dm,9 83 | mlm,9 84 | lm,9 85 | lm,9 86 | mlm,9 87 | x,9 88 | x,9 89 | mlm,9 90 | mlm,9 91 | lm,9 92 | x,9 93 | x,9 94 | lm,9 95 | dm,9 96 | x,9 97 | mlm,9 98 | dm,9 99 | dm,9 100 | x,9 101 | mlm,9 102 | lm,9 103 | lm,9 104 | mlm,9 105 | lm,9 106 | x,9 107 | lm,9 108 | lm,9 109 | dm,9 110 | mlm,10 111 | dm,10 112 | x,10 113 | x,10 114 | dm,10 115 | x,10 116 | lm,10 117 | lm,10 118 | mlm,10 119 | x,10 120 | mlm,10 121 | mlm,10 122 | x,10 123 | x,10 124 | mlm,10 125 | x,10 126 | mdm,10 127 | lm,10 128 | dm,10 129 | x,11 130 | x,11 131 | lm,11 132 | x,11 133 | x,11 134 | lm,11 135 | x,11 136 | x,11 137 | x,11 138 | dm,12 139 | dm,12 140 | x,12 141 | mlm,12 142 | dm,12 143 | lm,12 144 | x,12 145 | mlm,12 146 | x,12 147 | mlm,12 148 | mlm,12 149 | mdm,13 150 | mlm,13 151 | mlm,13 152 | mlm,13 153 | dm,13 154 | x,13 155 | dm,13 156 | dm,13 157 | lm,13 158 | lm,13 159 | x,13 160 | x,13 161 | x,13 162 | dm,13 163 | mlm,13 164 | x,13 165 | x,13 166 | x,13 167 | dm,13 168 | lm,13 169 | mlm,13 170 | dm,13 171 | mlm,13 172 | dm,13 173 | lm,13 174 | mlm,13 175 | mlm,13 176 | x,13 177 | mlm,13 178 | dm,13 179 | lm,13 180 | lm,13 181 | x,13 182 | x,13 183 | lm,13 184 | mdm,13 185 | lm,13 186 | mdm,13 187 | x,13 188 | mlm,13 189 | dm,14 190 | dm,14 191 | dm,14 192 | lm,14 193 | x,14 194 | x,14 195 | dm,14 196 | x,14 197 | x,14 198 | x,15 199 | x,15 200 | dm,15 201 | x,15 202 | x,16 203 | mlm,16 204 | dm,16 205 | dm,16 206 | dm,16 207 | lm,16 208 | dm,16 209 | mlm,16 210 | mlm,16 211 | mlm,16 212 | x,16 213 | mlm,16 214 | x,16 215 | x,16 216 | x,16 217 | mlm,16 218 | mlm,16 219 | mlm,16 220 | dm,16 221 | mlm,16 222 | dm,16 223 | mlm,16 224 | mlm,16 225 | x,17 226 | lm,17 227 | lm,17 228 | x,17 229 | mlm,17 230 | lm,17 231 | x,17 232 | x,17 233 | mlm,17 234 | mlm,17 235 | x,17 236 | mlm,17 237 | lm,17 238 | dm,17 239 | mlm,17 240 | mlm,17 241 | mlm,17 242 | x,17 243 | lm,17 244 | mlm,17 245 | x,17 246 | lm,17 247 | lm,17 248 | mlm,17 249 | mlm,18 250 | x,18 251 | lm,18 252 | lm,19 253 | mlm,19 254 | mlm,19 255 | x,19 256 | dm,19 257 | mlm,19 258 | x,19 259 | mdm,19 260 | x,19 261 | dm,19 262 | lm,19 263 | lm,19 264 | dm,19 265 | mlm,19 266 | x,19 267 | lm,19 268 | lm,19 269 | mlm,19 270 | x,19 271 | dm,19 272 | x,19 273 | x,19 274 | mlm,19 275 | lm,20 276 | lm,20 277 | x,20 278 | lm,20 279 | mlm,21 280 | dm,21 281 | dm,21 282 | x,21 283 | mdm,21 284 | x,21 285 | x,21 286 | mlm,21 287 | x,21 288 | x,21 289 | mlm,21 290 | dm,21 291 | x,21 292 | lm,21 293 | x,21 294 | lm,21 295 | dm,21 296 | dm,21 297 | mdm,21 298 | x,21 299 | x,22 300 | dm,22 301 | mlm,22 302 | dm,22 303 | mlm,22 304 | lm,22 305 | mlm,22 306 | lm,23 307 | lm,23 308 | lm,23 309 | dm,23 310 | x,23 311 | lm,23 312 | mdm,23 313 | dm,23 314 | mlm,23 315 | x,23 316 | dm,23 317 | x,23 318 | x,23 319 | lm,23 320 | lm,23 321 | x,23 322 | x,23 323 | mlm,23 324 | lm,23 325 | mlm,23 326 | dm,23 327 | dm,23 328 | x,23 329 | mlm,23 330 | lm,24 331 | x,24 332 | dm,24 333 | mdm,24 334 | x,24 335 | x,24 336 | lm,25 337 | x,25 338 | x,25 339 | dm,25 340 | x,25 341 | dm,25 342 | lm,25 343 | lm,25 344 | x,25 345 | x,25 346 | mlm,25 347 | mlm,25 348 | lm,25 349 | dm,25 350 | x,25 351 | x,25 352 | dm,25 353 | x,25 354 | mlm,25 355 | x,25 356 | x,26 357 | mlm,26 358 | mlm,26 359 | lm,26 360 | x,26 361 | mlm,26 362 | lm,26 363 | x,26 364 | mlm,26 365 | dm,26 366 | mlm,26 367 | lm,26 368 | mlm,26 369 | x,26 370 | x,26 371 | x,26 372 | lm,27 373 | mlm,27 374 | x,27 375 | lm,27 376 | lm,27 377 | lm,27 378 | lm,27 379 | mlm,27 380 | dm,27 381 | x,27 382 | dm,27 383 | x,27 384 | x,27 385 | dm,27 386 | mlm,27 387 | lm,27 388 | x,27 389 | mlm,28 390 | x,28 391 | lm,28 392 | mlm,29 393 | dm,29 394 | lm,29 395 | x,29 396 | dm,29 397 | x,29 398 | mlm,29 399 | x,29 400 | x,29 401 | x,29 402 | mlm,29 403 | mlm,29 404 | lm,30 405 | mlm,30 406 | lm,30 407 | x,30 408 | x,30 409 | x,30 410 | lm,30 411 | mlm,30 412 | x,30 413 | lm,31 414 | x,31 415 | lm,31 416 | dm,31 417 | lm,31 418 | x,31 419 | x,31 420 | mlm,31 421 | mlm,31 422 | mlm,31 423 | mlm,31 424 | x,31 425 | x,31 426 | x,31 427 | lm,31 428 | x,31 429 | mlm,31 430 | x,31 431 | mdm,31 432 | mlm,31 433 | mdm,31 434 | mlm,31 435 | mdm,31 436 | x,31 437 | dm,31 438 | x,31 439 | x,31 440 | mlm,31 441 | x,31 442 | mlm,31 443 | x,31 444 | mlm,31 445 | dm,31 446 | x,31 447 | mdm,31 448 | x,31 449 | mlm,31 450 | lm,31 451 | x,31 452 | mlm,31 453 | lm,31 454 | x,31 455 | lm,31 456 | mlm,31 457 | mlm,31 458 | dm,31 459 | x,31 460 | x,31 461 | mlm,31 462 | mlm,31 463 | mlm,31 464 | lm,31 465 | x,31 466 | mlm,31 467 | x,31 468 | x,31 469 | dm,31 470 | mlm,31 471 | x,31 472 | x,32 473 | dm,32 474 | x,32 475 | dm,32 476 | x,32 477 | dm,32 478 | x,32 479 | lm,32 480 | mlm,32 481 | dm,32 482 | mlm,32 483 | mlm,32 484 | x,32 485 | dm,32 486 | lm,32 487 | mlm,32 488 | x,32 489 | lm,32 490 | x,32 491 | mlm,32 492 | mlm,32 493 | lm,32 494 | mlm,32 495 | dm,32 496 | mlm,32 497 | lm,32 498 | dm,32 499 | dm,32 500 | mlm,32 501 | mdm,32 502 | mlm,32 503 | mlm,32 504 | lm,32 505 | lm,32 506 | dm,32 507 | x,32 508 | x,32 509 | mlm,32 510 | mlm,32 511 | dm,32 512 | dm,32 513 | x,32 514 | dm,32 515 | x,32 516 | x,32 517 | mlm,32 518 | mlm,32 519 | x,32 520 | x,32 521 | x,32 522 | x,33 523 | dm,33 524 | x,33 525 | x,33 526 | x,33 527 | lm,33 528 | dm,33 529 | x,33 530 | mlm,33 531 | mlm,33 532 | x,33 533 | mlm,33 534 | mlm,34 535 | mlm,34 536 | x,34 537 | x,34 538 | mlm,34 539 | dm,34 540 | dm,34 541 | dm,34 542 | x,34 543 | mlm,34 544 | lm,34 545 | mlm,35 546 | mlm,35 547 | x,35 548 | x,35 549 | x,35 550 | dm,35 551 | lm,35 552 | dm,35 553 | x,36 554 | x,36 555 | mlm,36 556 | lm,36 557 | mlm,36 558 | mlm,36 559 | dm,36 560 | mlm,36 561 | lm,36 562 | x,36 563 | dm,36 564 | dm,36 565 | lm,37 566 | lm,37 567 | mlm,38 568 | mlm,38 569 | x,38 570 | x,38 571 | x,39 572 | mlm,39 573 | dm,39 574 | mlm,39 575 | mdm,39 576 | x,40 577 | x,40 578 | mlm,40 579 | x,40 580 | x,40 581 | x,41 582 | dm,41 583 | x,41 584 | mlm,41 585 | lm,41 586 | x,41 587 | x,41 588 | x,41 589 | mlm,41 590 | x,41 591 | x,41 592 | x,41 593 | x,41 594 | mlm,41 595 | lm,41 596 | dm,41 597 | lm,41 598 | x,41 599 | mlm,41 600 | mlm,41 601 | dm,41 602 | x,42 603 | mdm,42 604 | lm,42 605 | x,42 606 | mlm,42 607 | dm,42 608 | x,42 609 | mdm,42 610 | dm,42 611 | x,43 612 | x,43 613 | mlm,43 614 | x,43 615 | lm,43 616 | dm,43 617 | dm,43 618 | dm,43 619 | x,43 620 | mlm,43 621 | x,43 622 | x,43 623 | x,43 624 | x,43 625 | x,43 626 | x,43 627 | dm,43 628 | x,43 629 | x,43 630 | dm,43 631 | dm,43 632 | lm,43 633 | mlm,43 634 | mlm,43 635 | mlm,44 636 | x,44 637 | dm,44 638 | x,44 639 | dm,44 640 | x,44 641 | x,44 642 | x,44 643 | lm,44 644 | dm,44 645 | mlm,44 646 | dm,44 647 | mlm,44 648 | lm,44 649 | x,44 650 | x,44 651 | mlm,44 652 | mlm,44 653 | mlm,44 654 | dm,44 655 | x,44 656 | dm,44 657 | mdm,45 658 | dm,46 659 | x,46 660 | lm,46 661 | x,46 662 | lm,46 663 | mlm,46 664 | dm,46 665 | x,46 666 | x,46 667 | dm,46 668 | lm,46 669 | dm,46 670 | x,47 671 | mdm,47 672 | x,47 673 | mlm,47 674 | dm,47 675 | dm,47 676 | x,47 677 | lm,47 678 | x,47 679 | lm,47 680 | x,47 681 | x,47 682 | lm,47 683 | mlm,47 684 | lm,47 685 | mlm,47 686 | x,47 687 | lm,47 688 | mlm,47 689 | x,47 690 | lm,47 691 | mlm,47 692 | mlm,47 693 | dm,47 694 | mlm,47 695 | x,47 696 | mlm,47 697 | lm,47 698 | lm,47 699 | mlm,47 700 | x,47 701 | mlm,48 702 | x,48 703 | x,49 704 | x,50 705 | dm,50 706 | lm,51 707 | dm,51 708 | dm,51 709 | lm,51 710 | dm,51 711 | mlm,51 712 | x,51 713 | x,51 714 | x,51 715 | lm,51 716 | mlm,53 717 | mlm,53 718 | mlm,53 719 | x,54 720 | x,54 721 | x,54 722 | dm,54 723 | dm,54 724 | lm,54 725 | dm,54 726 | x,54 727 | x,101 728 | x,101 729 | dm,101 730 | x,101 731 | x,101 732 | mlm,101 733 | mlm,101 734 | dm,101 735 | x,101 736 | lm,52 737 | x,52 738 | mlm,52 739 | lm,52 740 | dm,52 741 | x,108 742 | x,108 743 | dm,108 744 | lm,109 745 | dm,109 746 | x,109 747 | dm,109 748 | x,109 749 | dm,100 750 | dm,100 751 | mlm,100 752 | x,100 753 | mlm,100 754 | x,100 755 | x,100 756 | dm,100 757 | x,100 758 | dm,100 759 | x,100 760 | x,100 761 | dm,100 762 | x,100 763 | x,100 -------------------------------------------------------------------------------- /aa_url_dm.bst: -------------------------------------------------------------------------------- 1 | %% 2019/01 C Yang 2 | %% Enabling the ADSURL and DOI entry to create clickable links in ref. 3 | 4 | %% 2001/06/10 EDP Sciences 5 | %% APJ, corrected by hand to get results for A&A, using Natbib 6 | 7 | %% 1998/08/12 J Baker 8 | %% Tweaked by hand to get correct results for ApJ. Added functions from 9 | %% astrobib. 10 | 11 | %% $Log: apj.bst,v $ 12 | %% Revision 1.3 2000/04/20 22:17:50 jbaker 13 | %% Fixed INBOOK bug, now works essentially like BOOK. 14 | %% 15 | %% Revision 1.2 1998/08/30 22:35:45 jbaker 16 | %% Added RCS keywords. 17 | %% 18 | 19 | %% 20 | %% This is file `apj.bst', 21 | %% generated with the docstrip utility. 22 | %% 23 | %% The original source files were: 24 | %% 25 | %% merlin.mbs (with options: `,ay,nat,nm-rev,nmdash,dt-beg,yr-per,note-yr,atit-u,jtit-x,jttl-rm,thtit-a,vnum-x,volp-com,jpg-1,pp-last,btit-rm,add-pub,pub-par,pre-edn,edby,edbyx,blk-com,fin-bare,ppx,ed,abr,ord,jabr,eprint,amper,em-x') 26 | %% ---------------------------------------- 27 | %% *** Bibliographic Style for ApJ *** 28 | %% 29 | %------------------------------------------------------------------- 30 | % The original source file contains the following version information: 31 | % \ProvidesFile{merlin.mbs}[1998/02/25 3.85a (PWD)] 32 | % 33 | % NOTICE: 34 | % This file may be used for non-profit purposes. 35 | % It may not be distributed in exchange for money, 36 | % other than distribution costs. 37 | % 38 | % The author provides it `as is' and does not guarantee it in any way. 39 | % 40 | % Copyright (C) 1994-98 Patrick W. Daly 41 | %------------------------------------------------------------------- 42 | % For use with BibTeX version 0.99a or later 43 | %------------------------------------------------------------------- 44 | % This bibliography style file is intended for texts in ENGLISH 45 | % This is an author-year citation style bibliography. As such, it is 46 | % non-standard LaTeX, and requires a special package file to function properly. 47 | % Such a package is natbib.sty by Patrick W. Daly 48 | % The form of the \bibitem entries is 49 | % \bibitem[Jones et al.(1990)]{key}... 50 | % \bibitem[Jones et al.(1990)Jones, Baker, and Smith]{key}... 51 | % The essential feature is that the label (the part in brackets) consists 52 | % of the author names, as they should appear in the citation, with the year 53 | % in parentheses following. There must be no space before the opening 54 | % parenthesis! 55 | % With natbib v5.3, a full list of authors may also follow the year. 56 | % In natbib.sty, it is possible to define the type of enclosures that is 57 | % really wanted (brackets or parentheses), but in either case, there must 58 | % be parentheses in the label. 59 | % The \cite command functions as follows: 60 | % \citet{key} ==>> Jones et al. (1990) 61 | % \citet*{key} ==>> Jones, Baker, and Smith (1990) 62 | % \citep{key} ==>> (Jones et al., 1990) 63 | % \citep*{key} ==>> (Jones, Baker, and Smith, 1990) 64 | % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2) 65 | % \citep[e.g.][]{key} ==>> (e.g. Jones et al., 1990) 66 | % \citep[e.g.][p. 32]{key} ==>> (e.g. Jones et al., p. 32) 67 | % \citeauthor{key} ==>> Jones et al. 68 | % \citeauthor*{key} ==>> Jones, Baker, and Smith 69 | % \citeyear{key} ==>> 1990 70 | %--------------------------------------------------------------------- 71 | \definecolor{cbfgreen}{HTML}{009E73} 72 | \definecolor{cbfpink}{HTML}{CC79A7} 73 | 74 | ENTRY 75 | { address 76 | archiveprefix %EDP Sciences le 30/11/2014 77 | author 78 | booktitle 79 | chapter 80 | edition 81 | editor 82 | howpublished 83 | institution 84 | eprint %% EDP Sciences le 30/11/2014 85 | doi %% MAKE SURE THE ENTRIES DO NOT REPEAT! 86 | url %% MAKE SURE THE ENTRIES DO NOT REPEAT! 87 | journal 88 | key 89 | month 90 | note 91 | number 92 | organization 93 | pages 94 | publisher 95 | school 96 | series 97 | title 98 | type 99 | volume 100 | year 101 | adsurl 102 | } 103 | {} 104 | { label extra.label sort.label short.list } 105 | 106 | INTEGERS { output.state before.all mid.sentence after.sentence after.block } 107 | 108 | FUNCTION {init.state.consts} 109 | { #0 'before.all := 110 | #1 'mid.sentence := 111 | #2 'after.sentence := 112 | #3 'after.block := 113 | } 114 | 115 | STRINGS { s t } 116 | 117 | FUNCTION {output.nonnull} 118 | { 's := 119 | output.state mid.sentence = 120 | { ", " * write$ } 121 | { output.state after.block = 122 | { add.period$ write$ 123 | newline$ 124 | "\newblock " write$ 125 | } 126 | { output.state before.all = 127 | 'write$ 128 | { add.period$ " " * write$ } 129 | if$ 130 | } 131 | if$ 132 | mid.sentence 'output.state := 133 | } 134 | if$ 135 | s 136 | } 137 | 138 | %EDP Sciences le 30/11/2014 139 | FUNCTION {output.eprint} 140 | { 's := 141 | output.state mid.sentence = 142 | { " " * write$ } 143 | { output.state after.block = 144 | { add.period$ write$ 145 | newline$ 146 | "\newblock " write$ 147 | } 148 | { output.state before.all = 149 | 'write$ 150 | { add.period$ " " * write$ } 151 | if$ 152 | } 153 | if$ 154 | mid.sentence 'output.state := 155 | } 156 | if$ 157 | s 158 | } 159 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 160 | 161 | FUNCTION {output} 162 | { duplicate$ empty$ 163 | 'pop$ 164 | 'output.nonnull 165 | if$ 166 | } 167 | 168 | %EDP Sciences le 30/11/2014 169 | FUNCTION {outputeprint} 170 | { duplicate$ empty$ 171 | 'pop$ 172 | 'output.eprint 173 | if$ 174 | } 175 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 176 | 177 | FUNCTION {output.check} 178 | { 't := 179 | duplicate$ empty$ 180 | { pop$ "empty " t * " in " * cite$ * warning$ } 181 | 'output.nonnull 182 | if$ 183 | } 184 | 185 | FUNCTION {fin.entry} 186 | { duplicate$ empty$ 187 | 'pop$ 188 | 'write$ 189 | if$ 190 | newline$ 191 | } 192 | 193 | FUNCTION {new.block} 194 | { output.state before.all = 195 | 'skip$ 196 | { after.block 'output.state := } 197 | if$ 198 | } 199 | 200 | FUNCTION {new.sentence} 201 | { output.state after.block = 202 | 'skip$ 203 | { output.state before.all = 204 | 'skip$ 205 | { after.sentence 'output.state := } 206 | if$ 207 | } 208 | if$ 209 | } 210 | 211 | FUNCTION {add.blank} 212 | { " " * before.all 'output.state := 213 | } 214 | 215 | FUNCTION {date.block} 216 | { 217 | skip$ 218 | } 219 | 220 | FUNCTION {not} 221 | { { #0 } 222 | { #1 } 223 | if$ 224 | } 225 | 226 | FUNCTION {and} 227 | { 'skip$ 228 | { pop$ #0 } 229 | if$ 230 | } 231 | 232 | FUNCTION {or} 233 | { { pop$ #1 } 234 | 'skip$ 235 | if$ 236 | } 237 | 238 | FUNCTION {new.block.checkb} 239 | { empty$ 240 | swap$ empty$ 241 | and 242 | 'skip$ 243 | 'new.block 244 | if$ 245 | } 246 | 247 | FUNCTION {field.or.null} 248 | { duplicate$ empty$ 249 | { pop$ "" } 250 | 'skip$ 251 | if$ 252 | } 253 | 254 | FUNCTION {emphasize} 255 | { skip$ } 256 | 257 | FUNCTION {capitalize} 258 | { "u" change.case$ "t" change.case$ } 259 | 260 | FUNCTION {space.word} 261 | { " " swap$ * " " * } 262 | 263 | % Here are the language-specific definitions for explicit words. 264 | % Each function has a name bbl.xxx where xxx is the English word. 265 | % The language selected here is ENGLISH 266 | FUNCTION {bbl.and} 267 | { "and"} 268 | 269 | FUNCTION {bbl.editors} 270 | { "eds." } 271 | 272 | FUNCTION {bbl.editor} 273 | { "ed." } 274 | 275 | FUNCTION {bbl.edby} 276 | { "edited by" } 277 | 278 | FUNCTION {bbl.edition} 279 | { "edn." } 280 | 281 | FUNCTION {bbl.volume} 282 | { "Vol." } 283 | 284 | FUNCTION {bbl.of} 285 | { "of" } 286 | 287 | FUNCTION {bbl.number} 288 | { "no." } 289 | 290 | FUNCTION {bbl.nr} 291 | { "no." } 292 | 293 | FUNCTION {bbl.in} 294 | { "in" } 295 | 296 | FUNCTION {bbl.pages} 297 | { "" } 298 | 299 | FUNCTION {bbl.page} 300 | { "" } 301 | 302 | FUNCTION {bbl.chapter} 303 | { "Ch." } 304 | %{ "chap." } 305 | 306 | FUNCTION {bbl.techrep} 307 | { "Tech. Rep." } 308 | 309 | FUNCTION {bbl.mthesis} 310 | { "Master's thesis" } 311 | 312 | FUNCTION {bbl.phdthesis} 313 | { "PhD thesis" } 314 | 315 | FUNCTION {bbl.first} 316 | { "1st" } 317 | 318 | FUNCTION {bbl.second} 319 | { "2nd" } 320 | 321 | FUNCTION {bbl.third} 322 | { "3rd" } 323 | 324 | FUNCTION {bbl.fourth} 325 | { "4th" } 326 | 327 | FUNCTION {bbl.fifth} 328 | { "5th" } 329 | 330 | FUNCTION {bbl.st} 331 | { "st" } 332 | 333 | FUNCTION {bbl.nd} 334 | { "nd" } 335 | 336 | FUNCTION {bbl.rd} 337 | { "rd" } 338 | 339 | FUNCTION {bbl.th} 340 | { "th" } 341 | 342 | MACRO {jan} {"Jan."} 343 | 344 | MACRO {feb} {"Feb."} 345 | 346 | MACRO {mar} {"Mar."} 347 | 348 | MACRO {apr} {"Apr."} 349 | 350 | MACRO {may} {"May"} 351 | 352 | MACRO {jun} {"Jun."} 353 | 354 | MACRO {jul} {"Jul."} 355 | 356 | MACRO {aug} {"Aug."} 357 | 358 | MACRO {sep} {"Sep."} 359 | 360 | MACRO {oct} {"Oct."} 361 | 362 | MACRO {nov} {"Nov."} 363 | 364 | MACRO {dec} {"Dec."} 365 | 366 | FUNCTION {eng.ord} 367 | { duplicate$ "1" swap$ * 368 | #-2 #1 substring$ "1" = 369 | { bbl.th * } 370 | { duplicate$ #-1 #1 substring$ 371 | duplicate$ "1" = 372 | { pop$ bbl.st * } 373 | { duplicate$ "2" = 374 | { pop$ bbl.nd * } 375 | { "3" = 376 | { bbl.rd * } 377 | { bbl.th * } 378 | if$ 379 | } 380 | if$ 381 | } 382 | if$ 383 | } 384 | if$ 385 | } 386 | 387 | MACRO {acmcs} {"ACM Comput. Surv."} 388 | 389 | MACRO {acta} {"Acta Inf."} 390 | 391 | MACRO {cacm} {"Commun. ACM"} 392 | 393 | MACRO {ibmjrd} {"IBM J. Res. Dev."} 394 | 395 | MACRO {ibmsj} {"IBM Syst.~J."} 396 | 397 | MACRO {ieeese} {"IEEE Trans. Softw. Eng."} 398 | 399 | MACRO {ieeetc} {"IEEE Trans. Comput."} 400 | 401 | MACRO {ieeetcad} 402 | {"IEEE Trans. Comput.-Aided Design Integrated Circuits"} 403 | 404 | MACRO {ipl} {"Inf. Process. Lett."} 405 | 406 | MACRO {jacm} {"J.~ACM"} 407 | 408 | MACRO {jcss} {"J.~Comput. Syst. Sci."} 409 | 410 | MACRO {scp} {"Sci. Comput. Programming"} 411 | 412 | MACRO {sicomp} {"SIAM J. Comput."} 413 | 414 | MACRO {tocs} {"ACM Trans. Comput. Syst."} 415 | 416 | MACRO {tods} {"ACM Trans. Database Syst."} 417 | 418 | MACRO {tog} {"ACM Trans. Gr."} 419 | 420 | MACRO {toms} {"ACM Trans. Math. Softw."} 421 | 422 | MACRO {toois} {"ACM Trans. Office Inf. Syst."} 423 | 424 | MACRO {toplas} {"ACM Trans. Prog. Lang. Syst."} 425 | 426 | MACRO {tcs} {"Theoretical Comput. Sci."} 427 | 428 | INTEGERS { nameptr namesleft numnames } 429 | 430 | FUNCTION {format.names} 431 | { 's := 432 | #1 'nameptr := 433 | s num.names$ 'numnames := 434 | numnames 'namesleft := 435 | { namesleft #0 > } 436 | { s nameptr 437 | "{vv~}{ll}{, jj}{, f.}" format.name$ 438 | 't := 439 | 440 | numnames #5 > 441 | { 442 | nameptr #1 > 443 | { 444 | nameptr #4 = 445 | { 446 | ", {et~al.}" * 447 | } 448 | { 449 | nameptr #4 > 450 | { "" * } 451 | { ", " * t * } 452 | if$ 453 | } 454 | if$ 455 | 456 | } 457 | 't 458 | if$ 459 | } 460 | { 461 | nameptr #1 > 462 | { 463 | namesleft #1 > 464 | { ", " * t * } 465 | { 466 | numnames #2 > 467 | { "," * } 468 | 'skip$ 469 | if$ 470 | s nameptr "{ll}" format.name$ duplicate$ "others" = 471 | { 't := } 472 | { pop$ } 473 | if$ 474 | t "others" = 475 | { 476 | " {et~al.}" * 477 | } 478 | { " \& " * t * } 479 | if$ 480 | } 481 | if$ 482 | } 483 | 't 484 | if$ 485 | } if$ 486 | 487 | nameptr #1 + 'nameptr := 488 | namesleft #1 - 'namesleft := 489 | } 490 | while$ 491 | } 492 | 493 | FUNCTION {format.names.ed} 494 | { 's := 495 | #1 'nameptr := 496 | s num.names$ 'numnames := 497 | numnames 'namesleft := 498 | { namesleft #0 > } 499 | { s nameptr 500 | "{f.~}{vv~}{ll}{, jj}" 501 | format.name$ 502 | 't := 503 | nameptr #1 > 504 | { 505 | namesleft #1 > 506 | { ", " * t * } 507 | { 508 | numnames #2 > 509 | { "," * } 510 | 'skip$ 511 | if$ 512 | s nameptr "{ll}" format.name$ duplicate$ "others" = 513 | { 't := } 514 | { pop$ } 515 | if$ 516 | t "others" = 517 | { 518 | " {et~al.}" * 519 | } 520 | { " \& " * t * } 521 | if$ 522 | } 523 | if$ 524 | } 525 | 't 526 | if$ 527 | nameptr #1 + 'nameptr := 528 | namesleft #1 - 'namesleft := 529 | } 530 | while$ 531 | } 532 | 533 | FUNCTION {format.key} 534 | { empty$ 535 | { key field.or.null } 536 | { "" } 537 | if$ 538 | } 539 | 540 | FUNCTION {format.authors} 541 | { author empty$ 542 | { "" } 543 | { author format.names } 544 | if$ 545 | } 546 | 547 | FUNCTION {format.editors} 548 | { editor empty$ 549 | { "" } 550 | { editor format.names 551 | editor num.names$ #1 > 552 | { ", " * bbl.editors * } 553 | { ", " * bbl.editor * } 554 | if$ 555 | } 556 | if$ 557 | } 558 | 559 | FUNCTION {format.in.editors} 560 | { editor empty$ 561 | { "" } 562 | { editor format.names.ed 563 | } 564 | if$ 565 | } 566 | 567 | FUNCTION {format.note} 568 | { note empty$ 569 | { "" } 570 | { note #1 #1 substring$ 571 | duplicate$ "{" = 572 | 'skip$ 573 | { output.state mid.sentence = 574 | { "l" } 575 | { "u" } 576 | if$ 577 | change.case$ 578 | } 579 | if$ 580 | note #2 global.max$ substring$ * 581 | } 582 | if$ 583 | } 584 | 585 | %EDP Sciences le 30/11/2014 586 | FUNCTION {format.eprint} 587 | { eprint duplicate$ empty$ 588 | 'skip$ 589 | { "[\eprint" 590 | archiveprefix empty$ 591 | 'skip$ 592 | { "[" * archiveprefix * "]" * } 593 | if$ 594 | "{" * swap$ * "}]" * 595 | } 596 | if$ 597 | } 598 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 599 | 600 | FUNCTION {format.title} 601 | { title empty$ 602 | { "" } 603 | { title 604 | } 605 | if$ 606 | } 607 | 608 | FUNCTION {format.full.names} 609 | {'s := 610 | #1 'nameptr := 611 | s num.names$ 'numnames := 612 | numnames 'namesleft := 613 | { namesleft #0 > } 614 | { s nameptr 615 | "{vv~}{ll}" format.name$ 616 | 't := 617 | nameptr #1 > 618 | { 619 | namesleft #1 > 620 | { ", " * t * } 621 | { 622 | numnames #2 > 623 | { "," * } 624 | 'skip$ 625 | if$ 626 | s nameptr "{ll}" format.name$ duplicate$ "others" = 627 | { 't := } 628 | { pop$ } 629 | if$ 630 | t "others" = 631 | { 632 | " {et~al.}" * 633 | } 634 | { " \& " * t * } 635 | if$ 636 | } 637 | if$ 638 | } 639 | 't 640 | if$ 641 | nameptr #1 + 'nameptr := 642 | namesleft #1 - 'namesleft := 643 | } 644 | while$ 645 | } 646 | 647 | FUNCTION {author.editor.key.full} 648 | { author empty$ 649 | { editor empty$ 650 | { key empty$ 651 | { cite$ #1 #3 substring$ } 652 | 'key 653 | if$ 654 | } 655 | { editor format.full.names } 656 | if$ 657 | } 658 | { author format.full.names } 659 | if$ 660 | } 661 | 662 | FUNCTION {author.key.full} 663 | { author empty$ 664 | { key empty$ 665 | { cite$ #1 #3 substring$ } 666 | 'key 667 | if$ 668 | } 669 | { author format.full.names } 670 | if$ 671 | } 672 | 673 | FUNCTION {editor.key.full} 674 | { editor empty$ 675 | { key empty$ 676 | { cite$ #1 #3 substring$ } 677 | 'key 678 | if$ 679 | } 680 | { editor format.full.names } 681 | if$ 682 | } 683 | 684 | FUNCTION {make.full.names} 685 | { type$ "book" = 686 | type$ "inbook" = 687 | or 688 | 'author.editor.key.full 689 | { type$ "proceedings" = 690 | 'editor.key.full 691 | 'author.key.full 692 | if$ 693 | } 694 | if$ 695 | } 696 | 697 | FUNCTION {output.bibitem} 698 | { newline$ 699 | "\bibitem[{" write$ 700 | label write$ 701 | ")" make.full.names duplicate$ short.list = 702 | { pop$ } 703 | { * } 704 | if$ 705 | "}]{" * write$ 706 | cite$ write$ 707 | "}" write$ 708 | newline$ 709 | "" 710 | before.all 'output.state := 711 | } 712 | 713 | FUNCTION {n.dashify} 714 | { 715 | 't := 716 | "" 717 | { t empty$ not } 718 | { t #1 #1 substring$ "-" = 719 | { t #1 #2 substring$ "--" = not 720 | { "--" * 721 | t #2 global.max$ substring$ 't := 722 | } 723 | { { t #1 #1 substring$ "-" = } 724 | { "-" * 725 | t #2 global.max$ substring$ 't := 726 | } 727 | while$ 728 | } 729 | if$ 730 | } 731 | { t #1 #1 substring$ * 732 | t #2 global.max$ substring$ 't := 733 | } 734 | if$ 735 | } 736 | while$ 737 | } 738 | 739 | FUNCTION {word.in} 740 | { bbl.in 741 | " " * } 742 | 743 | FUNCTION {format.date} 744 | { year duplicate$ empty$ 745 | { "empty year in " cite$ * "; set to ????" * warning$ 746 | pop$ "????" } 747 | 'skip$ 748 | if$ 749 | extra.label * 750 | before.all 'output.state := 751 | after.sentence 'output.state := 752 | } 753 | 754 | FUNCTION {format.btitle} 755 | { title 756 | } 757 | 758 | FUNCTION {tie.or.space.connect} 759 | { duplicate$ text.length$ #3 < 760 | { "~" } 761 | { " " } 762 | if$ 763 | swap$ * * 764 | } 765 | 766 | FUNCTION {either.or.check} 767 | { empty$ 768 | 'pop$ 769 | { "can't use both " swap$ * " fields in " * cite$ * warning$ } 770 | if$ 771 | } 772 | 773 | FUNCTION {format.bvolume} 774 | { volume empty$ 775 | { "" } 776 | { bbl.volume volume tie.or.space.connect 777 | series empty$ 778 | 'skip$ 779 | { bbl.of space.word * series emphasize * } 780 | if$ 781 | "volume and number" number either.or.check 782 | } 783 | if$ 784 | } 785 | 786 | FUNCTION {format.number.series} 787 | { volume empty$ 788 | { number empty$ 789 | { series field.or.null } 790 | { output.state mid.sentence = 791 | { bbl.number } 792 | { bbl.number capitalize } 793 | if$ 794 | number tie.or.space.connect 795 | series empty$ 796 | { "there's a number but no series in " cite$ * warning$ } 797 | { bbl.in space.word * series * } 798 | if$ 799 | } 800 | if$ 801 | } 802 | { "" } 803 | if$ 804 | } 805 | 806 | FUNCTION {is.num} 807 | { chr.to.int$ 808 | duplicate$ "0" chr.to.int$ < not 809 | swap$ "9" chr.to.int$ > not and 810 | } 811 | 812 | FUNCTION {extract.num} 813 | { duplicate$ 't := 814 | "" 's := 815 | { t empty$ not } 816 | { t #1 #1 substring$ 817 | t #2 global.max$ substring$ 't := 818 | duplicate$ is.num 819 | { s swap$ * 's := } 820 | { pop$ "" 't := } 821 | if$ 822 | } 823 | while$ 824 | s empty$ 825 | 'skip$ 826 | { pop$ s } 827 | if$ 828 | } 829 | 830 | FUNCTION {convert.edition} 831 | { edition extract.num "l" change.case$ 's := 832 | s "first" = s "1" = or 833 | { bbl.first 't := } 834 | { s "second" = s "2" = or 835 | { bbl.second 't := } 836 | { s "third" = s "3" = or 837 | { bbl.third 't := } 838 | { s "fourth" = s "4" = or 839 | { bbl.fourth 't := } 840 | { s "fifth" = s "5" = or 841 | { bbl.fifth 't := } 842 | { s #1 #1 substring$ is.num 843 | { s eng.ord 't := } 844 | { edition 't := } 845 | if$ 846 | } 847 | if$ 848 | } 849 | if$ 850 | } 851 | if$ 852 | } 853 | if$ 854 | } 855 | if$ 856 | t 857 | } 858 | 859 | FUNCTION {format.edition} 860 | { edition empty$ 861 | { "" } 862 | { output.state mid.sentence = 863 | { convert.edition "l" change.case$ " " * bbl.edition * } 864 | { convert.edition "t" change.case$ " " * bbl.edition * } 865 | if$ 866 | } 867 | if$ 868 | } 869 | 870 | INTEGERS { multiresult } 871 | 872 | FUNCTION {multi.page.check} 873 | { 't := 874 | #0 'multiresult := 875 | { multiresult not 876 | t empty$ not 877 | and 878 | } 879 | { t #1 #1 substring$ 880 | duplicate$ "-" = 881 | swap$ duplicate$ "," = 882 | swap$ "+" = 883 | or or 884 | { #1 'multiresult := } 885 | { t #2 global.max$ substring$ 't := } 886 | if$ 887 | } 888 | while$ 889 | multiresult 890 | } 891 | 892 | FUNCTION {format.pages} 893 | { pages empty$ 894 | { "" } 895 | { pages multi.page.check 896 | % { bbl.pages pages n.dashify tie.or.space.connect } 897 | % { bbl.page pages tie.or.space.connect } 898 | { pages n.dashify } 899 | { pages } 900 | if$ 901 | } 902 | if$ 903 | } 904 | 905 | FUNCTION {first.page} 906 | { 't := 907 | "" 908 | { t empty$ not t #1 #1 substring$ "-" = not and } 909 | { t #1 #1 substring$ * 910 | t #2 global.max$ substring$ 't := 911 | } 912 | while$ 913 | } 914 | 915 | FUNCTION {format.journal.pages} 916 | { pages empty$ 917 | { format.eprint outputeprint %EDP Sciences le 30/11/2014 918 | } 919 | { duplicate$ empty$ 920 | { pop$ format.pages } 921 | { 922 | ", " * 923 | pages first.page * 924 | } 925 | if$ 926 | } 927 | if$ 928 | } 929 | 930 | FUNCTION {format.vol.num.pages} 931 | { volume field.or.null 932 | } 933 | 934 | FUNCTION {format.chapter.pages} 935 | { chapter empty$ 936 | { "" } 937 | { type empty$ 938 | { bbl.chapter } 939 | { type "l" change.case$ } 940 | if$ 941 | chapter tie.or.space.connect 942 | } 943 | if$ 944 | } 945 | 946 | FUNCTION {format.in.ed.booktitle} 947 | { booktitle empty$ 948 | { "" } 949 | { editor empty$ 950 | { word.in booktitle emphasize * } 951 | { word.in booktitle emphasize * 952 | ", " * 953 | editor num.names$ #1 > 954 | { bbl.editors } 955 | { bbl.editor } 956 | if$ 957 | * " " * 958 | format.in.editors * 959 | } 960 | if$ 961 | } 962 | if$ 963 | } 964 | 965 | FUNCTION {format.thesis.type} 966 | { type empty$ 967 | 'skip$ 968 | { pop$ 969 | type "t" change.case$ 970 | } 971 | if$ 972 | } 973 | 974 | FUNCTION {format.tr.number} 975 | { type empty$ 976 | { bbl.techrep } 977 | 'type 978 | if$ 979 | number empty$ 980 | { "t" change.case$ } 981 | { number tie.or.space.connect } 982 | if$ 983 | } 984 | 985 | FUNCTION {format.article.crossref} 986 | { 987 | word.in 988 | " \cite{" * crossref * "}" * 989 | } 990 | 991 | FUNCTION {format.book.crossref} 992 | { volume empty$ 993 | { "empty volume in " cite$ * "'s crossref of " * crossref * warning$ 994 | word.in 995 | } 996 | { bbl.volume volume tie.or.space.connect 997 | bbl.of space.word * 998 | } 999 | if$ 1000 | " \cite{" * crossref * "}" * 1001 | } 1002 | 1003 | FUNCTION {format.incoll.inproc.crossref} 1004 | { 1005 | word.in 1006 | " \cite{" * crossref * "}" * 1007 | } 1008 | 1009 | FUNCTION {format.publisher} 1010 | { publisher empty$ 1011 | { "empty publisher in " cite$ * warning$ } 1012 | 'skip$ 1013 | if$ 1014 | "" 1015 | address empty$ publisher empty$ and 1016 | 'skip$ 1017 | { 1018 | add.blank "(" * 1019 | address empty$ 1020 | 'skip$ 1021 | { address * } 1022 | if$ 1023 | publisher empty$ 1024 | 'skip$ 1025 | { address empty$ 1026 | 'skip$ 1027 | { ": " * } 1028 | if$ 1029 | publisher * 1030 | } 1031 | if$ 1032 | ")" * 1033 | } 1034 | if$ 1035 | output 1036 | } 1037 | 1038 | STRINGS {oldname} 1039 | 1040 | %%%%%%%% To repeat the same authors 1041 | 1042 | %FUNCTION {name.or.dash} 1043 | %{ 's := 1044 | % oldname empty$ 1045 | % { s 'oldname := s } 1046 | % { s oldname = 1047 | % { "---" } 1048 | % { s 'oldname := s } 1049 | % if$ 1050 | % } 1051 | % if$ 1052 | %} 1053 | 1054 | %%%%%%%% Functions added from astrobib 1055 | 1056 | FUNCTION {format.edn.btitle} % Title should be on stack. 1057 | { duplicate$ empty$ edition empty$ or 1058 | 'skip$ 1059 | { ", " * format.edition * } 1060 | if$ 1061 | } 1062 | 1063 | FUNCTION {format.ed.booktitle} % The title should be on the stack. 1064 | { duplicate$ empty$ 1065 | { "no book title in " cite$ * warning$ "" pop$ } 1066 | { editor empty$ 1067 | author empty$ or % Empty author means editor already given. 1068 | 'format.edn.btitle 1069 | { format.edn.btitle ", " * bbl.editor * " " * format.in.editors * } 1070 | if$ 1071 | } 1072 | if$ 1073 | } 1074 | 1075 | FUNCTION {format.full.book.spec} % The title should be on the stack. 1076 | { series empty$ 1077 | { format.ed.booktitle 1078 | volume empty$ 1079 | { number empty$ 1080 | 'skip$ 1081 | { " there's a number but no series in " cite$ * warning$ 1082 | " No." number tie.or.space.connect * } 1083 | if$ 1084 | } 1085 | { ", Vol." volume tie.or.space.connect * 1086 | number empty$ 1087 | 'skip$ 1088 | {"Both volume and number fields in " * cite$ * warning$ } 1089 | if$ 1090 | } 1091 | if$ 1092 | } 1093 | { volume empty$ 1094 | { format.ed.booktitle ", " * series * 1095 | number empty$ 1096 | 'skip$ 1097 | { " No." number tie.or.space.connect * } 1098 | if$ 1099 | } 1100 | { series ", Vol." volume tie.or.space.connect * 1101 | ", " * swap$ format.ed.booktitle * 1102 | number empty$ 1103 | 'skip$ 1104 | {"Both volume and number fields in " * cite$ * warning$ } 1105 | if$ 1106 | } 1107 | if$ 1108 | } 1109 | if$ 1110 | } 1111 | 1112 | %%%%%%% End of functions from astrobib 1113 | 1114 | 1115 | % INTEGERS { nameptr namesleft numnames } 1116 | 1117 | 1118 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1119 | %%% Tricks too add hyperlinks to bib 1120 | 1121 | FUNCTION {make.href.hyperref} 1122 | { 1123 | "\href{" swap$ * "}{" * swap$ * "}" * 1124 | } 1125 | 1126 | 1127 | FUNCTION {format.journal} 1128 | { journal empty$ 1129 | { "" } 1130 | { doi empty$ 1131 | { journal } 1132 | { "\href{http://dx.doi.org/" doi * "}{\color{cbfpink}" * journal * "}" * } 1133 | if$ 1134 | } 1135 | if$ 1136 | } 1137 | 1138 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1139 | 1140 | 1141 | FUNCTION {article} 1142 | { output.bibitem 1143 | format.authors "author" output.check 1144 | author format.key output 1145 | %%%%% name.or.dash 1146 | format.date "year" output.check 1147 | date.block 1148 | crossref missing$ 1149 | { format.journal output 1150 | % ...and links volume and page information to any available adsurl 1151 | format.vol.num.pages output 1152 | } 1153 | { format.article.crossref output.nonnull 1154 | format.pages output 1155 | } 1156 | if$ 1157 | adsurl empty$ 1158 | { format.journal.pages } 1159 | { 1160 | format.journal.pages adsurl make.href.hyperref 1161 | format.note output 1162 | } 1163 | if$ 1164 | %format.eprint outputeprint %EDP Sciences le 30/11/2014 1165 | fin.entry 1166 | } 1167 | 1168 | FUNCTION {book} 1169 | { output.bibitem 1170 | author empty$ 1171 | { format.editors "author and editor" output.check 1172 | editor format.key output 1173 | %%%%% name.or.dash 1174 | } 1175 | { format.authors output.nonnull 1176 | %%%%% name.or.dash 1177 | crossref missing$ 1178 | { "author and editor" editor either.or.check } 1179 | 'skip$ 1180 | if$ 1181 | } 1182 | if$ 1183 | format.date "year" output.check 1184 | date.block 1185 | title format.full.book.spec output 1186 | % format.btitle "title" output.check 1187 | % crossref missing$ 1188 | % { format.bvolume output 1189 | % format.number.series output 1190 | % format.edition output 1191 | format.publisher 1192 | % } 1193 | % { 1194 | % format.book.crossref output.nonnull 1195 | % } 1196 | % if$ 1197 | format.pages output 1198 | format.note output 1199 | fin.entry 1200 | } 1201 | 1202 | FUNCTION {booklet} 1203 | { output.bibitem 1204 | format.authors output 1205 | author format.key output 1206 | %%%%% name.or.dash 1207 | format.date "year" output.check 1208 | date.block 1209 | format.title "title" output.check 1210 | howpublished output 1211 | address output 1212 | format.note output 1213 | fin.entry 1214 | } 1215 | 1216 | FUNCTION {inbook} 1217 | { output.bibitem 1218 | author empty$ 1219 | { format.editors "author and editor" output.check 1220 | editor format.key output 1221 | %%%%% name.or.dash 1222 | } 1223 | { format.authors output.nonnull 1224 | %%%%% name.or.dash 1225 | crossref missing$ 1226 | { "author and editor" editor either.or.check } 1227 | 'skip$ 1228 | if$ 1229 | } 1230 | if$ 1231 | format.date "year" output.check 1232 | date.block 1233 | title format.full.book.spec output 1234 | % format.btitle "title" output.check 1235 | % crossref missing$ 1236 | % { 1237 | % format.bvolume output 1238 | % format.chapter.pages "chapter and pages" output.check 1239 | % format.number.series output 1240 | % format.edition output 1241 | format.publisher 1242 | % } 1243 | % { 1244 | % format.chapter.pages "chapter and pages" output.check 1245 | % format.book.crossref output.nonnull 1246 | % } 1247 | % if$ 1248 | format.pages "pages" output.check 1249 | format.note output 1250 | fin.entry 1251 | } 1252 | 1253 | FUNCTION {incollection} 1254 | { output.bibitem 1255 | format.authors "author" output.check 1256 | author format.key output 1257 | %%%%%% name.or.dash 1258 | format.date "year" output.check 1259 | date.block 1260 | bbl.in " " * booktitle format.full.book.spec * output 1261 | % crossref missing$ 1262 | % { format.in.ed.booktitle "booktitle" output.check 1263 | % format.bvolume output 1264 | % format.number.series output 1265 | % format.edition output 1266 | % format.chapter.pages output 1267 | format.publisher 1268 | % } 1269 | % { format.incoll.inproc.crossref output.nonnull 1270 | % format.chapter.pages output 1271 | % } 1272 | % if$ 1273 | format.pages "pages" output.check 1274 | format.note output 1275 | fin.entry 1276 | } 1277 | 1278 | FUNCTION {inproceedings} 1279 | { output.bibitem 1280 | format.authors "author" output.check 1281 | author format.key output % added 1282 | format.date "year" output.check 1283 | date.block 1284 | bbl.in " " * booktitle format.full.book.spec * output 1285 | % crossref missing$ 1286 | % { format.in.ed.booktitle "booktitle" output.check 1287 | % format.bvolume output 1288 | % format.number.series output 1289 | publisher empty$ 1290 | { organization output 1291 | address output 1292 | } 1293 | { organization output 1294 | format.publisher 1295 | } 1296 | if$ 1297 | % } 1298 | % { format.incoll.inproc.crossref output.nonnull 1299 | % } 1300 | % if$ 1301 | format.pages output adsurl make.href.hyperref 1302 | format.note output 1303 | fin.entry 1304 | } 1305 | 1306 | FUNCTION {conference} { inproceedings } 1307 | 1308 | FUNCTION {manual} 1309 | { output.bibitem 1310 | format.authors output 1311 | author format.key output 1312 | %%%%% name.or.dash 1313 | format.date "year" output.check 1314 | date.block 1315 | format.btitle "title" output.check 1316 | format.edition output 1317 | organization output 1318 | address output 1319 | format.note output 1320 | fin.entry 1321 | } 1322 | 1323 | FUNCTION {mastersthesis} 1324 | { output.bibitem 1325 | format.authors "author" output.check 1326 | author format.key output 1327 | %%%%% name.or.dash 1328 | format.date "year" output.check 1329 | date.block 1330 | % format.title "title" output.check 1331 | bbl.mthesis format.thesis.type output.nonnull 1332 | school "school" output.check 1333 | address output 1334 | format.note output 1335 | fin.entry 1336 | } 1337 | 1338 | FUNCTION {misc} 1339 | { output.bibitem 1340 | format.authors output 1341 | author format.key output 1342 | %%%%% name.or.dash 1343 | format.date "year" output.check 1344 | date.block 1345 | format.title output 1346 | howpublished output 1347 | format.note output 1348 | fin.entry 1349 | } 1350 | 1351 | %%%% add URL for phdthesis 1352 | FUNCTION {format.phdtitle} 1353 | { title empty$ 1354 | { "" } 1355 | { doi empty$ 1356 | { title } 1357 | { "\href{" adsurl * "}{\color{cbfgreen}" * title * "}" * } 1358 | if$ 1359 | } 1360 | if$ 1361 | } 1362 | 1363 | FUNCTION {phdthesis} 1364 | { output.bibitem 1365 | format.authors "author" output.check 1366 | author format.key output 1367 | %%%%% name.or.dash 1368 | format.date "year" output.check 1369 | date.block 1370 | format.phdtitle adsurl make.href.hyperref output 1371 | bbl.phdthesis format.thesis.type output.nonnull 1372 | school "school" output.check 1373 | address output 1374 | format.note output 1375 | fin.entry 1376 | } 1377 | 1378 | FUNCTION {proceedings} 1379 | { output.bibitem 1380 | editor empty$ 1381 | { organization output 1382 | organization format.key output } 1383 | { format.editors output } 1384 | if$ 1385 | % format.editors output 1386 | % editor format.key output 1387 | %%%%% name.or.dash 1388 | format.date "year" output.check 1389 | date.block 1390 | title format.full.book.spec output 1391 | % format.btitle "title" output.check 1392 | % format.bvolume output 1393 | % format.number.series output 1394 | publisher empty$ not % No need for warning if no pub. 1395 | { format.publisher } 1396 | { editor empty$ % For empty editor, organization was already given. 1397 | 'skip$ 1398 | { organization output } 1399 | if$ 1400 | address output 1401 | } 1402 | if$ 1403 | % address output 1404 | % organization output 1405 | % publisher output 1406 | format.pages output adsurl make.href.hyperref 1407 | format.note output 1408 | fin.entry 1409 | } 1410 | 1411 | FUNCTION {techreport} 1412 | { output.bibitem 1413 | format.authors "author" output.check 1414 | author format.key output 1415 | %%%%% name.or.dash 1416 | format.date "year" output.check 1417 | date.block 1418 | format.title "title" output.check 1419 | format.tr.number output.nonnull 1420 | institution "institution" output.check 1421 | address output 1422 | format.note output 1423 | fin.entry 1424 | } 1425 | 1426 | FUNCTION {unpublished} 1427 | { output.bibitem 1428 | format.authors "author" output.check 1429 | author format.key output 1430 | %%%%% name.or.dash 1431 | format.date "year" output.check 1432 | date.block 1433 | % format.title "title" output.check 1434 | format.note "note" output.check 1435 | fin.entry 1436 | } 1437 | 1438 | FUNCTION {default.type} { misc } 1439 | 1440 | READ 1441 | 1442 | FUNCTION {sortify} 1443 | { purify$ 1444 | "l" change.case$ 1445 | } 1446 | 1447 | INTEGERS { len } 1448 | 1449 | FUNCTION {chop.word} 1450 | { 's := 1451 | 'len := 1452 | s #1 len substring$ = 1453 | { s len #1 + global.max$ substring$ } 1454 | 's 1455 | if$ 1456 | } 1457 | 1458 | FUNCTION {format.lab.names} 1459 | { 's := 1460 | s #1 "{vv~}{ll}" format.name$ 1461 | s num.names$ duplicate$ 1462 | #2 > 1463 | { pop$ 1464 | " {et~al.}" * 1465 | } 1466 | { #2 < 1467 | 'skip$ 1468 | { s #2 "{ff }{vv }{ll}{ jj}" format.name$ "others" = 1469 | { 1470 | " {et~al.}" * 1471 | } 1472 | { " \& " * s #2 "{vv~}{ll}" format.name$ 1473 | * } 1474 | if$ 1475 | } 1476 | if$ 1477 | } 1478 | if$ 1479 | } 1480 | 1481 | FUNCTION {author.key.label} 1482 | { author empty$ 1483 | { key empty$ 1484 | { cite$ #1 #3 substring$ } 1485 | 'key 1486 | if$ 1487 | } 1488 | { author format.lab.names } 1489 | if$ 1490 | } 1491 | 1492 | FUNCTION {author.editor.key.label} 1493 | { author empty$ 1494 | { editor empty$ 1495 | { key empty$ 1496 | { cite$ #1 #3 substring$ } 1497 | 'key 1498 | if$ 1499 | } 1500 | { editor format.lab.names } 1501 | if$ 1502 | } 1503 | { author format.lab.names } 1504 | if$ 1505 | } 1506 | 1507 | FUNCTION {editor.key.label} 1508 | { editor empty$ 1509 | { key empty$ 1510 | { cite$ #1 #3 substring$ } 1511 | 'key 1512 | if$ 1513 | } 1514 | { editor format.lab.names } 1515 | if$ 1516 | } 1517 | 1518 | FUNCTION {calc.short.authors} 1519 | { type$ "book" = 1520 | type$ "inbook" = 1521 | or 1522 | 'author.editor.key.label 1523 | { type$ "proceedings" = 1524 | 'editor.key.label 1525 | 'author.key.label 1526 | if$ 1527 | } 1528 | if$ 1529 | 'short.list := 1530 | } 1531 | 1532 | FUNCTION {calc.label} 1533 | { calc.short.authors 1534 | short.list 1535 | "(" 1536 | * 1537 | year duplicate$ empty$ 1538 | { pop$ "????" } 1539 | 'skip$ 1540 | if$ 1541 | * 1542 | 'label := 1543 | } 1544 | 1545 | FUNCTION {sort.format.names} 1546 | { 's := 1547 | #1 'nameptr := 1548 | "" 1549 | s num.names$ 'numnames := 1550 | numnames 'namesleft := 1551 | { namesleft #0 > } 1552 | { s nameptr 1553 | "{vv{ } }{ll{ }}{ f{ }}{ jj{ }}" 1554 | format.name$ 't := 1555 | nameptr #1 > 1556 | { 1557 | " " * 1558 | namesleft #1 = t "others" = and 1559 | { "zzzzz" * } 1560 | { t sortify * } 1561 | if$ 1562 | } 1563 | { t sortify * } 1564 | if$ 1565 | nameptr #1 + 'nameptr := 1566 | namesleft #1 - 'namesleft := 1567 | } 1568 | while$ 1569 | } 1570 | 1571 | FUNCTION {sort.format.title} 1572 | { 't := 1573 | "A " #2 1574 | "An " #3 1575 | "The " #4 t chop.word 1576 | chop.word 1577 | chop.word 1578 | sortify 1579 | #1 global.max$ substring$ 1580 | } 1581 | 1582 | FUNCTION {author.sort} 1583 | { author empty$ 1584 | { key empty$ 1585 | { "to sort, need author or key in " cite$ * warning$ 1586 | "" 1587 | } 1588 | { key sortify } 1589 | if$ 1590 | } 1591 | { author sort.format.names } 1592 | if$ 1593 | } 1594 | 1595 | FUNCTION {author.editor.sort} 1596 | { author empty$ 1597 | { editor empty$ 1598 | { key empty$ 1599 | { "to sort, need author, editor, or key in " cite$ * warning$ 1600 | "" 1601 | } 1602 | { key sortify } 1603 | if$ 1604 | } 1605 | { editor sort.format.names } 1606 | if$ 1607 | } 1608 | { author sort.format.names } 1609 | if$ 1610 | } 1611 | 1612 | FUNCTION {editor.sort} 1613 | { editor empty$ 1614 | { key empty$ 1615 | { "to sort, need editor or key in " cite$ * warning$ 1616 | "" 1617 | } 1618 | { key sortify } 1619 | if$ 1620 | } 1621 | { editor sort.format.names } 1622 | if$ 1623 | } 1624 | 1625 | FUNCTION {presort} 1626 | { calc.label 1627 | label sortify 1628 | " " 1629 | * 1630 | type$ "book" = 1631 | type$ "inbook" = 1632 | or 1633 | 'author.editor.sort 1634 | { type$ "proceedings" = 1635 | 'editor.sort 1636 | 'author.sort 1637 | if$ 1638 | } 1639 | if$ 1640 | #1 entry.max$ substring$ 1641 | 'sort.label := 1642 | sort.label 1643 | * 1644 | " " 1645 | * 1646 | title field.or.null 1647 | sort.format.title 1648 | * 1649 | #1 entry.max$ substring$ 1650 | 'sort.key$ := 1651 | } 1652 | 1653 | ITERATE {presort} 1654 | 1655 | SORT 1656 | 1657 | STRINGS { last.label next.extra } 1658 | 1659 | INTEGERS { last.extra.num number.label } 1660 | 1661 | FUNCTION {initialize.extra.label.stuff} 1662 | { #0 int.to.chr$ 'last.label := 1663 | "" 'next.extra := 1664 | #0 'last.extra.num := 1665 | #0 'number.label := 1666 | } 1667 | 1668 | FUNCTION {forward.pass} 1669 | { last.label label = 1670 | { last.extra.num #1 + 'last.extra.num := 1671 | last.extra.num int.to.chr$ 'extra.label := 1672 | } 1673 | { "a" chr.to.int$ 'last.extra.num := 1674 | "" 'extra.label := 1675 | label 'last.label := 1676 | } 1677 | if$ 1678 | number.label #1 + 'number.label := 1679 | } 1680 | 1681 | FUNCTION {reverse.pass} 1682 | { next.extra "b" = 1683 | { "a" 'extra.label := } 1684 | 'skip$ 1685 | if$ 1686 | extra.label 'next.extra := 1687 | extra.label 1688 | duplicate$ empty$ 1689 | 'skip$ 1690 | { "{\natexlab{" swap$ * "}}" * } 1691 | if$ 1692 | 'extra.label := 1693 | label extra.label * 'label := 1694 | } 1695 | 1696 | EXECUTE {initialize.extra.label.stuff} 1697 | 1698 | ITERATE {forward.pass} 1699 | 1700 | REVERSE {reverse.pass} 1701 | 1702 | FUNCTION {bib.sort.order} 1703 | { sort.label 1704 | " " 1705 | * 1706 | year field.or.null sortify 1707 | * 1708 | " " 1709 | * 1710 | title field.or.null 1711 | sort.format.title 1712 | * 1713 | #1 entry.max$ substring$ 1714 | 'sort.key$ := 1715 | } 1716 | 1717 | ITERATE {bib.sort.order} 1718 | 1719 | SORT 1720 | 1721 | FUNCTION {begin.bib} 1722 | { preamble$ empty$ 1723 | 'skip$ 1724 | { preamble$ write$ newline$ } 1725 | if$ 1726 | "\begin{thebibliography}{" number.label int.to.str$ * "}" * 1727 | write$ newline$ 1728 | "\expandafter\ifx\csname natexlab\endcsname\relax\def\natexlab#1{#1}\fi" 1729 | write$ newline$ 1730 | } 1731 | 1732 | EXECUTE {begin.bib} 1733 | 1734 | EXECUTE {init.state.consts} 1735 | 1736 | ITERATE {call.type$} 1737 | 1738 | FUNCTION {end.bib} 1739 | { newline$ 1740 | "\end{thebibliography}" write$ newline$ 1741 | } 1742 | 1743 | EXECUTE {end.bib} 1744 | %% End of customized bst file 1745 | %% 1746 | %% End of file `apj.bst'. 1747 | 1748 | --------------------------------------------------------------------------------