"File/Import/Research Files as Aliases..."


I’ve been using Scrivener for about four months. I have version 2.3.1 for the Mac, which I got from Apple’s app store.

Before Scrivener I built the equivalent of the binder in Freemind, then used LibreOffice (formerly OpenOffice) for the writing. When it comes to handling the manuscript and certain aspects of outlining, Scrivener is tops.

However when it comes to gathering and organizing outside information, Scrivener is weak at best. The binder is pretty darn cool–the problem is that Scrivener’s package method of storing files is too monolithic. When I’m doing a lot of writing I typically save a backup every day. Saving all those manuscript files, even the ones I don’t modify, is one thing (and acceptable). But saving fresh copies of all those PDFs, photos, movies, sound files, and whatnot is insane.

“File/Import/Research Files as Aliases…” is a pretty cool idea. Keeping a “resources” folder next to my .scriv file is no problem (I store my .scriv backups elsewhere). The problem is that Scrivener’s alias files are hugely wasteful.

A Scrivener alias to a PDF is 117 KB, to an MP3 is 150 KB, and to a JPG is 856 KB. While this is typically an improvement for an MP3, the sample JPGs I linked to were under 50 KB. I tried “Make Alias” in Apple’s finder and it produced far worse results (2.6 MB for a 36 KB JPG file).

There’s no reason for this. From Terminal I can create a symbolic link that points to that same 36 KB JPG file, and it works as well (in Finder) as Scrivener’s or Apple’s aliases, yet it is only 17 bytes.

Unfortunately I cannot import symbolic links into Scrivener. And even if I could, manually creating symbolic links in Terminal is a lot of work. My temporary work around is to create small Freemind files then import (not link) those Freemind files into Scrivener. Freemind’s .mm files are in XML format and pretty tight. I open the file by using “Open/in External Editor”. That solution is ugly as sin, but I can get several hundred aliases (or are they symbolic links?) into one 88 KB file. A huge improvement over 117 KB (or more) for each and every link/alias.

My wish is tiny links in Scrivener. And make them file-relative if at all possible (e.g. as long as the .scriv file and the target is on the same disk volume when created). Also, I still use Windows from time to time, so try not to do O.S. specific stuff.

Thanks a million!


PS: I read nun’s post about importing a folder https://forum.literatureandlatte.com/t/alias-to-a-folder/17784/1 I don’t want to import a folder, just import a tiny link to one file at a time.

In dberreby’s post https://forum.literatureandlatte.com/t/import-rtf-doc-docx-files-as-aliases/13961/1 you mentioned that Scrivener was primarily about writing, and not about research or collecting documents for research. Oh? That vastly reduces the value of the program.

PPS: “Add/Web Page…” really sucks. For me the whole purpose of saving a URL is so I can revisit the page, and the site. If I want a static copy I copy/paste into LibreOffice and save as a PDF. Storing a web page as a 2.3 MB copy is asinine. How about storing a simple URL?

Most users don’t seem to think this “sucks”. There are many good reasons for taking a snapshot of a web page - the web page may change, it may be news that drops off the main page so saving a URL would be frustrating as you’d have to fish around for what you wanted every time, or the web page may disappear. Saving URLs is easy, though - just add them to the references pane (of a document, or the project references). Or keep a document with a list of URLs in it…

As for the monolithic file format, for many users this is an advantage. Sure, if you are storing hundreds and hundreds of large resource files, then you’ll end up with a big project, and if you need to store those research files elsewhere for other uses, too, then that could be wasteful. (Not that you have to store research files in Scrivener at all - you can just drag them onto the editor header bar to load them for viewing.) But personally, I wanted my research files in one place. A lot of my research files tend to be project-specific, so there’s no need for me to have them cluttering up the Finder. I can keep them in my Scrivener project and I know that if I move that Scrivener project to another machine, then all of the research files are stashed safely within it, and I’ll still have access to them - they won’t get left behind.

That’s the main purpose of importing research - Scrivener isn’t a research depository such as DevonTHINK, EagleFiler or Evernote. It’s not built for the purpose of storing thousands of PDF files. However, I added the alias feature for users who wanted to link to external research.

Scrivener creates aliases using a third-party Cocoa class, but even using the newest Cocoa way of creating aliases (which is a bit flakey), the file sizes are large-ish. I agree they seem a bit wasteful, but I believe it’s down to the resource fork information and other data they store about the file, which means that an alias can be larger than a file it points to if the file it points to is small. Now, I could ditch aliases altogether and just stash a simple URL pointing to the file, which would take up no space at all (relatively), but that would be a lot less useful than an alias. The good thing about aliases is that they work even if you move the files in the Finder; if Scrivener just stored the location of the file, it would lose the ability to locate the file if you moved the project, the file, or the folder that either were stored in.

All the best,

Thank you for the response.

Let’s get the web page thing out of the way first. Capturing a web page is useful and good. I do it. But my experience has been that I don’t really want the ads, the banner art, the navigation, the boilerplate, or all the little Flash and Java Script gee-gaws that some websites put on their pages. Instead I manually copy/paste the relevant content to an ODT file, add necessary illustrations, stick the original URL in the header, and then save it as a PDF. It does take a few minutes but I feel it’s worth it. I get a clean document with a link back to the source.

Not everyone will do this, so you do need a capture web page function. But you also need a save URL function too. There are times when a web page is appropriate, and times when I also need a link to a site. So that’s my wish: add a “Save URL…” to the right-click “New/…” menu.

Yes, there is that, but it’s clumsy. BTW, what are project references?

Okay, another wish (related): when Scrivener doesn’t understand something (such as a stored file) double-clicking its icon/name in Binder will automatically launch the external program that does understand that thing. E.g. spreadsheet files, mind map files, or even a URL. The key is that the O.S. understands which app to launch (if both Scrivener and the O.S. are clueless, then you’re off the hook). Right-clicking “Open/in External Editor” is clumsy. Scrivener should be smart enough to not require that users do that.

Me too. I’ve been thinking about what I really want to do. How has my use of Freemind evolved over the past few years, and what about Freemind would I miss if I gave it up and exclusively used Scrivener?

First, I work cross-platform, although I’m drifting more and more toward the Mac. For the most part I select only cross-platform tools. And I organize my files/folders so they are portable between machines. I see files as being one of two types: 1) those I create that evolve as the project evolves, which I store in version folders; 2) those I collect, find, or make that are static to the project, which I store in a resources folder. Typical screenshot below…

Note that I jealously guard the relationship of the files and folders within a story’s folder (here, “little_red_feather”). Mac, PC, or thumb drive, I never violate that relationship.

Second, what is Freemind (at least, what is it to me)? Freemind is Binder, or maybe Binder crossed with Cork Board. It’s a structure of pointers stored in an XML file. Like Scrivener’s Binder, the the layout of the physical files is independent of the logical presentation of those files. The difference is that Freemind lets you fiddle with the pointers to some extent, and it lets you fiddle with the physical storage of the files.

Third, what’s my problem with storing resource files inside of Scrivener? Good question. Other than keeping copies of my projects on my Mac, PC, and a thumb drive, I do not make whole backup copies of a project. My problem is that I don’t know how to fully use Scrivener yet. I don’t know how to generate “revs” of my scenes or other evolving files. Whereas I’ve had several years to work out a pretty slick method of keeping revs and sub-revs of files, and then linking to them in Freemind so the newest is always on top, and the historic revs are always easily accessible.

To be clear, it’s not a backup I want. It’s a trail of revisions. I want to keep old copies as well as the latest version. This gives me the freedom to boldly edit (even deleting whole chapters) without the fear of losing something I might need later, or might use in some other project.

That’s the real problem. I know I can save all my evolving files by making a copy of my SCRIV file, but as it stands (with no resource files stored within) it’s 4.3 MB. Not bad. But my resources folder for Little Red Feather is 633.6 MB. Ouch!

I’ve observed that the greatest strength of some product/method/device/language is also its greatest weakness. It’s all in how you look at it. Freemind + LibreOffice is loosely coupled, which is freeing, but it requires a lot of fiddling around. Scrivener’s Binder and Editor are tightly coupled. Scrivenings mode rocks, the Outliner is bliss, and compose is divine! There is no way I can come close in Freemind + LibreOffice.

I need to brainstorm a method to keep all those revs in Scrivener, without clogging up the compile function.

I suspected as much when I saw the gross wastefulness of Finder’s “Make Alias” function. Are Aliases created in Scrivener for the Mac compatible with aliases created in Scrivener for Windows? Small aliases are useful, even if moving a resource would break them. Small (e.g. under 1 KB) are still on my wish list. I’ll use them even if I solve my keeping old revs issue.

Thanks for reading and considering my wishes.


PS: Those MM files I stuck inside of Scrivener are still there, and they appear to be intact, but they no longer open when using right-click “Open/in External Editor”. Don’t know why, but I’m not concerned. It was an ugly solution to begin with.

My ODS and CMAP files still open. Huzzah!

Help > Scrivener Manual - Section 19.3.2 References.

Oh that’s cool! And when I double-click the icon it opens. I missed that. Not sure what it was when I first read it.


I added a “document reference” to a file in Binder, then looked in the big XML file inside the SCRIV package. This is what I found inside a “BinderItem”…

<References> <Reference Destination="file://localhost/Users/scottmiller/CreativeWriting/my_stories/little_red_feather/resources/characters/Sherryd.jpg">Sherryd</Reference> </References>
That, my friends, is a link to a JPG file. Note that it’s a couple hundred bytes, not 856 KB as Cocoa makes it. It is exactly what I wanted, but it should appear in the Binder rather than Inspector. In other words, it is the “file”, not some attachment to be hidden in a semi-obscure location. It also opens on double-click.

I suspected the problem wasn’t all that hard to solve.


Modification to the above file reference:

<References> <Reference Destination="file://localhost/Users/scottmiller/CreativeWriting/my_stories/little_red_feather/resources/characters/Sherryd.jpg">Sherryd</Reference> </References>
Is nice, but also all but impossible to move from machine to machine, platform to platform, or share between users. That is, I might be “/Users/scottmiller/” but someone else will not have that exact path. And on my Windows machine I’m “E:/ScottyDM/~ScottyDM/”

This is what’s needed:

<References> <Reference Destination="file://./resources/characters/Sherryd.jpg">Sherryd</Reference> </References>
Starting at the SCRIV file, find the referenced file.